<?xml version="1.0"?>
<News hasArchived="true" page="7712" pageCount="10777" pageSize="10" timestamp="Mon, 31 Aug 2026 01:48:32 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=7712&amp;range=2">
<NewsItem contentIssues="true" id="42423" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42423">
<Title>Bits Blog: Facebook&#8217;s Zuckerberg Complains to Obama Over Government Spying</Title>
<Body>
<![CDATA[
    <div class="html-content">In a public post on Facebook, Mark Zuckerberg, the company’s chief executive, says the United States government “should be the champion for the Internet, not a threat.”<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Ffacebooks-zuckerberg-complains-to-obama-over-government-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Facebook%E2%80%99s+Zuckerberg+Complains+to+Obama+Over+Government+Spying" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Ffacebooks-zuckerberg-complains-to-obama-over-government-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Facebook%E2%80%99s+Zuckerberg+Complains+to+Obama+Over+Government+Spying" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Ffacebooks-zuckerberg-complains-to-obama-over-government-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Facebook%E2%80%99s+Zuckerberg+Complains+to+Obama+Over+Government+Spying" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Ffacebooks-zuckerberg-complains-to-obama-over-government-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Facebook%E2%80%99s+Zuckerberg+Complains+to+Obama+Over+Government+Spying" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Ffacebooks-zuckerberg-complains-to-obama-over-government-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Facebook%E2%80%99s+Zuckerberg+Complains+to+Obama+Over+Government+Spying" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/sc/21/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/sc/21/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/sc/21/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/sc/21/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/sc/21/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/sc/21/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801543462/u/0/f/640387/c/34625/s/38280fba/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>In a public post on Facebook, Mark Zuckerberg, the company’s chief executive, says the United States government “should be the champion for the Internet, not a threat.”      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38280fba/sc/21/l/0Lbits0Bblogs0Bnytimes0N0C20A140C0A30C130Cfacebooks0Ezuckerberg0Ecomplains0Eto0Eobama0Eover0Egovernment0Espying0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42423/guest@my.umbc.edu/f11b8ad4ec7d363f326f9b79b459ca1e/api/pixel</TrackingUrl>
<Tag>computer-security</Tag>
<Tag>facebook-inc</Tag>
<Tag>facebook-inc-fb-nasdaq</Tag>
<Tag>internet</Tag>
<Tag>national-security-agency</Tag>
<Tag>new</Tag>
<Tag>obama-barack</Tag>
<Tag>policy</Tag>
<Tag>security</Tag>
<Tag>snowden-edward-j</Tag>
<Tag>social</Tag>
<Tag>social-media</Tag>
<Tag>surveillance-of-citizens-by-government</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Tag>zuckerberg-mark-e</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>Thu, 13 Mar 2014 18:11:03 -0400</PostedAt>
<EditAt>Fri, 14 Mar 2014 07:47:45 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42421" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42421">
<Title>Sorry this is late, LEADERSHAPE applications due tomorrow!</Title>
<Tagline>Baltimore Collegetown's Leadershape Institute: Aug 10-15</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <div><span>This is not a UMBC event. We are sharing it with you because of your interest in service.</span></div>
    <div><span><br></span></div>
    <div><span>The Baltimore Collegetown LeaderShape® program will connect students across campuses and with their communities to make a better Baltimore.</span></div>
    <div><span><br></span></div>
    <div><span>Designed for students who have a passion for service and want to be civic-minded leaders, it starts with a week of leadership development and is followed by programming and support throughout an academic year. Students will not only develop visions, but learn to be visionary, and discover how to apply their skills and passions to our city.</span></div>
    <div><span>Program Components</span></div>
    <div><span><br></span></div>
    <div><span>A week of the LeaderShape Institute: Sun, Aug. 10 – Fri, Aug. 15, 2014</span></div>
    <div><span>60-70 students divided between participating colleges (5-8 per campus)</span></div>
    <div><span>Overnight retreat </span></div>
    <div><span>LeaderShape sends lead facilitators to run the program</span></div>
    <div><span>Facilitators and guest leaders from the Baltimore region</span></div>
    <div><span><br></span></div>
    <div><span>Fall Follow Up: day-long retreat: Sat, Oct. 4, 2014</span></div>
    <div><span>Review goals and reconnect with cohort</span></div>
    <div><span>Meet with community leaders</span></div>
    <div><span>Begin planning for spring</span></div>
    <div><span><br></span></div>
    <div><span>Service Activity (pick at least one during the year)</span></div>
    <div><span><br></span></div>
    <div><span>Spring Forward Retreat: Sat. Feb. 7 - Sun. Feb. 8</span></div>
    <div><span><br></span></div>
    <div><span>Spring Project</span></div>
    <div><span>Students plan a project around their area of focus</span></div>
    <div><span><br></span></div>
    <div><span>Ongoing support</span></div>
    <div><span>Campus liaison</span></div>
    <div><span>Collegetown staff</span></div>
    <div><span>Website, Facebook Group</span></div>
    <div><span>Community liaisons</span></div>
    </div>
]]>
</Body>
<Summary>This is not a UMBC event. We are sharing it with you because of your interest in service.     The Baltimore Collegetown LeaderShape® program will connect students across campuses and with their...</Summary>
<Website>http://www.baltimorecollegetown.org/resources/leadershape/application-process/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42421/guest@my.umbc.edu/7bad8e5d0425667a97d94cbfaac6bad6/api/pixel</TrackingUrl>
<Group token="retired-271">UMBC Community Engagement Network </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-271</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/xsmall.png?1498142039</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/original.JPG?1498142039</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/xxlarge.png?1498142039</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/xlarge.png?1498142039</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/large.png?1498142039</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/medium.png?1498142039</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/small.png?1498142039</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/xsmall.png?1498142039</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/271/4ef352d82c0b3506a0df2ed486d44b17/xxsmall.png?1498142039</AvatarUrl>
<Sponsor>Baltimore Collegetown Network</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/421/302c6ebc7de25ab0851c6c86bdad6106/xxlarge.jpg?1394745571</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/421/302c6ebc7de25ab0851c6c86bdad6106/xlarge.jpg?1394745571</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/421/302c6ebc7de25ab0851c6c86bdad6106/large.jpg?1394745571</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/042/421/302c6ebc7de25ab0851c6c86bdad6106/medium.jpg?1394745571</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/421/302c6ebc7de25ab0851c6c86bdad6106/small.jpg?1394745571</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/421/302c6ebc7de25ab0851c6c86bdad6106/xsmall.jpg?1394745571</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/421/302c6ebc7de25ab0851c6c86bdad6106/xxsmall.jpg?1394745571</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 17:20:38 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42422" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42422">
<Title>How To Create An Admin-Manageable Magento Entity For Brands</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p>In this tutorial, we will create a new “brand” entity in Magento that can be managed through the admin panel. Once we are finished, you will be able to create, update and delete brands that can be viewed in the front-end independently, much in the same way that you can interact with existing entities such as “products” and “categories.”</p>
    <p>In addition, we will associate our new brand entity with other Magento entities, such as products. The process itself is quite lengthy because I will explain each step in detail, but it really is easy once you know how, and it’s a great example of how powerful the Magento platform can be with minimal effort.</p>
    <p>We will cover the following topics:</p>
    <ul>
    <li>Create a new brand entity in Magento.</li>
    <li>Browse, filter and sort brands in Magento’s admin panel.</li>
    <li>Create, update and delete brands in the admin panel.</li>
    <li>Create a brand list, and view pages in the front-end.</li>
    <li>Associate brands with products.</li>
    <li>Display a product-brand association in the front-end.</li>
    <li>Include images throughout.</li>
    </ul>
    <p>This tutorial refers to the Magento Community Edition 1.8.0.0, the latest version available at the time of writing. But the code and principles apply to all recent Magento versions, both Community and Enterprise.</p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/03/1-admin-grid.png" alt="Magento Brand Admin Grid" width="500" style="max-width: 100%; height: auto;"></p>
    <p>While I have tried to be as thorough as possible in my explanations, <strong>documenting the code is sometimes the best way to explain certain things</strong>, so you will find a lot of comments in the code snippets. The code snippet linked to at the end contains more usages and items than are covered in this tutorial, to show you how to extend the things that you will learn about here.</p>
    <h3>Creating Our Module</h3>
    <p>Start by creating the following folder and file structure. For the time being, all files will be empty. Normally, these files and folders would be created one at a time as needed, but for the sake of this tutorial, we will put everything in place up front.</p>
    <p>As usual, I assume you already know the <a href="http://coding.smashingmagazine.com/2012/03/01/basics-creating-magento-module/" title="The Basics Of Creating A Magento Module" rel="nofollow external" class="bo">basics of creating a Magento module</a> and are comfortable with this step, with no explanation required.</p>
    <pre><code>app&#x000A;      - code&#x000A;          - community&#x000A;              - SmashingMagazine&#x000A;                  - BrandDirectory&#x000A;                      - Block&#x000A;                          - Adminhtml&#x000A;                              - Brand&#x000A;                                  - Edit&#x000A;                                      - Form.php&#x000A;                                  - Edit.php&#x000A;                                  - Grid.php&#x000A;                              - Brand.php&#x000A;                      - Helper&#x000A;                          - Data.php&#x000A;                      - Model&#x000A;                          - Resource&#x000A;                              - Brand&#x000A;                                  - Collection.php&#x000A;                              - Brand.php&#x000A;                          - Brand.php&#x000A;                      - controllers&#x000A;                          - Adminhtml&#x000A;                              - BrandController.php&#x000A;                      - etc&#x000A;                          - adminhtml.xml&#x000A;                          - config.xml&#x000A;                      - sql&#x000A;                          - smashingmagazine_branddirectory_setup&#x000A;                              - install-0.0.1.php&#x000A;      - etc&#x000A;          - modules&#x000A;              - SmashingMagazine_BrandDirectory.xml&#x000A;    </code></pre>
    <h3>Module Setup Scripts</h3>
    <p>For our module to be of any use, we need somewhere to store our data. Therefore, we need to write a module setup script to create a database table to hold information about our brand entity. Setup scripts are stored in two places within the module, <code>/sql</code> and <code>/data</code>. The former is for physical changes to your Magento instance, such as database schema updates, and the latter is for populating or removing entries from the existing schema.</p>
    <p>In our case, we are adding a new table. So, edit the file at <code>sql/smashingmagazine_branddirectory_setup/install-0.0.1.php</code> with the following code:</p>
    <pre><code>&lt;?php&#x000A;    $this-&gt;startSetup();&#x000A;    &#x000A;    /**&#x000A;     * Note: there are many ways in Magento to achieve the same result of&#x000A;     * creating a database table. For this tutorial, we have gone with the &#x000A;     * Varien_Db_Ddl_Table method, but feel free to explore what Magento&#x000A;     * does in CE 1.8.0.0 and earlier versions.&#x000A;     */&#x000A;    $table = new Varien_Db_Ddl_Table();&#x000A;    &#x000A;    /**&#x000A;     * This is an alias of the real name of our database table, which is &#x000A;     * configured in config.xml. By using an alias, we can refer to the same&#x000A;     * table throughout our code if we wish, and if the table name ever has&#x000A;     * to change, we can simply update a single location, config.xml&#x000A;     * - smashingmagazine_branddirectory is the model alias&#x000A;     * - brand is the table reference&#x000A;     */&#x000A;    $table-&gt;setName($this-&gt;getTable('smashingmagazine_branddirectory/brand'));&#x000A;    &#x000A;    /**&#x000A;     * Add the columns we need for now. If you need more later, you can&#x000A;     * always create a new setup script as an upgrade. We will introduce&#x000A;     * that later in this tutorial.&#x000A;     */&#x000A;    $table-&gt;addColumn(&#x000A;        'entity_id',&#x000A;        Varien_Db_Ddl_Table::TYPE_INTEGER, &#x000A;        10, &#x000A;        array(&#x000A;            'auto_increment' =&gt; true,&#x000A;            'unsigned' =&gt; true,&#x000A;            'nullable'=&gt; false,&#x000A;            'primary' =&gt; true&#x000A;        )&#x000A;    );&#x000A;    $table-&gt;addColumn(&#x000A;        'created_at', &#x000A;        Varien_Db_Ddl_Table::TYPE_DATETIME, &#x000A;        null, &#x000A;        array(&#x000A;            'nullable' =&gt; false,&#x000A;        )&#x000A;    );&#x000A;    $table-&gt;addColumn(&#x000A;        'updated_at', &#x000A;        Varien_Db_Ddl_Table::TYPE_DATETIME, &#x000A;        null, &#x000A;        array(&#x000A;            'nullable' =&gt; false,&#x000A;        )&#x000A;    );&#x000A;    $table-&gt;addColumn(&#x000A;        'name', &#x000A;        Varien_Db_Ddl_Table::TYPE_VARCHAR, &#x000A;        255, &#x000A;        array(&#x000A;            'nullable' =&gt; false,&#x000A;        )&#x000A;    );&#x000A;    $table-&gt;addColumn(&#x000A;        'url_key', &#x000A;        Varien_Db_Ddl_Table::TYPE_VARCHAR, &#x000A;        255, &#x000A;        array(&#x000A;            'nullable' =&gt; false,&#x000A;        )&#x000A;    );&#x000A;    $table-&gt;addColumn(&#x000A;        'description', &#x000A;        Varien_Db_Ddl_Table::TYPE_TEXT, &#x000A;        null, &#x000A;        array(&#x000A;            'nullable' =&gt; false,&#x000A;        )&#x000A;    );&#x000A;    $table-&gt;addColumn(&#x000A;        'visibility', &#x000A;        Varien_Db_Ddl_Table::TYPE_BOOLEAN, &#x000A;        null, &#x000A;        array(&#x000A;            'nullable' =&gt; false,&#x000A;        )&#x000A;    );&#x000A;    &#x000A;    /**&#x000A;     * These two important lines are often missed.&#x000A;     */&#x000A;    $table-&gt;setOption('type', 'InnoDB');&#x000A;    $table-&gt;setOption('charset', 'utf8');&#x000A;    &#x000A;    /**&#x000A;     * Create the table!&#x000A;     */&#x000A;    $this-&gt;getConnection()-&gt;createTable($table);&#x000A;    &#x000A;    $this-&gt;endSetup();</code></pre>
    <h3>Initializing Our Module</h3>
    <p>At this point, we still do not have an active Magento module; we just have a number of folders and empty files and an installation setup script that does not do anything yet. This is on purpose. In the next steps, we will populate the <code>app/etc/modules</code> XML file and configure <code>config.xml</code> so that Magento knows where to look for our setup script, after which the next visit to the website will trigger the content of our setup script to run.</p>
    <p>If we had performed these tasks the other way round (that is, configured the module first and then populated the setup script), then there is a chance Magento would think that our module was on version 0.0.1 and that our setup script was still empty and, as a result, that the script would effectively have to be skipped. So, to limit face-palm moments for you guys, I’ve tried to keep the order of steps as safe as possible.</p>
    <h4>Configuring Our Module</h4>
    <p>Edit the file at <code>app/etc/modules/SmashingMagazine_BrandDirectory.xml</code>, and add the following to enable our module:</p>
    <pre><code>&lt;?xml version="1.0"?&gt;&#x000A;    &lt;config&gt;&#x000A;        &lt;modules&gt;&#x000A;            &lt;SmashingMagazine_BrandDirectory&gt;&#x000A;                &lt;active&gt;true&lt;/active&gt;&#x000A;                &lt;codePool&gt;community&lt;/codePool&gt;&#x000A;            &lt;/SmashingMagazine_BrandDirectory&gt;&#x000A;        &lt;/modules&gt;&#x000A;    &lt;/config&gt;</code></pre>
    <p>You will notice we are using the community codepool. This BrandDirectory module will not contain any client-specific code or customizations. Instead, it will contain the building blocks for our new entity, which can be used in other modules, depending on the use case. Therefore, this community module may be dropped into any Magento instance and used as is, without any code needing to be changed. If code changes were required for each use, then this would be more suitable to the local code pool.</p>
    <p>Now, we tell Magento that we have a module with a version number, which in fact will determine which setup scripts are run and where to find the setup scripts. Edit <code>etc/config.xml</code> with the following:</p>
    <pre><code>&lt;?xml version="1.0"?&gt;&#x000A;    &lt;config&gt;&#x000A;        &lt;modules&gt;&#x000A;            &lt;SmashingMagazine_BrandDirectory&gt;&#x000A;                &lt;!--&#x000A;                This is the version number that our module is currently at. In &#x000A;                order for setup scripts to run, their version number must be less&#x000A;                than or equal to this value.&#x000A;    &#x000A;                As we add upgrade scripts, we increment this value. The next time&#x000A;                your Magento instance is accessed, Magento will compare values in&#x000A;                the DB table 'core_resource' against this value. If the DB is&#x000A;                lower, it will attempt to run any setup scripts for the module&#x000A;                and then update the database table to match this value.&#x000A;                --&gt;&#x000A;                &lt;version&gt;0.0.1&lt;/version&gt;&#x000A;            &lt;/SmashingMagazine_BrandDirectory&gt;&#x000A;        &lt;/modules&gt;&#x000A;        &lt;global&gt;&#x000A;            &lt;models&gt;&#x000A;                &#x000A;                &lt;!-- &#x000A;                This is the Model alias referred to in install-0.0.1.php.&#x000A;                --&gt;&#x000A;                &lt;smashingmagazine_branddirectory&gt;&#x000A;                    &#x000A;                    &lt;!-- &#x000A;                    This tells Magento where to find&#x000A;                    resource materials for this module.&#x000A;                    --&gt;&#x000A;          &lt;resourceModel&gt;smashingmagazine_branddirectory_resource&lt;/resourceModel&gt;&#x000A;                    &#x000A;                &lt;/smashingmagazine_branddirectory&gt;&#x000A;                &#x000A;                &lt;!--&#x000A;                This alias must match the above &lt;resourceModel/&gt; value.&#x000A;                --&gt;&#x000A;                &lt;smashingmagazine_branddirectory_resource&gt;&#x000A;                    &#x000A;                    &lt;entities&gt;&#x000A;                        &#x000A;                        &lt;!--&#x000A;                        This is the table alias referred to in install-0.0.1.php.&#x000A;                        --&gt;&#x000A;                        &lt;brand&gt;&#x000A;                            &#x000A;                            &lt;!-- &#x000A;                            This is the actual name of the database table.&#x000A;                            --&gt;&#x000A;                            &lt;table&gt;smashingmagazine_branddirectory_brand&lt;/table&gt;&#x000A;                            &#x000A;                        &lt;/brand&gt;&#x000A;                        &#x000A;                    &lt;/entities&gt;&#x000A;                    &#x000A;                &lt;/smashingmagazine_branddirectory_resource&gt;&#x000A;                &#x000A;            &lt;/models&gt;&#x000A;            &#x000A;            &lt;resources&gt;&#x000A;                &#x000A;                &lt;!-- &#x000A;                This must match our folder name in the module sql folder.&#x000A;                --&gt;&#x000A;                &lt;smashingmagazine_branddirectory_setup&gt;&#x000A;                    &#x000A;                    &lt;setup&gt;&#x000A;                        &#x000A;                        &lt;!-- &#x000A;                        This defines which module the setup&#x000A;                        scripts in this location belong to.&#x000A;                        --&gt;&#x000A;                        &lt;module&gt;SmashingMagazine_BrandDirectory&lt;/module&gt;&#x000A;                        &#x000A;                        &lt;!-- &#x000A;                        In each setup script, this &#x000A;                        value determines the class of $this.&#x000A;                        --&gt;&#x000A;                        &lt;class&gt;Mage_Eav_Model_Entity_Setup&lt;/class&gt;&#x000A;                        &#x000A;                    &lt;/setup&gt;&#x000A;                    &#x000A;                    &lt;!--&#x000A;                    This is only relevant if you have&#x000A;    				multiple database connections.&#x000A;                    --&gt;&#x000A;                    &lt;connection&gt;&#x000A;                        &lt;use&gt;core_setup&lt;/use&gt;&#x000A;                    &lt;/connection&gt;&#x000A;                    &#x000A;                &lt;/smashingmagazine_branddirectory_setup&gt;&#x000A;                &#x000A;            &lt;/resources&gt;&#x000A;            &#x000A;        &lt;/global&gt;&#x000A;    &lt;/config&gt;</code></pre>
    <h3>Is Everything Working So Far?</h3>
    <p>Go ahead and access any page of your website — the home page will do. Magento will find that it has a new module at version 0.0.1, yet it has no record of this module in the <code>core_resource</code> database table. This missing entry will trigger Magento to look for an installation setup script and execute its contents.</p>
    <h4>If All Goes Well…</h4>
    <p>If all goes well, then it will seem like nothing has happened. The Magento page might take a few moments longer to load while the contents of our setup script is run (i.e. while the new database table is created), and then the page will continue to load as normal. You now have two tasks to perform to check that everything has gone as expected:</p>
    <ol>
    <li>Ensure that Magento knows about your module and that the module is enabled by going to <code>System → Configuration → Advanced → Advanced</code>.</li>
    <li>Access your database via either the terminal or something like PHPMyAdmin to see whether Magento has created a new table, <code>smashingmagazine_branddirectory_brand</code>.</li>
    </ol>
    <h4>If All Does Not Go Well…</h4>
    <p>If all does not go well, then it might also seem like nothing has happened, only this time nothing really has happened! The reason for this could be typos in <code>config.xml</code>, badly named folders or files (take care with case-sensitivity) or something else. Go through the previous steps and double-check that everything is as it should be.</p>
    <p>On the other hand, you might see an error message — perhaps a “PHP Fatal Error” or a report page, depending on the severity of the error. Use your debugging skills to identify the problem and correct it, again double-checking all previous steps in this tutorial.</p>
    <h4>“It Went Wrong. How Do I Try Again?”</h4>
    <p>To try again from scratch, you can perform the following actions — not all may be required, depending on how far Magento got before things went wrong. You will need to access your database directly because this cannot be performed through Magento:</p>
    <ol>
    <li>In the <code>core_resource</code> table, delete the single row <code>smashingmagazine_branddirectory_setup</code>.</li>
    <li>Delete the <code>smashingmagazine_branddirectory_brand</code> table.</li>
    </ol>
    <h3>Creating Our Helper</h3>
    <p>We don’t actually need to define any custom functionality in a helper for this tutorial. But we will be adding menu items to the admin panel that use a helper for translation purposes, so we can simply create one in <code>Helper/Data.php</code> and forget about it.</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Helper_Data&#x000A;        extends Mage_Core_Helper_Abstract&#x000A;    {&#x000A;        &#x000A;    }</code></pre>
    <h3>Creating Our Models</h3>
    <p>Next, we need to create models and resource models so that we can persist brand data to the database upon creating and saving, display information about our brands in the Magento admin panel grids, and display our brands to the customer in the front-end.</p>
    <h4>Brand Model</h4>
    <p>We need to define a model to enable developers to interact with our brand entities. I won’t go into any more detail than that because people smarter than me have no doubt already explained what a model does, so feel free to search out some articles. For now, I will stick to getting our model to do the job we need in order to continue our tutorial. So, edit <code>Model/Brand.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Model_Brand&#x000A;        extends Mage_Core_Model_Abstract&#x000A;    {&#x000A;        const VISIBILITY_HIDDEN = '0';&#x000A;        const VISIBILITY_DIRECTORY = '1';&#x000A;        &#x000A;        protected function _construct()&#x000A;        {&#x000A;            /**&#x000A;             * This tells Magento where the related resource model can be found.&#x000A;             * &#x000A;             * For a resource model, Magento will use the standard model alias -&#x000A;             * in this case 'smashingmagazine_branddirectory' - and look in &#x000A;             * config.xml for a child node &lt;resourceModel/&gt;. This will be the&#x000A;             * location that Magento will look for a model when &#x000A;             * Mage::getResourceModel() is called - in our case,&#x000A;             * SmashingMagazine_BrandDirectory_Model_Resource.&#x000A;             */&#x000A;            $this-&gt;_init('smashingmagazine_branddirectory/brand');&#x000A;        }&#x000A;        &#x000A;        /**&#x000A;         * This method is used in the grid and form for populating the dropdown.&#x000A;         */&#x000A;        public function getAvailableVisibilies()&#x000A;        {&#x000A;            return array(&#x000A;                self::VISIBILITY_HIDDEN &#x000A;                    =&gt; Mage::helper('smashingmagazine_branddirectory')&#x000A;                           -&gt;__('Hidden'),&#x000A;                self::VISIBILITY_DIRECTORY&#x000A;                    =&gt; Mage::helper('smashingmagazine_branddirectory')&#x000A;                           -&gt;__('Visible in Directory'),&#x000A;            );&#x000A;        }&#x000A;        &#x000A;        protected function _beforeSave()&#x000A;        {&#x000A;            parent::_beforeSave();&#x000A;            &#x000A;            /**&#x000A;             * Perform some actions just before a brand is saved.&#x000A;             */&#x000A;            $this-&gt;_updateTimestamps();&#x000A;            $this-&gt;_prepareUrlKey();&#x000A;            &#x000A;            return $this;&#x000A;        }&#x000A;        &#x000A;        protected function _updateTimestamps()&#x000A;        {&#x000A;            $timestamp = now();&#x000A;            &#x000A;            /**&#x000A;             * Set the last updated timestamp.&#x000A;             */&#x000A;            $this-&gt;setUpdatedAt($timestamp);&#x000A;            &#x000A;            /**&#x000A;             * If we have a brand new object, set the created timestamp.&#x000A;             */&#x000A;            if ($this-&gt;isObjectNew()) {&#x000A;                $this-&gt;setCreatedAt($timestamp);&#x000A;            }&#x000A;            &#x000A;            return $this;&#x000A;        }&#x000A;        &#x000A;        protected function _prepareUrlKey()&#x000A;        {&#x000A;            /**&#x000A;             * In this method, you might consider ensuring&#x000A;             * that the URL Key entered is unique and&#x000A;             * contains only alphanumeric characters.&#x000A;             */&#x000A;            &#x000A;            return $this;&#x000A;        }&#x000A;    }</code></pre>
    <h4>Brand Resource Model</h4>
    <p>As in my introduction to the model above, I won’t go into any more detail than to say that the job of the resource model is to persist and retrieve data from the database. So edit <code>Model/Resource/Brand.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Model_Resource_Brand&#x000A;        extends Mage_Core_Model_Resource_Db_Abstract&#x000A;    {&#x000A;        protected function _construct()&#x000A;        {&#x000A;            /**&#x000A;             * Tell Magento the database name and primary key field to persist &#x000A;             * data to. Similar to the _construct() of our model, Magento finds &#x000A;             * this data from config.xml by finding the &lt;resourceModel/&gt; node &#x000A;             * and locating children of &lt;entities/&gt;.&#x000A;             * &#x000A;             * In this example:&#x000A;             * - smashingmagazine_branddirectory is the model alias&#x000A;             * - brand is the entity referenced in config.xml&#x000A;             * - entity_id is the name of the primary key column&#x000A;             * &#x000A;             * As a result, Magento will write data to the table&#x000A;             * 'smashingmagazine_branddirectory_brand' and any calls&#x000A;             * to $model-&gt;getId() will retrieve the data from the&#x000A;             * column named 'entity_id'.&#x000A;             */&#x000A;            $this-&gt;_init('smashingmagazine_branddirectory/brand', 'entity_id');&#x000A;        }&#x000A;    }</code></pre>
    <h4>Brand Resource Collection</h4>
    <p>Finally, we need a resource collection to allow iteration through our brands for things like admin panel grids and front-end listing pages. Edit <code>Model/Resource/Brand/Collection.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Model_Resource_Brand_Collection&#x000A;        extends Mage_Core_Model_Resource_Db_Collection_Abstract&#x000A;    {&#x000A;        protected function _construct()&#x000A;        {&#x000A;            parent::_construct();&#x000A;            &#x000A;            /**&#x000A;             * Tell Magento the model and resource model to use for&#x000A;             * this collection. Because both aliases are the same,&#x000A;             * we can omit the second paramater if we wish.&#x000A;             */&#x000A;            $this-&gt;_init(&#x000A;                'smashingmagazine_branddirectory/brand', &#x000A;                'smashingmagazine_branddirectory/brand'&#x000A;            );&#x000A;        }&#x000A;    }</code></pre>
    <h3>Creating Our Admin Blocks</h3>
    <p>Most of the grunt work is now done. A database is ready to be populated, and models and resource models are ready to populate them. We just need to create the interface to do so. We’ll start by creating and configuring admin blocks to display our brands as grids in the admin panel and allowing them to be created and updated.</p>
    <h4>Grid Container Block</h4>
    <p>The job of the grid container is to house the individual rows of brand entries to be displayed in Magento’s admin panel. The grid container is like a wrapper and includes the buttons in the top right (for example, “Add”). Edit <code>Block/Adminhtml/Brand.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Block_Adminhtml_Brand&#x000A;        extends Mage_Adminhtml_Block_Widget_Grid_Container&#x000A;    {&#x000A;        protected function _construct()&#x000A;        {&#x000A;            parent::_construct();&#x000A;            &#x000A;            /**&#x000A;             * The $_blockGroup property tells Magento which alias to use to&#x000A;             * locate the blocks to be displayed in this grid container.&#x000A;             * In our example, this corresponds to BrandDirectory/Block/Adminhtml.&#x000A;             */&#x000A;            $this-&gt;_blockGroup = 'smashingmagazine_branddirectory_adminhtml';&#x000A;            &#x000A;            /**&#x000A;             * $_controller is a slightly confusing name for this property.&#x000A;             * This value, in fact, refers to the folder containing our&#x000A;             * Grid.php and Edit.php - in our example, &#x000A;             * BrandDirectory/Block/Adminhtml/Brand. So, we'll use 'brand'.&#x000A;             */&#x000A;            $this-&gt;_controller = 'brand';&#x000A;            &#x000A;            /**&#x000A;             * The title of the page in the admin panel.&#x000A;             */&#x000A;            $this-&gt;_headerText = Mage::helper('smashingmagazine_branddirectory')&#x000A;                -&gt;__('Brand Directory');&#x000A;        }&#x000A;        &#x000A;        public function getCreateUrl()&#x000A;        {&#x000A;            /**&#x000A;             * When the "Add" button is clicked, this is where the user should&#x000A;             * be redirected to - in our example, the method editAction of &#x000A;             * BrandController.php in BrandDirectory module.&#x000A;             */&#x000A;            return $this-&gt;getUrl(&#x000A;                'smashingmagazine_branddirectory_admin/brand/edit'&#x000A;            );&#x000A;        }&#x000A;    }</code></pre>
    <h4>Grid Block</h4>
    <p>When rendering the grid, Magento will expect to find a grid block in the <code>_controller</code> location defined in the grid container above, so we will create this now. Here, we can define which fields to retrieve from the database and show in the admin panel grid, and Magento will automatically allow these columns to be searched and filtered. Edit <code>Block/Adminhtml/Brand/Grid.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Block_Adminhtml_Brand_Grid&#x000A;        extends Mage_Adminhtml_Block_Widget_Grid&#x000A;    {&#x000A;        protected function _prepareCollection()&#x000A;        {&#x000A;            /**&#x000A;             * Tell Magento which collection to use to display in the grid.&#x000A;             */&#x000A;            $collection = Mage::getResourceModel(&#x000A;                'smashingmagazine_branddirectory/brand_collection'&#x000A;            );&#x000A;            $this-&gt;setCollection($collection);&#x000A;            &#x000A;            return parent::_prepareCollection();&#x000A;        }&#x000A;        &#x000A;        public function getRowUrl($row)&#x000A;        {&#x000A;            /**&#x000A;             * When a grid row is clicked, this is where the user should&#x000A;             * be redirected to - in our example, the method editAction of &#x000A;             * BrandController.php in BrandDirectory module.&#x000A;             */&#x000A;            return $this-&gt;getUrl(&#x000A;                'smashingmagazine_branddirectory_admin/brand/edit', &#x000A;                array(&#x000A;                    'id' =&gt; $row-&gt;getId()&#x000A;                )&#x000A;            );&#x000A;        }&#x000A;    &#x000A;        protected function _prepareColumns()&#x000A;        {&#x000A;            /**&#x000A;             * Here, we'll define which columns to display in the grid.&#x000A;             */&#x000A;            $this-&gt;addColumn('entity_id', array(&#x000A;                'header' =&gt; $this-&gt;_getHelper()-&gt;__('ID'),&#x000A;                'type' =&gt; 'number',&#x000A;                'index' =&gt; 'entity_id',&#x000A;            ));&#x000A;            &#x000A;            $this-&gt;addColumn('created_at', array(&#x000A;                'header' =&gt; $this-&gt;_getHelper()-&gt;__('Created'),&#x000A;                'type' =&gt; 'datetime',&#x000A;                'index' =&gt; 'created_at',&#x000A;            ));&#x000A;            &#x000A;            $this-&gt;addColumn('updated_at', array(&#x000A;                'header' =&gt; $this-&gt;_getHelper()-&gt;__('Updated'),&#x000A;                'type' =&gt; 'datetime',&#x000A;                'index' =&gt; 'updated_at',&#x000A;            ));&#x000A;            &#x000A;            $this-&gt;addColumn('name', array(&#x000A;                'header' =&gt; $this-&gt;_getHelper()-&gt;__('Name'),&#x000A;                'type' =&gt; 'text',&#x000A;                'index' =&gt; 'name',&#x000A;            ));&#x000A;            &#x000A;            $this-&gt;addColumn('lastname', array(&#x000A;                'header' =&gt; $this-&gt;_getHelper()-&gt;__('Url Key'),&#x000A;                'type' =&gt; 'text',&#x000A;                'index' =&gt; 'url_key',&#x000A;            ));&#x000A;            &#x000A;            $brandSingleton = Mage::getSingleton(&#x000A;                'smashingmagazine_branddirectory/brand'&#x000A;            );&#x000A;            $this-&gt;addColumn('visibility', array(&#x000A;                'header' =&gt; $this-&gt;_getHelper()-&gt;__('Visibility'),&#x000A;                'type' =&gt; 'options',&#x000A;                'index' =&gt; 'visibility',&#x000A;                'options' =&gt; $brandSingleton-&gt;getAvailableVisibilies()&#x000A;            ));&#x000A;            &#x000A;            /**&#x000A;             * Finally, we'll add an action column with an edit link.&#x000A;             */&#x000A;            $this-&gt;addColumn('action', array(&#x000A;                'header' =&gt; $this-&gt;_getHelper()-&gt;__('Action'),&#x000A;                'width' =&gt; '50px',&#x000A;                'type' =&gt; 'action',&#x000A;                'actions' =&gt; array(&#x000A;                    array(&#x000A;                        'caption' =&gt; $this-&gt;_getHelper()-&gt;__('Edit'),&#x000A;                        'url' =&gt; array(&#x000A;                            'base' =&gt; 'smashingmagazine_branddirectory_admin'&#x000A;                                      . '/brand/edit',&#x000A;                        ),&#x000A;                        'field' =&gt; 'id'&#x000A;                    ),&#x000A;                ),&#x000A;                'filter' =&gt; false,&#x000A;                'sortable' =&gt; false,&#x000A;                'index' =&gt; 'entity_id',&#x000A;            ));&#x000A;            &#x000A;            return parent::_prepareColumns();&#x000A;        }&#x000A;        &#x000A;        protected function _getHelper()&#x000A;        {&#x000A;            return Mage::helper('smashingmagazine_branddirectory');&#x000A;        }&#x000A;    }</code></pre>
    <h4>Form Container Block</h4>
    <p>The form container block has a function similar to that of the grid container but is used to create or edit an entity. Edit <code>Block/Adminhtml/Brand/Edit.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Block_Adminhtml_Brand_Edit&#x000A;        extends Mage_Adminhtml_Block_Widget_Form_Container&#x000A;    {&#x000A;        protected function _construct()&#x000A;        {&#x000A;            $this-&gt;_blockGroup = 'smashingmagazine_branddirectory_adminhtml';&#x000A;            $this-&gt;_controller = 'brand';&#x000A;            &#x000A;            /**&#x000A;             * The $_mode property tells Magento which folder to use&#x000A;             * to locate the related form blocks to be displayed in&#x000A;             * this form container. In our example, this corresponds&#x000A;             * to BrandDirectory/Block/Adminhtml/Brand/Edit/.&#x000A;             */&#x000A;            $this-&gt;_mode = 'edit';&#x000A;            &#x000A;            $newOrEdit = $this-&gt;getRequest()-&gt;getParam('id')&#x000A;                ? $this-&gt;__('Edit') &#x000A;                : $this-&gt;__('New');&#x000A;            $this-&gt;_headerText =  $newOrEdit . ' ' . $this-&gt;__('Brand');&#x000A;        }&#x000A;    }</code></pre>
    <h4>Form Block</h4>
    <p>In the form block, we define which fields may be managed when creating or editing an entity. Edit <code>Block/Adminhtml/Brand/Edit/Form.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Block_Adminhtml_Brand_Edit_Form&#x000A;        extends Mage_Adminhtml_Block_Widget_Form&#x000A;    {&#x000A;        protected function _prepareForm()&#x000A;        {&#x000A;            // Instantiate a new form to display our brand for editing.&#x000A;            $form = new Varien_Data_Form(array(&#x000A;                'id' =&gt; 'edit_form',&#x000A;                'action' =&gt; $this-&gt;getUrl(&#x000A;                    'smashingmagazine_branddirectory_admin/brand/edit', &#x000A;                    array(&#x000A;                        '_current' =&gt; true,&#x000A;                        'continue' =&gt; 0,&#x000A;                    )&#x000A;                ),&#x000A;                'method' =&gt; 'post',&#x000A;            ));&#x000A;            $form-&gt;setUseContainer(true);&#x000A;            $this-&gt;setForm($form);&#x000A;            &#x000A;            // Define a new fieldset. We need only one for our simple entity.&#x000A;            $fieldset = $form-&gt;addFieldset(&#x000A;                'general',&#x000A;                array(&#x000A;                    'legend' =&gt; $this-&gt;__('Brand Details')&#x000A;                )&#x000A;            );&#x000A;            &#x000A;            $brandSingleton = Mage::getSingleton(&#x000A;                'smashingmagazine_branddirectory/brand'&#x000A;            );&#x000A;            &#x000A;            // Add the fields that we want to be editable.&#x000A;            $this-&gt;_addFieldsToFieldset($fieldset, array(&#x000A;                'name' =&gt; array(&#x000A;                    'label' =&gt; $this-&gt;__('Name'),&#x000A;                    'input' =&gt; 'text',&#x000A;                    'required' =&gt; true,&#x000A;                ),&#x000A;                'url_key' =&gt; array(&#x000A;                    'label' =&gt; $this-&gt;__('URL Key'),&#x000A;                    'input' =&gt; 'text',&#x000A;                    'required' =&gt; true,&#x000A;                ),&#x000A;                'description' =&gt; array(&#x000A;                    'label' =&gt; $this-&gt;__('Description'),&#x000A;                    'input' =&gt; 'textarea',&#x000A;                    'required' =&gt; true,&#x000A;                ),&#x000A;                'visibility' =&gt; array(&#x000A;                    'label' =&gt; $this-&gt;__('Visibility'),&#x000A;                    'input' =&gt; 'select',&#x000A;                    'required' =&gt; true,&#x000A;                    'options' =&gt; $brandSingleton-&gt;getAvailableVisibilies(),&#x000A;                ),&#x000A;                &#x000A;                /**&#x000A;                 * Note: we have not included created_at or updated_at.&#x000A;                 * We will handle those fields ourself in the model&#x000A;    			 * before saving.&#x000A;                 */&#x000A;            ));&#x000A;    &#x000A;            return $this;&#x000A;        }&#x000A;        &#x000A;        /**&#x000A;         * This method makes life a little easier for us by pre-populating &#x000A;         * fields with $_POST data where applicable and wrapping our post data&#x000A;         * in 'brandData' so that we can easily separate all relevant information&#x000A;         * in the controller. You could of course omit this method entirely&#x000A;         * and call the $fieldset-&gt;addField() method directly.&#x000A;         */&#x000A;        protected function _addFieldsToFieldset(&#x000A;            Varien_Data_Form_Element_Fieldset $fieldset, $fields)&#x000A;        {&#x000A;            $requestData = new Varien_Object($this-&gt;getRequest()&#x000A;                -&gt;getPost('brandData'));&#x000A;            &#x000A;            foreach ($fields as $name =&gt; $_data) {&#x000A;                if ($requestValue = $requestData-&gt;getData($name)) {&#x000A;                    $_data['value'] = $requestValue;&#x000A;                }&#x000A;                &#x000A;                // Wrap all fields with brandData group.&#x000A;                $_data['name'] = "brandData[$name]";&#x000A;                &#x000A;                // Generally, label and title are always the same.&#x000A;                $_data['title'] = $_data['label'];&#x000A;                &#x000A;                // If no new value exists, use the existing brand data.&#x000A;                if (!array_key_exists('value', $_data)) {&#x000A;                    $_data['value'] = $this-&gt;_getBrand()-&gt;getData($name);&#x000A;                }&#x000A;                &#x000A;                // Finally, call vanilla functionality to add field.&#x000A;                $fieldset-&gt;addField($name, $_data['input'], $_data);&#x000A;            }&#x000A;            &#x000A;            return $this;&#x000A;        }&#x000A;        &#x000A;        /**&#x000A;         * Retrieve the existing brand for pre-populating the form fields.&#x000A;         * For a new brand entry, this will return an empty brand object.&#x000A;         */&#x000A;        protected function _getBrand() &#x000A;        {&#x000A;            if (!$this-&gt;hasData('brand')) {&#x000A;                // This will have been set in the controller.&#x000A;                $brand = Mage::registry('current_brand');&#x000A;                &#x000A;                // Just in case the controller does not register the brand.&#x000A;                if (!$brand instanceof &#x000A;                        SmashingMagazine_BrandDirectory_Model_Brand) {&#x000A;                    $brand = Mage::getModel(&#x000A;                        'smashingmagazine_branddirectory/brand'&#x000A;                    );&#x000A;                }&#x000A;                &#x000A;                $this-&gt;setData('brand', $brand);&#x000A;            }&#x000A;            &#x000A;            return $this-&gt;getData('brand');&#x000A;        }&#x000A;    }</code></pre>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/03/2-admin-form.png" alt="Magento Brand Admin Form" width="500" height="" style="max-width: 100%; height: auto;"></p>
    <h3>Creating Our Admin Controller</h3>
    <p>Now, we need a controller to accept requests and render the container blocks from above. The controller will also handle <code>POST</code> requests to create, update and delete brands as required. Edit <code>controllers/Adminhtml/BrandController.php</code> with this:</p>
    <pre><code>&lt;?php&#x000A;    class SmashingMagazine_BrandDirectory_Adminhtml_BrandController&#x000A;        extends Mage_Adminhtml_Controller_Action&#x000A;    {&#x000A;        /**&#x000A;         * Instantiate our grid container block and add to the page content.&#x000A;         * When accessing this admin index page, we will see a grid of all&#x000A;         * brands currently available in our Magento instance, along with&#x000A;         * a button to add a new one if we wish.&#x000A;         */&#x000A;        public function indexAction()&#x000A;        {&#x000A;            // instantiate the grid container&#x000A;            $brandBlock = $this-&gt;getLayout()&#x000A;                -&gt;createBlock('smashingmagazine_branddirectory_adminhtml/brand');&#x000A;            &#x000A;            // Add the grid container as the only item on this page&#x000A;            $this-&gt;loadLayout()&#x000A;                -&gt;_addContent($brandBlock)&#x000A;                -&gt;renderLayout();&#x000A;        }&#x000A;        &#x000A;        /**&#x000A;         * This action handles both viewing and editing existing brands.&#x000A;         */&#x000A;        public function editAction()&#x000A;        {&#x000A;            /**&#x000A;             * Retrieve existing brand data if an ID was specified.&#x000A;             * If not, we will have an empty brand entity ready to be populated.&#x000A;             */&#x000A;            $brand = Mage::getModel('smashingmagazine_branddirectory/brand');&#x000A;            if ($brandId = $this-&gt;getRequest()-&gt;getParam('id', false)) {&#x000A;                $brand-&gt;load($brandId);&#x000A;    &#x000A;                if ($brand-&gt;getId() &lt; 1) {&#x000A;                    $this-&gt;_getSession()-&gt;addError(&#x000A;                        $this-&gt;__('This brand no longer exists.')&#x000A;                    );&#x000A;                    return $this-&gt;_redirect(&#x000A;                        'smashingmagazine_branddirectory_admin/brand/index'&#x000A;                    );&#x000A;                }&#x000A;            }&#x000A;            &#x000A;            // process $_POST data if the form was submitted&#x000A;            if ($postData = $this-&gt;getRequest()-&gt;getPost('brandData')) {&#x000A;                try {&#x000A;                    $brand-&gt;addData($postData);&#x000A;                    $brand-&gt;save();&#x000A;                    &#x000A;                    $this-&gt;_getSession()-&gt;addSuccess(&#x000A;                        $this-&gt;__('The brand has been saved.')&#x000A;                    );&#x000A;                    &#x000A;                    // redirect to remove $_POST data from the request&#x000A;                    return $this-&gt;_redirect(&#x000A;                        'smashingmagazine_branddirectory_admin/brand/edit', &#x000A;                        array('id' =&gt; $brand-&gt;getId())&#x000A;                    );&#x000A;                } catch (Exception $e) {&#x000A;                    Mage::logException($e);&#x000A;                    $this-&gt;_getSession()-&gt;addError($e-&gt;getMessage());&#x000A;                }&#x000A;                &#x000A;                /**&#x000A;                 * If we get to here, then something went wrong. Continue to&#x000A;                 * render the page as before, the difference this time being &#x000A;                 * that the submitted $_POST data is available.&#x000A;                 */&#x000A;            }&#x000A;            &#x000A;            // Make the current brand object available to blocks.&#x000A;            Mage::register('current_brand', $brand);&#x000A;            &#x000A;            // Instantiate the form container.&#x000A;            $brandEditBlock = $this-&gt;getLayout()-&gt;createBlock(&#x000A;                'smashingmagazine_branddirectory_adminhtml/brand_edit'&#x000A;            );&#x000A;            &#x000A;            // Add the form container as the only item on this page.&#x000A;            $this-&gt;loadLayout()&#x000A;                -&gt;_addContent($brandEditBlock)&#x000A;                -&gt;renderLayout();&#x000A;        }&#x000A;        &#x000A;        public function deleteAction()&#x000A;        {&#x000A;            $brand = Mage::getModel('smashingmagazine_branddirectory/brand');&#x000A;    &#x000A;            if ($brandId = $this-&gt;getRequest()-&gt;getParam('id', false)) {&#x000A;                $brand-&gt;load($brandId);&#x000A;            }&#x000A;            &#x000A;            if ($brand-&gt;getId() &lt; 1) {&#x000A;                $this-&gt;_getSession()-&gt;addError(&#x000A;                    $this-&gt;__('This brand no longer exists.')&#x000A;                );&#x000A;                return $this-&gt;_redirect(&#x000A;                    'smashingmagazine_branddirectory_admin/brand/index'&#x000A;                );&#x000A;            }&#x000A;            &#x000A;            try {&#x000A;                $brand-&gt;delete();&#x000A;                &#x000A;                $this-&gt;_getSession()-&gt;addSuccess(&#x000A;                    $this-&gt;__('The brand has been deleted.')&#x000A;                );&#x000A;            } catch (Exception $e) {&#x000A;                Mage::logException($e);&#x000A;                $this-&gt;_getSession()-&gt;addError($e-&gt;getMessage());&#x000A;            }&#x000A;    &#x000A;            return $this-&gt;_redirect(&#x000A;                'smashingmagazine_branddirectory_admin/brand/index'&#x000A;            );&#x000A;        }&#x000A;    }</code></pre>
    <h3>Completing The Configuration</h3>
    <p>That’s all the code we need for the back end. We just need to make a few changes to <code>config.xml</code> to tell Magento where to find our controller, blocks, models and helper. We also have to add a menu item to the admin panel for easy access to manage our brand entity.</p>
    <h4>config.xml</h4>
    <p>We need to add block, helper and model definitions to our module configuration so that Magento knows where to locate these files, as well as an admin router so that Magento knows where to locate our controller for the menu items that we are about to add in the next step. The final version of our <code>etc/config.xml</code> file will look as follows:</p>
    <pre><code>&lt;?xml version="1.0"?&gt;&#x000A;    &lt;config&gt;&#x000A;        &lt;modules&gt;&#x000A;            &lt;SmashingMagazine_BrandDirectory&gt;&#x000A;                &lt;!--&#x000A;                This is the version number that our module is currently at.&#x000A;                In order for setup scripts to run, their version number must&#x000A;                be less than or equal to this value.&#x000A;                &#x000A;                As we add upgrade scripts, we increment this value. The next time&#x000A;                your Magento instance is accessed, Magento will compare values in&#x000A;                the database table 'core_resource' against this value. If the&#x000A;                database is lower, it will attempt to run any setup scripts for&#x000A;                the module and then update the database table to match this value.&#x000A;                --&gt;&#x000A;                &lt;version&gt;0.0.1&lt;/version&gt;&#x000A;            &lt;/SmashingMagazine_BrandDirectory&gt;&#x000A;        &lt;/modules&gt;&#x000A;        &lt;global&gt;&#x000A;            &#x000A;            &lt;!-- &#x000A;            add an adminhtml block definition &#x000A;            --&gt;&#x000A;            &lt;blocks&gt;&#x000A;                &lt;smashingmagazine_branddirectory_adminhtml&gt;&#x000A;                   &lt;class&gt;SmashingMagazine_BrandDirectory_Block_Adminhtml&lt;/class&gt;&#x000A;                &lt;/smashingmagazine_branddirectory_adminhtml&gt;&#x000A;            &lt;/blocks&gt;&#x000A;            &#x000A;            &lt;!-- &#x000A;            Add a helper definition for use in adminhtml.xml menu translation.&#x000A;            --&gt;&#x000A;            &lt;helpers&gt;&#x000A;                &lt;smashingmagazine_branddirectory&gt;&#x000A;                    &lt;class&gt;SmashingMagazine_BrandDirectory_Helper&lt;/class&gt;&#x000A;                &lt;/smashingmagazine_branddirectory&gt;&#x000A;            &lt;/helpers&gt;&#x000A;            &#x000A;            &lt;models&gt;&#x000A;                &#x000A;                &lt;!-- &#x000A;                This is the model alias referred to in install-0.0.1.php.&#x000A;                --&gt;&#x000A;                &lt;smashingmagazine_branddirectory&gt;&#x000A;                    &lt;!-- &#x000A;                    This tells Magento where to find models for this module.&#x000A;                    --&gt;&#x000A;                    &lt;class&gt;SmashingMagazine_BrandDirectory_Model&lt;/class&gt;&#x000A;                    &#x000A;                    &lt;!-- &#x000A;                    This tells Magento where to find resource &#x000A;                    materials for this module.&#x000A;                    --&gt;&#x000A;          &lt;resourceModel&gt;smashingmagazine_branddirectory_resource&lt;/resourceModel&gt;&#x000A;                    &#x000A;                &lt;/smashingmagazine_branddirectory&gt;&#x000A;                &#x000A;                &lt;!-- &#x000A;                This alias must match the &lt;resourceModel/&gt; value above.&#x000A;                --&gt;&#x000A;                &lt;smashingmagazine_branddirectory_resource&gt;&#x000A;                    &lt;!-- &#x000A;                    This tells Magento where to find resource&#x000A;                    models for this module.&#x000A;                    --&gt;&#x000A;                    &lt;class&gt;SmashingMagazine_BrandDirectory_Model_Resource&lt;/class&gt;&#x000A;                    &#x000A;                    &lt;entities&gt;&#x000A;                        &#x000A;                        &lt;!-- &#x000A;                        This is the table alias referred to in install-0.0.1.php.&#x000A;                        --&gt;&#x000A;                        &lt;brand&gt;&#x000A;                            &#x000A;                            &lt;!-- &#x000A;                                This is the name of the database table itself.&#x000A;                            --&gt;&#x000A;                            &lt;table&gt;smashingmagazine_branddirectory_brand&lt;/table&gt;&#x000A;                            &#x000A;                        &lt;/brand&gt;&#x000A;                        &#x000A;                    &lt;/entities&gt;&#x000A;                    &#x000A;                &lt;/smashingmagazine_branddirectory_resource&gt;&#x000A;                &#x000A;            &lt;/models&gt;&#x000A;            &#x000A;            &lt;resources&gt;&#x000A;                &#x000A;                &lt;!-- &#x000A;                This must match our folder name in the module sql folder.&#x000A;                --&gt;&#x000A;                &lt;smashingmagazine_branddirectory_setup&gt;&#x000A;                    &#x000A;                    &lt;setup&gt;&#x000A;                        &#x000A;                        &lt;!-- &#x000A;                        This defines which module the setup&#x000A;                        scripts in this location belong to.&#x000A;                        --&gt;&#x000A;                        &lt;module&gt;SmashingMagazine_BrandDirectory&lt;/module&gt;&#x000A;                        &#x000A;                        &lt;!-- &#x000A;                        In each setup script, this &#x000A;                        value determines the class of $this.&#x000A;                        --&gt;&#x000A;                        &lt;class&gt;Mage_Eav_Model_Entity_Setup&lt;/class&gt;&#x000A;                        &#x000A;                    &lt;/setup&gt;&#x000A;                    &#x000A;                    &lt;!--&#x000A;                    This is relevant only if you have multiple database connections.&#x000A;                    --&gt;&#x000A;                    &lt;connection&gt;&#x000A;                        &lt;use&gt;core_setup&lt;/use&gt;&#x000A;                    &lt;/connection&gt;&#x000A;                    &#x000A;                &lt;/smashingmagazine_branddirectory_setup&gt;&#x000A;                &#x000A;            &lt;/resources&gt;&#x000A;            &#x000A;        &lt;/global&gt;&#x000A;        &#x000A;        &lt;!-- Add a router for access to our admin panel controller. --&gt;&#x000A;        &lt;admin&gt;&#x000A;            &lt;routers&gt;&#x000A;                &#x000A;                &lt;!-- This is the alias for this router. --&gt;&#x000A;                &lt;smashingmagazine_branddirectory_admin&gt;&#x000A;                    &#x000A;                    &lt;!-- &#x000A;                    This basically informs Magento to use the&#x000A;                    admin scope for requests to this router.&#x000A;                    --&gt;&#x000A;                    &lt;use&gt;admin&lt;/use&gt;&#x000A;                    &#x000A;                    &lt;args&gt;&#x000A;                        &lt;!--&#x000A;                        This tells Magento where to find &#x000A;                        adminhtml controllers for this module.&#x000A;                        --&gt;&#x000A;                       &lt;module&gt;SmashingMagazine_BrandDirectory_Adminhtml&lt;/module&gt;&#x000A;                        &#x000A;                        &lt;!-- This is the term used in the actual URL. --&gt;&#x000A;                        &lt;frontName&gt;brand-directory-admin&lt;/frontName&gt;&#x000A;                    &lt;/args&gt;&#x000A;                    &#x000A;                &lt;/smashingmagazine_branddirectory_admin&gt;&#x000A;                &#x000A;            &lt;/routers&gt;&#x000A;        &lt;/admin&gt;&#x000A;        &#x000A;    &lt;/config&gt;</code></pre>
    <h4>adminhtml.xml</h4>
    <p>Adding menu items to Magento’s admin panel is straightforward. We simply have to create an <code>adminhtml.xml</code> file, define which items should appear and where they should lead to when clicked. Edit <code>etc/adminhtml.xml</code> with this:</p>
    <pre><code>&lt;?xml version="1.0"?&gt;&#x000A;    &lt;config&gt;&#x000A;        &lt;!-- We are defining a new menu item for the admin panel. --&gt;&#x000A;        &lt;menu&gt;&#x000A;            &#x000A;            &lt;!--&#x000A;            First, create a top-level menu item, which will appear alongside CMS&#x000A;            --&gt;&#x000A;            &lt;smashingmagazine_branddirectory translate="title"&#x000A;                    module="smashingmagazine_branddirectory"&gt;&#x000A;                &lt;title&gt;Brand Directory&lt;/title&gt;&#x000A;                &lt;sort_order&gt;75&lt;/sort_order&gt;&#x000A;                &lt;depends&gt;&#x000A;                    &lt;module&gt;SmashingMagazine_BrandDirectory&lt;/module&gt;&#x000A;                &lt;/depends&gt;&#x000A;                &#x000A;                &lt;!-- Under this top-level menu, create a child menu item. --&gt;&#x000A;                &lt;children&gt;&#x000A;                    &lt;brand translate="title" &#x000A;                            module="smashingmagazine_branddirectory"&gt;&#x000A;                        &lt;title&gt;Manage Brands&lt;/title&gt;&#x000A;                        &lt;sort_order&gt;10&lt;/sort_order&gt;&#x000A;                        &#x000A;                        &lt;!-- &#x000A;                        When the menu is clicked, take the user here.&#x000A;                        --&gt;&#x000A;                     &lt;action&gt;smashingmagazine_branddirectory_admin/brand&lt;/action&gt;&#x000A;                        &#x000A;                    &lt;/brand&gt;&#x000A;                &lt;/children&gt;&#x000A;            &lt;/smashingmagazine_branddirectory&gt;&#x000A;        &lt;/menu&gt;&#x000A;        &#x000A;        &lt;!-- Define ACL for access to these menu items. --&gt;&#x000A;        &lt;acl&gt;&#x000A;            &lt;resources&gt;&#x000A;                &lt;admin&gt;&#x000A;                    &lt;children&gt;&#x000A;                        &lt;smashingmagazine_branddirectory translate="title"&#x000A;                                module="smashingmagazine_branddirectory"&gt;&#x000A;                            &lt;title&gt;Brand Directory&lt;/title&gt;&#x000A;                            &lt;sort_order&gt;75&lt;/sort_order&gt;&#x000A;                            &lt;children&gt;&#x000A;                                &lt;brand translate="title" &#x000A;                                        module="smashingmagazine_branddirectory"&gt;&#x000A;                                    &lt;title&gt;Manage Brands&lt;/title&gt;&#x000A;                                &lt;/brand&gt;&#x000A;                            &lt;/children&gt;&#x000A;                        &lt;/smashingmagazine_branddirectory&gt;&#x000A;                    &lt;/children&gt;&#x000A;                &lt;/admin&gt;&#x000A;            &lt;/resources&gt;&#x000A;        &lt;/acl&gt;&#x000A;    &lt;/config&gt;</code></pre>
    <h3>Displaying Brands In The Front-End</h3>
    <p>We have reached the end of this tutorial on how to create an entity that is manageable from the admin panel. By now, you should be able to create, update and delete brands and to have those changes reflected in the database. You have a fully functioning brand entity, but it doesn’t actually do anything. The next step is to integrate this new entity in the rest of your Magento code.</p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/03/3-product-view.png" alt="Magento Brand Product View" width="500" height="" style="max-width: 100%; height: auto;"></p>
    <p>Rather than continue to ramble about how to do this, I have included in the attached source code an additional local module, named “BrandExample,” which contains examples of how to achieve this.</p>
    <p>Upon inspecting the attachment, you will notice I have kept this supplemental front-end example as a separate local module, in order for it not to be confused with the admin panel management sections covered above. Once you are more familiar, then by all means, bundle both modules into one if you wish.</p>
    <p>I won’t go into much detail with the example usages, but feel free to ask any questions in the comments section below.</p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/03/4-brand-list.png" alt="Magento Brand List" width="500" height="" style="max-width: 100%; height: auto;"></p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/03/5-brand-view.png" alt="Magento Brand View" width="500" height="" style="max-width: 100%; height: auto;"></p>
    <p>Feel free to <a href="http://amp.co/QEmbY" rel="nofollow external" class="bo">download the source code</a> (ZIP), which contains the following:</p>
    <ul>
    <li>the completed tutorial from above;</li>
    <li>a new product attribute to associate products with brands;</li>
    <li>inclusion of brands on the product view page, once associated;</li>
    <li>a brands listing and brands landing page, including related products;</li>
    <li>data setup scripts to create dummy products and brands.</li>
    </ul>
    <p><em>(al, il)</em></p>
    <hr>
    <p><small>© Joseph McDermott for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2014.</small></p>
    </div>
]]>
</Body>
<Summary>        In this tutorial, we will create a new “brand” entity in Magento that can be managed through the admin panel. Once we are finished, you will be able to create, update and delete brands...</Summary>
<Website>http://www.smashingmagazine.com/2014/03/13/how-to-create-an-admin-manageable-magento-entity-for-brands/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42422/guest@my.umbc.edu/86a9d8a13395d72ca69a10a1ba0ada30/api/pixel</TrackingUrl>
<Tag>coding</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 17:14:49 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="122752" important="false" status="posted" url="https://my3.my.umbc.edu/posts/122752">
<Title>Changing Communities: Sherece West-Scantlebury &#8217;07, Ph.D. public policy</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <img width="150" height="150" src="https://umbc.edu/wp-content/uploads/2014/03/sherece-west_mag-email-150x150.jpg" alt="" style="max-width: 100%; height: auto;"><p><a href="/wp-content/uploads/2014/03/sherece-west_mag-email.jpg" rel="nofollow external" class="bo"><img src="/wp-content/uploads/2014/03/sherece-west_mag-email.jpg" alt="sherece west_mag email" width="235" height="329" style="max-width: 100%; height: auto;"></a>From an early age, <strong>Sherece West-Scantlebury ’07, Ph.D., public policy </strong>recalls being preoccupied by a single question: <em>Why is this community the way it is?</em></p>
    <p>It was a question that first took root in West-Scantlebury’s own childhood in Brookyn, where she was born to a single teenage mother and lived in public housing. Her family later moved to Baltimore, where they made ends meet on public assistance. In both places, West-Scantlebury recalls witnessing “the usual ills associated with public housing” – drug addiction, alcoholism, domestic violence and abuse. But she also remembers the working people with big dreams who seldom saw those dreams come to fruition.</p>
    <p>“I just wanted to know how and why people lived – we lived – that way,” says West-Scantlebury. “It was just always something that drove me.”</p>
    <p>Education was the start of her path to find answers. West-Scantlebury earned an undergraduate degree in public administration at Bowie State University, then obtained an Alfred P. Sloan Foundation Policy Institutes grant that led to a master’s degree in public policy from the Gerald R. Ford School at the University of Michigan.</p>
    <p>West-Scantlebury wasn’t content with studying policy, however. She pursued a career in the nonprofit sector to help address fundamental social problems through targeted programs and investment in communities.</p>
    <p>“I was born with the heart to affect social justice,” she says. “I didn’t choose philanthropy, it chose me.”</p>
    <p>West-Scantlebury worked for twelve years as a program associate at Baltimore’s Annie E. Casey Foundation in Baltimore and worked on a doctorate at UMBC.</p>
    <p>Even before obtaining her Ph.D., West-Scantlebury was named as president and CEO of the Louisiana-based Carrier Foundation. When Hurricane Katrina hit in 2005, she found herself helping lead (and eventually becoming the CEO) of the Louisiana Recovery Foundation, charged with the fair distribution of donations pouring into the governor’s office.</p>
    <p>Two years later, West-Scantlebury was tapped to head the Winthrop Rockefeller Foundation in Little Rock, AR. The foundation’s mission is to improve the lives of all Arkansans by supporting education and economic development programs, and furthering the cause of racial, economic and social justice.</p>
    <p>In 2012, the Winthrop Rockefeller Foundation oversaw more than $4.6 million in grants awarded to 65 different groups. West-Scantlebury says the foundation is focused on solving what she calls the “old and difficult problems that keep Arkansas in the bottom five [in the United States] on indicators of children and family well-being. I want us to be number one on those indicators one day.”</p>
    <p>West-Scantlebury observes that the faculty staff and students in UMBC’s public policy department were all invested in her success as a nonprofit administrator. “There was great camaraderie, and a determination that we would all complete the program and make great contributions.”</p>
    <p>The feeling of accomplishment is mutual, says Donald Norris, chair of the public policy department. Norris nominated West-Scantlebury for UMBC’s 2013 Outstanding Alumna of the Year award in the Social and Behavioral Sciences, which she received at Homecoming last year.</p>
    <p>“Sherece’s excellent and effective career in public service and community leadership embodies the best of UMBC and demonstrates the best qualities of her graduate education,” says Norris.</p>
    <p>West-Scantlebury has long moved past merely trying to answer her own question about why a community takes its shape. She says she is proud to work for a foundation that supports the demanding but essential long-term changes required to make Arkansas a better place, and help to engineer those changes through grants that target poverty reduction, education and community development.</p>
    <p>The keys to success, says West-Scantlebury, are determination, collaboration and patience. “Collective action creates change, but it isn’t fast or easy,” she insists. “It’s about neighbor working with neighbor, but it’s also about sticking with it.”</p>
    <h2><a href="http://umbcmagazine.wordpress.com/" rel="nofollow external" class="bo">Want more alumni news? Read the full issue of the Winter 2014 <em>UMBC Magazine</em>.</a></h2>
    </div>
]]>
</Body>
<Summary>From an early age, Sherece West-Scantlebury ’07, Ph.D., public policy recalls being preoccupied by a single question: Why is this community the way it is?   It was a question that first took root...</Summary>
<Website>https://umbc.edu/stories/changing-communities-sherece-west-scantlebury-07-ph-d-public-policy/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/122752/guest@my.umbc.edu/7fff91305ff015b013149853ae982a51/api/pixel</TrackingUrl>
<Tag>alumni</Tag>
<Tag>carrier-foundation</Tag>
<Tag>louisiana-recovery-foundation</Tag>
<Tag>sherece-west-scantlebury</Tag>
<Tag>umbc</Tag>
<Tag>umbc-magazine</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Group token="umbc-news-magazine">UMBC News &amp;amp; Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news-magazine</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/original.png?1748556657</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/large.png?1748556657</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/medium.png?1748556657</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/small.png?1748556657</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxsmall.png?1748556657</AvatarUrl>
<Sponsor>UMBC News &amp; Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 15:28:49 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42415" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42415">
<Title>Women's History Month CWIT Spotlight: Lauren Mazzoli</Title>
<Tagline>Celebrating Women of Character, Courage, and Commitment</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <div><span>March is Women's History Month!</span></div>
    <div><br></div>
    <div>Last year's Women's History Month's national theme was <em>Women Inspiring Innovation Through Imagination: Celebrating Women in Science, Technology, Engineering and Mathematics.</em>  The theme honored generations of women who throughout American history have used their intelligence, imagination, sense of wonder, and tenacity to make extraordinary contributions to the STEM fields. At UMBC we honored last year's theme by partnering with the Center for Women in Technology (CWIT) to feature some of their amazing students participating in technology in the engineering and information technology fields.</div>
    <div><br></div>
    <div>Since last year's spotlights were so meaningful and successful in highlighting the important work of women in STEM fields, we're back at it for year two. This year's national theme is <em>Celebrating Women of Character, Courage, and Commitment.</em> Though there is no specific mention of STEM, it is impossible to deny that acts of courage and commitment from women (and their allies) in STEM occur everyday. So with that, we are honored to bring you the 2nd Annual CWIT Showcase in honor of Women's History Month.</div>
    <div><br></div>
    <div><br></div>
    <div>* * * * * * * * * * * * * * * * * * </div>
    <h4>
    <strong><u><br></u></strong><strong><u>Lauren Mazzoli, Math/Computer Science Major</u></strong>
    </h4>
    <div><br></div>
    <div><img src="http://i61.tinypic.com/rsfuqh.jpg" style="max-width: 100%; height: auto;"></div>
    <div><br></div>
    <div><strong>Describe what sparked your interest STEM and the journey to choosing your major.</strong></div>
    <div>Throughout high school I always enjoyed math, but I never had any experience with computer science until my first semester of college. My first computer science professor was very enthusiastic about the material, which made me more invested in the course. After that first semester, I knew that I wanted to double major in Mathematics and Computer Science because I loved solving complex problems with the computer. </div>
    <div><br></div>
    <div><strong>Tell us about an internship, research experience or project that you are proud of. </strong></div>
    <div>I am currently working for DoIT at UMBC as an IT Security Technician. I am currently working with my boss, Andy Johnston, on digital forensics. He has been showing me new tools that I can use for digital forensics, and we are both discovering new tools as well. I help write scripts that maintain the campus logs, I analyze the logs, I track and identify infected computers on campus, and I collect infected computers on campus for detecting what information was compromised. </div>
    <div><br></div>
    <div><strong>Who are your role models int he engineering or IT field?</strong></div>
    <div>One of my role models is Dr. Hrabowski. He has always encouraged me to pursue my education in Mathematics and Computer Science, and has been a great mentor to me. What I admire most about him, is how dedicated he is towards improving education in the STEM field. I really appreciate his involvement in programs that encourage minorities to major in STEM fields. </div>
    <div><br></div>
    <div><strong>In your experience, how has being a woman in engineering or IT demanded character, courage or commitment?</strong></div>
    <div>Being a woman in IT has allowed me to become an example to younger woman that all women can be successful in the STEM field. I am very committed to changing the male dominated field into a gender neutral field. It is important for every young woman to receive a strong education in STEM courses, and to not be dismissed because of their gender.</div>
    <div><br></div>
    <div><br></div>
    <div><em>The Center for Women In Technology (CWIT) is dedicated to increasing the representation of women in the creation of technology in the engineering and information technology fields. CWIT efforts begin with nurturing a strong group of Scholars, grow to building community resources for other women in these majors, extend to fostering a healthy gender climate and ITE pedagogy in College of Engineering and Information Technology (COEIT) departments, and finally expand into outreach efforts to increase interest in technical careers. A successful program for female-friendly engineering and information technology education at UMBC will help make UMBC a destination for women (and men) interested in technical careers and serve as a national model for other universities.</em></div>
    <div><em>Learn more about the CWIT community at <a href="http://www.cwit.umbc.edu/">http://www.cwit.umbc.edu/</a></em></div>
    <div><br></div>
    <div><br></div>
    <div><strong>For more information about Women’s History events and happenings, visit: <a href="http://my.umbc.edu/groups/womenscenter/news/41639">http://my.umbc.edu/groups/womenscenter/news/41639</a></strong></div>
    </div>
]]>
</Body>
<Summary>March is Women's History Month!     Last year's Women's History Month's national theme was Women Inspiring Innovation Through Imagination: Celebrating Women in Science, Technology, Engineering and...</Summary>
<Website>http://my.umbc.edu/groups/womenscenter/news/41639</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42415/guest@my.umbc.edu/1fb68a3b8ce61fe46c875cab83c3cc07/api/pixel</TrackingUrl>
<Group token="womenscenter">Women's, Gender, &amp;amp; Equity Center</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/womenscenter</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/xsmall.png?1750974263</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/original.png?1750974263</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/xxlarge.png?1750974263</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/xlarge.png?1750974263</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/large.png?1750974263</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/medium.png?1750974263</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/small.png?1750974263</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/xsmall.png?1750974263</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/125/78272a4842689b30dbf74672182b78f8/xxsmall.png?1750974263</AvatarUrl>
<Sponsor>Women's Center</Sponsor>
<PawCount>31</PawCount>
<CommentCount>7</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 15:05:40 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42420" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42420">
<Title>Support Future Meyerhoff Scholars</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><em><strong>Editor’s note:</strong> One of the many ways people can support the university is through crowdfunding a variety of projects. Periodically we’ll feature campus initiatives that need your help. This week we’re pleased to share information about the LaMont Toliver Alumni Memorial Scholarship.<br>
    </em></p>
    <p><a href="http://umbcgiving.files.wordpress.com/2014/03/lamont-toliver.jpg" rel="nofollow external" class="bo"><img alt="lamont toliver" src="http://umbcgiving.files.wordpress.com/2014/03/lamont-toliver.jpg?w=300&amp;h=298" width="300" height="298" style="max-width: 100%; height: auto;"></a>LaMont Toliver was a source of strength and inspiration for much of the UMBC community during his 22 years here. His passing in February 2012 was a huge loss for the entire university.</p>
    <p>To celebrate his life and incredible work, graduates of the Meyerhoff Scholars Program established the LaMont Toliver Alumni Memorial Scholarship Fund<em>,</em> which will support scholarships for Meyerhoff students for generations to come.</p>
    <p><a href="https://umbc.givecorps.com/projects/411-umbc-scholarships-lamont-toliver-alumni-memorial-scholarship" rel="nofollow external" class="bo">A gift to the LaMont Toliver Alumni Memorial Scholarship Fund</a>helps build a meaningful and lasting memorial to LaMont and his life’s work at UMBC. It will also help future Meyerhoff scholars for years to come.</p>
    <h2><a href="https://umbc.givecorps.com/projects/411-umbc-scholarships-lamont-toliver-alumni-memorial-scholarship" rel="nofollow external" class="bo">Make your gift today!</a></h2>
    <br>   </div>
]]>
</Body>
<Summary>Editor’s note: One of the many ways people can support the university is through crowdfunding a variety of projects. Periodically we’ll feature campus initiatives that need your help. This week...</Summary>
<Website>http://umbcgiving.wordpress.com/2014/03/13/support-future-meyerhoff-scholars/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42420/guest@my.umbc.edu/9f943bb8ce06ab37f1b464624ac97723/api/pixel</TrackingUrl>
<Tag>givecorps</Tag>
<Tag>lamont-toliver</Tag>
<Tag>lamont-toliver-alumni-memorial-scholarship</Tag>
<Tag>meyerhoff</Tag>
<Tag>meyerhoff-scholars</Tag>
<Tag>meyerhoff-scholars-program</Tag>
<Tag>umbc</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Group token="retired-548">UMBC Giving</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-548</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/images/avatars/group/11/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/images/avatars/group/11/original.png?1787842820</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/images/avatars/group/11/xxlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/images/avatars/group/11/xlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/images/avatars/group/11/large.png?1787842820</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/images/avatars/group/11/medium.png?1787842820</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/images/avatars/group/11/small.png?1787842820</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/images/avatars/group/11/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/images/avatars/group/11/xxsmall.png?1787842820</AvatarUrl>
<Sponsor>UMBC Giving</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 15:05:07 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42418" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42418">
<Title>Bits Blog: Flight 370 and the Terror of Being Off the Grid</Title>
<Body>
<![CDATA[
    <div class="html-content">The disappearance of Malaysia Airlines Flight 370 suggests that even in our hyperconnected age, people can still vanish from the earth, apparently without a trace.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Fflight-370-and-the-terror-of-being-off-the-grid%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Flight+370+and+the+Terror+of+Being+Off+the+Grid" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Fflight-370-and-the-terror-of-being-off-the-grid%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Flight+370+and+the+Terror+of+Being+Off+the+Grid" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Fflight-370-and-the-terror-of-being-off-the-grid%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Flight+370+and+the+Terror+of+Being+Off+the+Grid" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Fflight-370-and-the-terror-of-being-off-the-grid%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Flight+370+and+the+Terror+of+Being+Off+the+Grid" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F13%2Fflight-370-and-the-terror-of-being-off-the-grid%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Flight+370+and+the+Terror+of+Being+Off+the+Grid" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/sc/39/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/sc/39/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/sc/39/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/sc/39/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/sc/39/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/sc/39/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801165757/u/0/f/640387/c/34625/s/38267973/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The disappearance of Malaysia Airlines Flight 370 suggests that even in our hyperconnected age, people can still vanish from the earth, apparently without a trace.      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38267973/sc/39/l/0Lbits0Bblogs0Bnytimes0N0C20A140C0A30C130Cflight0E370A0Eand0Ethe0Eterror0Eof0Ebeing0Eoff0Ethe0Egrid0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42418/guest@my.umbc.edu/5fe4a27edb841da8e102a7c52dc3a51f/api/pixel</TrackingUrl>
<Tag>aviation-accidents-and-safety</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>malaysia-airlines</Tag>
<Tag>new</Tag>
<Tag>state-of-the-art</Tag>
<Tag>surveillance-of-citizens-by-government</Tag>
<Tag>technology</Tag>
<Tag>text-messaging</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 15:02:51 -0400</PostedAt>
<EditAt>Fri, 14 Mar 2014 13:32:37 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="42410" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42410">
<Title>Interested in a paid internship with the Federal Government?</Title>
<Tagline>Act now for a great opportunity this summer!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">The Federal job search site, <a href="http://usajobs.gov" rel="nofollow external" class="bo">USAJobs.gov</a>, currently has a number of great listings for paid, summer internships for ALL MAJORS.<div><br></div>
    <div>But you have to act fast!  Because these jobs are in such high demand, the application windows are tight and many will be closing at 11:59 pm on Friday, March 14.</div>
    <div><br></div>
    <div>To search for internships in Maryland, simply visit: <a href="https://www.usajobs.gov/Search?Keyword=pathways&amp;Location=maryland&amp;search=Search&amp;AutoCompleteSelected=False" rel="nofollow external" class="bo">https://www.usajobs.gov/Search?Keyword=pathways&amp;Location=maryland&amp;search=Search&amp;AutoCompleteSelected=False</a>
    </div>
    <div>Other locations may be searched as well using the built-in search functions.</div>
    <div><br></div>
    <div>Read positions descriptions carefully and follow instructions closely for the best consideration.</div>
    <div><br></div>
    <div>Don't delay - apply today!</div>
    <div><br></div>
    </div>
]]>
</Body>
<Summary>The Federal job search site, USAJobs.gov, currently has a number of great listings for paid, summer internships for ALL MAJORS.    But you have to act fast!  Because these jobs are in such high...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42410/guest@my.umbc.edu/ad7441b006000959533f5c26d2fa904b/api/pixel</TrackingUrl>
<Group token="careers">Career Center</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/careers</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xsmall.png?1411655278</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/original.jpg?1411655278</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xxlarge.png?1411655278</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xlarge.png?1411655278</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/large.png?1411655278</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/medium.png?1411655278</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/small.png?1411655278</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xsmall.png?1411655278</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xxsmall.png?1411655278</AvatarUrl>
<Sponsor>Career Services Center</Sponsor>
<PawCount>1</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 14:58:39 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42414" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42414">
<Title>Worship Night Cancelled</Title>
<Body>
<![CDATA[
    <div class="html-content">Hey everyone, Unfortunately because of campus closure and water resources, we have to cancel the Worship night for tonight :( But! We hope we can plan another one of these events in the future! Stay safe and enjoy your spring … <a href="http://umbciv.wordpress.com/2014/03/13/worship-night-cancelled/" rel="nofollow external" class="bo">Continue reading <span>→</span></a>
    </div>
]]>
</Body>
<Summary>Hey everyone, Unfortunately because of campus closure and water resources, we have to cancel the Worship night for tonight :( But! We hope we can plan another one of these events in the future!...</Summary>
<Website>http://umbciv.wordpress.com/2014/03/13/worship-night-cancelled/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42414/guest@my.umbc.edu/a9fb938194d83be3fcd31796eb9fa618/api/pixel</TrackingUrl>
<Tag>posts</Tag>
<Group token="iv">Intervarsity Christian Fellowship</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/iv</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/xsmall.png?1567536344</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/original.png?1567536344</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/xxlarge.png?1567536344</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/xlarge.png?1567536344</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/large.png?1567536344</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/medium.png?1567536344</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/small.png?1567536344</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/xsmall.png?1567536344</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/094/dd82d58268453ca1c56996aa87e97fca/xxsmall.png?1567536344</AvatarUrl>
<Sponsor>InterVarsity Christian Fellowship</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 14:37:43 -0400</PostedAt>
<EditAt>Thu, 13 Mar 2014 14:37:43 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42411" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42411">
<Title>Q&amp;A: Locking Up Amazon Deliveries</Title>
<Body>
<![CDATA[
    <div class="html-content">Plus, reconciling your Picasa photos with Google Plus.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F14%2Ftechnology%2Fpersonaltech%2Flocking-up-amazon-deliveries.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Locking+Up+Amazon+Deliveries" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F14%2Ftechnology%2Fpersonaltech%2Flocking-up-amazon-deliveries.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Locking+Up+Amazon+Deliveries" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F14%2Ftechnology%2Fpersonaltech%2Flocking-up-amazon-deliveries.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Locking+Up+Amazon+Deliveries" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F14%2Ftechnology%2Fpersonaltech%2Flocking-up-amazon-deliveries.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Locking+Up+Amazon+Deliveries" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F14%2Ftechnology%2Fpersonaltech%2Flocking-up-amazon-deliveries.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Locking+Up+Amazon+Deliveries" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/sc/21/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/sc/21/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/sc/21/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/sc/21/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/sc/21/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/sc/21/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801357971/u/0/f/640387/c/34625/s/38262e42/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Plus, reconciling your Picasa photos with Google Plus.      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38262e42/sc/21/l/0L0Snytimes0N0C20A140C0A30C140Ctechnology0Cpersonaltech0Clocking0Eup0Eamazon0Edeliveries0Bhtml0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42411/guest@my.umbc.edu/24bd3b14d87e938daf99f9269963fe40/api/pixel</TrackingUrl>
<Tag>amazon-com-inc-amzn-nasdaq</Tag>
<Tag>delivery-services</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>new</Tag>
<Tag>technology</Tag>
<Tag>united-parcel-service-inc-ups-nyse</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 13 Mar 2014 14:27:02 -0400</PostedAt>
</NewsItem>

</News>
