<?xml version="1.0"?>
<News hasArchived="true" page="7869" pageCount="10799" pageSize="10" timestamp="Wed, 09 Sep 2026 01:04:06 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=7869&amp;range=2">
<NewsItem contentIssues="true" id="41085" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41085">
<Title>Q&amp;A: Picking a Flavor of Linux</Title>
<Body>
<![CDATA[
    <div class="html-content">Plus, opting out of Google Plus auto backup.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F02%2F07%2Ftechnology%2Fpersonaltech%2Fpicking-a-flavor-of-linux.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Picking+a+Flavor+of+Linux" 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%2F02%2F07%2Ftechnology%2Fpersonaltech%2Fpicking-a-flavor-of-linux.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Picking+a+Flavor+of+Linux" 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%2F02%2F07%2Ftechnology%2Fpersonaltech%2Fpicking-a-flavor-of-linux.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Picking+a+Flavor+of+Linux" 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%2F02%2F07%2Ftechnology%2Fpersonaltech%2Fpicking-a-flavor-of-linux.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Picking+a+Flavor+of+Linux" 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%2F02%2F07%2Ftechnology%2Fpersonaltech%2Fpicking-a-flavor-of-linux.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Picking+a+Flavor+of+Linux" 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>
    </div>
]]>
</Body>
<Summary>Plus, opting out of Google Plus auto backup.      </Summary>
<Website>http://www.nytimes.com/2014/02/07/technology/personaltech/picking-a-flavor-of-linux.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41085/guest@my.umbc.edu/84ff9f30f77160f734cd652105bfd4b6/api/pixel</TrackingUrl>
<Tag>canonical-ltd</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>linux-operating-system</Tag>
<Tag>new</Tag>
<Tag>tablet-computers</Tag>
<Tag>technology</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, 06 Feb 2014 08:23:13 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="41069" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41069">
<Title>Bits: When Identity Theft Hits Home</Title>
<Body>
<![CDATA[
    <div class="html-content">What happens when your credit card information is among the millions stolen from a major retailer? Nothing good.<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%2F02%2F06%2Fwhen-identity-theft-hits-home%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+When+Identity+Theft+Hits+Home" 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%2F02%2F06%2Fwhen-identity-theft-hits-home%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+When+Identity+Theft+Hits+Home" 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%2F02%2F06%2Fwhen-identity-theft-hits-home%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+When+Identity+Theft+Hits+Home" 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%2F02%2F06%2Fwhen-identity-theft-hits-home%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+When+Identity+Theft+Hits+Home" 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%2F02%2F06%2Fwhen-identity-theft-hits-home%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+When+Identity+Theft+Hits+Home" 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/187557476129/u/0/f/640387/c/34625/s/36c939f4/sc/36/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/187557476129/u/0/f/640387/c/34625/s/36c939f4/sc/36/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/187557476129/u/0/f/640387/c/34625/s/36c939f4/sc/36/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/187557476129/u/0/f/640387/c/34625/s/36c939f4/sc/36/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/187557476129/u/0/f/640387/c/34625/s/36c939f4/sc/36/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/187557476129/u/0/f/640387/c/34625/s/36c939f4/sc/36/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/187557476129/u/0/f/640387/c/34625/s/36c939f4/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/187557476129/u/0/f/640387/c/34625/s/36c939f4/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>What happens when your credit card information is among the millions stolen from a major retailer? Nothing good.      </Summary>
<Website>http://bits.blogs.nytimes.com/2014/02/06/when-identity-theft-hits-home/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41069/guest@my.umbc.edu/2a37b954dff94b46890602651d9f4e57/api/pixel</TrackingUrl>
<Tag>computer-security</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>credit-cards</Tag>
<Tag>cyberattacks-and-hackers</Tag>
<Tag>debit-cards</Tag>
<Tag>hotels-and-travel-lodgings</Tag>
<Tag>identity-theft</Tag>
<Tag>neiman-marcus-group</Tag>
<Tag>new</Tag>
<Tag>security</Tag>
<Tag>shopping-and-retail</Tag>
<Tag>target-corporation</Tag>
<Tag>target-corporation-tgt-nyse</Tag>
<Tag>technology</Tag>
<Tag>united-states</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, 06 Feb 2014 08:03:31 -0500</PostedAt>
<EditAt>Thu, 06 Feb 2014 11:52:30 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="41070" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41070">
<Title>DealBook: Glassdoor, a Jobs Website, Hires a Finance Chief</Title>
<Body>
<![CDATA[
    <div class="html-content">Glassdoor is set to announce that it has hired Adam C. Spiegel as chief financial officer, potentially setting up an initial public offering of the company down the line.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2014%2F02%2F06%2Fglassdoor-a-jobs-website-hires-a-finance-chief%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+Glassdoor%2C+a+Jobs+Website%2C+Hires+a+Finance+Chief" 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%2Fdealbook.nytimes.com%2F2014%2F02%2F06%2Fglassdoor-a-jobs-website-hires-a-finance-chief%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+Glassdoor%2C+a+Jobs+Website%2C+Hires+a+Finance+Chief" 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%2Fdealbook.nytimes.com%2F2014%2F02%2F06%2Fglassdoor-a-jobs-website-hires-a-finance-chief%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+Glassdoor%2C+a+Jobs+Website%2C+Hires+a+Finance+Chief" 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%2Fdealbook.nytimes.com%2F2014%2F02%2F06%2Fglassdoor-a-jobs-website-hires-a-finance-chief%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+Glassdoor%2C+a+Jobs+Website%2C+Hires+a+Finance+Chief" 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%2Fdealbook.nytimes.com%2F2014%2F02%2F06%2Fglassdoor-a-jobs-website-hires-a-finance-chief%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+Glassdoor%2C+a+Jobs+Website%2C+Hires+a+Finance+Chief" 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/186530305337/u/0/f/640387/c/34625/s/36c939ec/sc/25/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530305337/u/0/f/640387/c/34625/s/36c939ec/sc/25/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186530305337/u/0/f/640387/c/34625/s/36c939ec/sc/25/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530305337/u/0/f/640387/c/34625/s/36c939ec/sc/25/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186530305337/u/0/f/640387/c/34625/s/36c939ec/sc/25/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530305337/u/0/f/640387/c/34625/s/36c939ec/sc/25/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/186530305337/u/0/f/640387/c/34625/s/36c939ec/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530305337/u/0/f/640387/c/34625/s/36c939ec/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Glassdoor is set to announce that it has hired Adam C. Spiegel as chief financial officer, potentially setting up an initial public offering of the company down the line.      </Summary>
<Website>http://dealbook.nytimes.com/2014/02/06/glassdoor-a-jobs-website-hires-a-finance-chief/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41070/guest@my.umbc.edu/4de995408fa190af3ce5d3cc00baf77c/api/pixel</TrackingUrl>
<Tag>glassdoor-inc</Tag>
<Tag>initial-public-offerings</Tag>
<Tag>new</Tag>
<Tag>rpx-corporation</Tag>
<Tag>rpx-corporation-rpxc-nasdaq</Tag>
<Tag>technology</Tag>
<Tag>tiger-global-management-llc</Tag>
<Tag>venture-capital</Tag>
<Tag>york</Tag>
<Tag>zynga-inc</Tag>
<Tag>zynga-inc-znga-nasdaq</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, 06 Feb 2014 07:58:48 -0500</PostedAt>
<EditAt>Thu, 06 Feb 2014 10:02:51 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="41068" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41068">
<Title>Applying Transformations To Responsive Web Design</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>To most Web developers, it sounds controversial until you hear the punchline: Last summer, the developers in charge of Google’s Chrome browser floated a <a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/zIg2KC7PyH0" rel="nofollow external" class="bo">proposal</a> that went virtually unnoticed by the technology press, which was to remove support for an established W3C standard that every other browser vendor still supports. The standard in question? Extensible Stylesheet Language Transformations, otherwise known as XSLT.</p>
    <p>In reaction to this news, most Web developers would likely shrug and say “So what?” That’s unfortunate.</p>
    <p>Transformations are a simple yet <strong>powerful technique for separating content and presentation</strong> in Web applications. Yet, outside of enterprise and data-processing circles, transformations have failed to gain popularity through XSLT. As a result, Web developers are liable to think that transformations “don’t apply to me,” even though they work with HTML, a structured format ripe for transformation. Thankfully, new transformation frameworks are on the horizon, including work by the inventor of Sass, that hold the promise of a revival.</p>
    <p>In this article, we will reintroduce transformations and explore their applications to mobile and responsive design. We will not only teach the old dog new tricks, but show that transformations are relevant to everyone who deals with HTML.</p>
    <h3>Separating Content And Presentation</h3>
    <p>A transformation is simply a system that transforms its input into an output according to a set of predefined rules.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-1-transform-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-1-transform-opt.jpg" width="500" height="130" alt="The data flow of a transform" style="max-width: 100%; height: auto;"></a><br>
    <em>The data flow of a transformation. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-1-transform-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>The key thing about transformations isn’t the action they perform but the capability they enable. Transformations create an <strong>abstraction that decouples content and functionality from presentation.</strong> This separation is a design goal of many frameworks, but transformations facilitate it in powerful and unique ways.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-2-separation-of-concerns-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-2-separation-of-concerns-opt.jpg" width="500" height="150" alt="The transformation data flow recast as a separation of concerns" style="max-width: 100%; height: auto;"></a><br>
    <em>The transformation data flow recast as a separation of concerns. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-2-separation-of-concerns-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>A powerful example of this decoupling occurs in <a href="https://github.com/cgrand/enlive" rel="nofollow external" class="bo">Enlive</a>, a transformation and templating system written in Clojure. Most templating engines use a customized markup language to mix HTML with programming constructs such as loops and variables. Take PHP, for example:</p>
    <pre><code>&lt;ul&gt;&#x000A;      &lt;?php foreach ($task_list as $task) { ?&gt; &#x000A;        &lt;li&gt; &lt;?php echo $task ?&gt; &lt;/li&gt;&#x000A;      &lt;?php } ?&gt; &#x000A;    &lt;/ul&gt;&#x000A;    </code></pre>
    <p>By contrast, Enlive templates use the same plain old HTML that you would get from your designer or PSD slicer. For example, a simple <code>hello-world.html</code> Enlive template might look like this:</p>
    <pre><code>&#x000A;    &lt;html&gt;&#x000A;    	&lt;body&gt;&#x000A;    		&lt;h1 id="output"&gt;Lorem Ipsum&lt;/h1&gt;&#x000A;    	&lt;/body&gt;&#x000A;    &lt;/html&gt; &#x000A;    </code></pre>
    <p>Instead of embedding logic in the markup, Clojure code that is associated with the HTML transforms it into output:</p>
    <pre><code>&#x000A;      (deftemplate helloworld &#x000A;        "hello-world.html" &#x000A;        [] &#x000A;        [:h1#output] &#x000A;        (content "Hello World!"))&#x000A;    </code></pre>
    <p>Completely understanding the code above is not important, but you’ll probably recognize the <code>h1#output</code> argument as a CSS selector. In this example, a template named <code>helloworld</code> is being defined, in which the <code>h1#output</code> element’s content is replaced by “Hello World!” When executed, this template would output the following:</p>
    <pre><code>&#x000A;    &lt;html&gt;&#x000A;    	&lt;body&gt;&#x000A;    		&lt;h1 id="output"&gt;Hello World&lt;/h1&gt;&#x000A;    	&lt;/body&gt;&#x000A;    &lt;/html&gt;&#x000A;    </code></pre>
    <p>For more on Enlive, I recommend David Nolen’s <a href="https://github.com/swannodette/enlive-tutorial" rel="nofollow external" class="bo">excellent tutorial</a>. But the key point is that content and presentation have been decoupled. Website changes, A/B tests and even a redesign could be as easy as getting new HTML from your designer and dropping it in. In addition, the designer doesn’t need to know anything about the templating language and may use HTML classes and IDs, concepts that they already know.</p>
    <p>While you don’t need to build a website in this way, the situation is analogous to building a Web page without a style sheet. True, you could design a page purely with inline styles (that is, using only the <code>style</code> attribute), and novice developers often code this way out of expediency. But experienced developers know that <strong>a style sheet improves workflow and productivity at scale</strong>.</p>
    <p>Similarly, by separating content and presentation, you will unlock more productivity and agility for your team. In effect, transformations truly separate the front end from the back end and create a new workspace for the visual design team to operate independently of the rest of the system. In an industry where even simple things like the <a href="http://blog.hubspot.com/blog/tabid/6307/bid/20566/The-Button-Color-A-B-Test-Red-Beats-Green.aspx" rel="nofollow external" class="bo">color of a button can affect conversion rates</a>, enabling your visual design team to iterate more quickly and continually could deliver tremendous value to the bottom line.</p>
    <h3>Responsive Retrofitting</h3>
    <p>Transformations are not just useful in a templating system. This decoupling of content and presentation can also be applied to an existing website, enabling developers to apply a new presentation regardless of how the original website was built. This combination of <strong>separating content and presentation and its applicability to existing websites</strong> is what makes transformations so powerful and useful to a broader audience than currently use them. I’ll illustrate this by responsively retrofitting an existing website using a transformation technology that’s in every browser today (at least for now), XSLT.</p>
    <p><a href="http://en.wikipedia.org/wiki/XSLT" rel="nofollow external" class="bo">XSLT</a> was introduced in the late 1990s as a language for transforming XML and XHTML documents. During the ascendency of XML, XSLT was seen as a solution for separating content and presentation in Web applications built on XML data formats. The W3C recommended XSLT as a standard, and almost every major browser incorporated support for some form of the language.</p>
    <p>Now that Google’s Chrome and Blink team has <a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/zIg2KC7PyH0%5B51-75-false%5D" rel="nofollow external" class="bo">proposed</a> dropping support for XSLT, some might be concerned about using it long term. However, at the time of writing, XSLT is supported in all major browsers, including Chrome and the latest versions of the iPhone and Android browsers. In addition, XSLT may be used both server- and client-side. Server-side implementation works regardless of browser support, and open-source and commercial XSLT engines are available. Finally, JavaScript implementations of XSLT, such as <a href="http://www.saxonica.com/ce/index.xml" rel="nofollow external" class="bo">Saxon-CE</a>, could also fill the gap client-side if Google does indeed decide to drop support for XSLT.</p>
    <p>Responsive retrofitting is the process of grafting responsive Web design techniques onto an existing website that was not built to be responsive. Although a lot of resources and tutorials on building a responsive website from scratch are out there, retrofitting has curiously received far less attention, despite its enormous value. A lot more old websites exist than new ones, and significant capital and effort have been invested in them.</p>
    <p>A long responsive rebuild might not meet the budget or time-to-market requirements for many of these websites. Transformations provide <strong>an effective way to make a website responsive without the expense of rebuilding it</strong>.</p>
    <p>The natural first step would be to retrofit the website purely in CSS. <a href="https://github.com/sparkbox/Responsive-Retrofitting" rel="nofollow external" class="bo">Ben Callahan’s bookmarklet</a> for example, inserts a custom CSS file to make a given website more responsive. However, adding CSS gets you only so far. Eventually, the layout, nesting and order of elements in the original HTML will restrict your design options. <a href="http://www.xmlbook.info/9-XSL-XSLT.phtml" rel="nofollow external" class="bo">John Shirrel describes this</a> as an inherent flaw of CSS:</p>
    <blockquote>
    <p>“You have discovered the weakness of using CSS… CSS does not allow you to transform your document. Elements must remain in the order they appear… There is no real decision-making power in CSS.”</p>
    </blockquote>
    <p>Fundamentally, this process breaks down because CSS and HTML do not purely separate presentation and content. Whenever you’ve found yourself needing to wrap an element in an extra <code>div</code> or <code>span</code> to make the design work, you’ve encountered that breakdown. This is where transformations come in, restoring the abstraction (surprisingly) by enabling us to manipulate the document.</p>
    <p>To demonstrate the technique, I’ve created an <a href="https://s3-us-west-1.amazonaws.com/smashing/hacker-news-xhtml-xslt-stylesheet.xml" rel="nofollow external" class="bo">sample retrofit</a> of Hacker News’ home page, by making the top navigation responsive, using ZURB’s <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation</a> framework. Naturally, additional design changes beyond these would be required, but it should serve to illustrate the process. Why Hacker News? First, using code from a real website helps to demonstrate the power of the technique. Secondly, the HTML on this website is Goldilocks-sized: not so small that it’s a toy, but not so big as to make our example complicated.</p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-3-hackernews-500-opt.png" width="270" height="480" alt="Hacker News' HTML, with Foundation's responsive top bar added by transformations" style="max-width: 100%; height: auto;"><br>
    <em>Hacker News’ HTML, with Foundation’s responsive top bar added by transformations.</em></p>
    <p>The most relevant file in this retrofit is the XSL style sheet <code>transformer.xsl</code>, which you can <a href="https://s3-us-west-1.amazonaws.com/smashing/transformer.xsl" rel="nofollow external" class="bo">download directly</a>. In the paragraphs below, we’ll highlight some key points about the code in <code>transformer.xsl</code>. While a full explanation of XSLT is beyond the scope of this article, a quick crash course should make these explanations more understandable:</p>
    <ul>
    <li>
    <strong>Syntax</strong><br>
    The XSLT programming language is written in a form of XML. For example, an <code>if</code> statement in XSLT would be <code>&lt;xsl:if&gt;&lt;/xsl:if&gt;</code> element.</li>
    <li>
    <strong>Parameters</strong><br>
    Parameters to statements like <code>&lt;xsl:if&gt;</code> are specified in the attributes and child nodes of the element.</li>
    <li>
    <strong>Matching elements</strong><br>
    A common parameter is the <code>match</code> attribute, which selects a collection of nodes. For example, the template specified by the <code>&lt;xsl:template match="body/center"&gt;</code> rule would be applied when the XSLT engine encounters the <code>&lt;center&gt;</code> element that is the child of the <code>&lt;body&gt;</code>.</li>
    <li>
    <strong>Embedding HTML</strong><br>
    Finally, you can embed bare HTML in a style sheet.</li>
    </ul>
    <p>The first thing we need to do is tell the browser to use the rules in <code>transformer.xsl</code>. To do this, we change the document’s <code>Content-Type</code> to <code>text/xml</code> (alternatively, in some browsers, you can simply change the file’s extension from <code>.html</code> to <code>.xml</code>) and add an <code>&lt;?xml-stylesheet&gt;</code> tag like the following to the top of the document:</p>
    <pre><code>&#x000A;    &lt;?xml-stylesheet type="text/xsl" href="transformer.xsl"?&gt;&#x000A;    </code></pre>
    <p>When the browser encounters this tag, it will transform the document according the XSLT rules specified in the style sheet before rendering it. This will execute the transformation in the browser (i.e. client-side). But <strong>transformations can also be performed server-side</strong>. Doing transformations server-side could result in better performance, but we’re doing transformations client-side to make our example accessible to anyone with a browser. For those interested in using this technique client-side, <a href="http://stackoverflow.com/questions/434976/how-do-i-profile-and-optimize-an-xslt" rel="nofollow external" class="bo">optimization techniques and tools</a> are available for writing performant XSLT.</p>
    <p>Another issue is how XSLT handles unspecified elements. By default, XSLT strips out any elements not specified in the transformation rules. This is a design decision that makes sense for XML documents, which typically represent data. However, when transforming a fully formed Web page, you will usually want to change only a relatively small part of the document, and specifying every single element we need to be preserved would be laborious. Thankfully, we can add a construct called the <a href="http://en.wikipedia.org/wiki/Identity_transform" rel="nofollow external" class="bo">identity transform</a> to the <code>transformer.xsl</code> style sheet:</p>
    <pre><code>&#x000A;    &lt;!-- XSLT identity transform allows most of the input to pass through to the output. --&gt;&#x000A;    &lt;xsl:template match="@* | node()"&gt;&#x000A;      &lt;xsl:copy&gt;&#x000A;        &lt;xsl:apply-templates select="@* | node()"/&gt;&#x000A;      &lt;/xsl:copy&gt;&#x000A;    &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>The code above might appear cryptic, but in essence it tells the XSLT engine to copy (i.e. <code>&lt;xsl:copy&gt;</code>) every element node and attribute in the input to the output. Adding this to our style sheet will effectively change the default behavior from stripping out elements to passing them through.</p>
    <p>The next step is to add Foundation to the document. For example, the following code would add Foundation’s CSS (<code>foundation.css</code>) and its dependencies (<code>normalize.css</code> and Modernizr) to the top of the <code>&lt;head&gt;</code>:</p>
    <pre><code>&#x000A;    &lt;!-- Install and initialize Foundation --&gt;&#x000A;    &lt;!-- Note the match attribute targeting the document's head element --&gt;&#x000A;    &lt;xsl:template match="head"&gt;&#x000A;      &lt;link rel="stylesheet" href="normalize.css" /&gt;&#x000A;      &lt;link rel="stylesheet" href="foundation.css" /&gt;    &#x000A;      &lt;script src="custom.modernizr.js"&gt;&lt;/script&gt;&#x000A;      &lt;xsl:apply-templates select="@* | *"/&gt;&#x000A;    &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>Likewise, to add Foundation to the bottom of the <code>&lt;body&gt;</code> element, you would write this:</p>
    <pre><code>&#x000A;    &lt;xsl:template match="body"&gt;&#x000A;      &lt;xsl:apply-templates select="@* | *"/&gt;&#x000A;      &lt;script src="zepto.js"&gt;&lt;/script&gt;&#x000A;      &lt;script src="foundation.min.js"&gt;&lt;/script&gt;&#x000A;      &lt;script&gt;$(document).foundation();&lt;/script&gt;&#x000A;    &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>The chief difference between the two code samples above are the <code>match</code> attribute values (<code>head</code> versus <code>body</code>, indicating the element being targeted) and the placement of the <code>&lt;xsl:apply-templates&gt;</code> tag (which controls whether our new content will appear before or after the existing content).</p>
    <p>Finally, to add the responsive header, we inline new HTML that matches the structure of <a href="http://foundation.zurb.com/docs/components/top-bar.html" rel="nofollow external" class="bo">Foundation’s top bar</a>, and we use the <code>for-each</code> and <code>copy-of</code> commands to populate it with the relevant links from the existing header.</p>
    <pre><code>&#x000A;    &lt;!-- Add our Foundation top bar --&gt;&#x000A;       &lt;xsl:template match="body/center"&gt;&#x000A;         &lt;nav class="top-bar"&gt;&#x000A;    	&#x000A;    	&lt;!-- Boilerplate removed for clarity --&gt;&#x000A;    &#x000A;            &lt;section class="top-bar-section"&gt;&#x000A;              &lt;ul class="right"&gt;&#x000A;    &#x000A;                &lt;!-- Pull the menu links from the old header into our new Foundation header --&gt;&#x000A;                &lt;xsl:for-each select="//span[@class='pagetop']/a"&gt;&#x000A;                  &lt;li&gt;&lt;xsl:copy-of select="." /&gt;&lt;/li&gt;&#x000A;                &lt;/xsl:for-each&gt;&#x000A;    &#x000A;              &lt;/ul&gt;&#x000A;            &lt;/section&gt;&#x000A;         &lt;/nav&gt;&#x000A;         &lt;xsl:apply-templates select="@* | *"/&gt;&#x000A;       &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>There are <strong>some caveats to this approach the reader should be aware of</strong>. First, in this retrofitting example the transformations were performed by the browser but executing the transformations server-side has a couple of advantages. Server-side transformation reduces the burden on mobile devices, which have less processing, power, and memory capabilities than the server.</p>
    <p>The server is also the appropriate place to segment your content to avoid sending unnecessary data over the network and to improve performance. Lastly, you can update the server transformation engine and keep it consistent, instead of dealing with potentially different quirks and levels of XSLT support among browsers. (For example, while XSLT 1.0 is supported in most browsers, XSLT 2.0 is not supported in any, although Saxon-CE is one attempt to add it via JavaScript.)</p>
    <p>Second, XSLT’s roots in functional programming make it inaccessible to the average Web developer. It isn’t simply a matter of learning a new syntax. <strong>The recursive processing model of XSLT requires a new way of thinking</strong> that is unfamiliar to developers of imperative languages, especially developers from a design background who do not have formal training in computer science.</p>
    <p>Finally, a larger challenge is that this technique works only for Web pages that are in XHTML (a flavor of HTML that is XML-compliant), because XSLT can transform only XML, not HTML. According to W3Techs, <a href="http://w3techs.com/technologies/details/ml-xhtml/all/all" rel="nofollow external" class="bo">55% of websites are in XHTML</a>. While this is a majority, it still leaves out a large number of websites. In fact, for this retrofitting example, I worked around this limitation by running Hacker News’ HTML code through an <a href="http://www.it.uc3m.es/jaf/html2xhtml/" rel="nofollow external" class="bo">HTML to XHTML converter</a>.</p>
    <p>In the next section, we’ll explore how the Tritium transformation language was built to address these issues.</p>
    <h3>Responsive Delivery</h3>
    <p>In the example above, we’ve used transformations in the browser to create a responsive experience for an existing website, but conceptually the two approaches overlap. Because responsive Web design is itself about <strong>changing presentation across multiple screen sizes</strong>, transformations can help in that process as well. Instead of simply pairing different CSS styles to the same fixed HTML as in typical responsive design, we can leverage transformations to change the HTML across devices.</p>
    <p>As we explored earlier, the ability to manipulate the HTML (which is missing from CSS alone) not only creates flexibility but actually improves the separation between presentation and content. As a result, maintainability becomes easier because the content is more semantic and less tied to layout. In essence, think of this as moving the breakpoints in responsive design to the transformation layer.</p>
    <p>At <a href="http://www.moovweb.com/?utm_source=d_smashingmag&amp;utm_medium=d_article&amp;utm_campaign=d_smashingmag" rel="nofollow external" class="bo">Moovweb</a>, we’ve leveraged these insights about transformations to implement a technique called responsive delivery, which draws inspiration from responsive Web design, RESS and adaptive design. With responsive delivery, transformations are used to adapt an existing website to different touch points, such as smartphones and tablets.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-5-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-5-responsive-delivery-opt.jpg" width="500" height="200" alt="TThe data flow in this responsive delivery configuration transforms desktop HTML for mobile and tablet end points." style="max-width: 100%; height: auto;"></a><br>
    <em>The data flow in this responsive delivery configuration transforms desktop HTML for mobile and tablet end points. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-5-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>Because the transformed website inherits directly from the desktop, responsive delivery provides the unified content and functionality across touch points that you get with responsive Web design, while the majority of the processing is done server-side. And because <strong>transformations can be used to manipulate the HTML</strong>, we get the benefits that we saw earlier: independent and precise control over the look and feel for each touch point, thanks to an abstraction that separates content from layout.</p>
    <p>In some sense, we can think of responsive delivery as part of a larger trend of <a href="http://www.slideshare.net/yiibu/adaptation-why-responsive-design-actually-begins-on-the-server/" rel="nofollow external" class="bo">weaving adaptive design techniques</a> into responsive design and moving more processing to the server, as in <a href="http://www.lukew.com/ff/entry.asp?1392" rel="nofollow external" class="bo">RESS</a>.</p>
    <p>Also worth noting is that responsive delivery can power desktop websites. In the ideal scenario, the back end would produce semantic but unstyled HTML (affectionately called “wireframe HTML”), and the responsive delivery layer would transform the output for all user touch points.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-6-wireframe-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-6-wireframe-responsive-delivery-opt.jpg" width="500" height="255" alt="The data flow in this responsive delivery configuration uses wireframe HTML as the source data for transformations that output to mobile, tablet, app and desktop end points." style="max-width: 100%; height: auto;"></a><br>
    <em>The data flow in this responsive delivery configuration uses wireframe HTML as the source data for transformations that output to mobile, tablet, app and desktop end points. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-6-wireframe-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>Especially in large organizations, this makes for a powerful decoupling of teams. Back-end engineers can focus purely on functionality (i.e. producing the “wireframe HTML”), and front-end designers can focus on the experience (i.e. transforming the wireframe HTML into a styled Web page). Because the channel between both teams is simply HTML, both teams understand it, and passing through implementation details that are inherited by the front end (such as styles and JavaScript) becomes easy.</p>
    <p><strong>Consider a simple autocomplete widget.</strong> With a responsive delivery approach, the back-end engineer would write the server code to support an autocomplete API and embed the corresponding JavaScript that powers the widget in the wireframe HTML. The designer could then style the widget using CSS and transformations and, if necessary, add JavaScript beyond the stub provided by the back-end engineer. The key point is that HTML is used as a flexible carrier of both content and functionality, as opposed to XML or JSON, which represent only data.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-7-wireframe-example-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-7-wireframe-example-opt.jpg" width="500" height="255" alt="Shown here are the wireframe HTML and the transformed mobile and desktop output used to power Remix Moovweb." style="max-width: 100%; height: auto;"></a><br>
    <em>Shown here are the <a href="http://kirby-production.herokuapp.com/listrophy/desktop-kirby" rel="nofollow external" class="bo">wireframe HTML</a> and the transformed <a href="http://m.remix.moovweb.com/listrophy/desktop-kirby" rel="nofollow external" class="bo">mobile</a> and <a href="http://remix.moovweb.com/listrophy/desktop-kirby" rel="nofollow external" class="bo">desktop</a> output used to power Remix Moovweb. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-7-wireframe-example-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>One way of applying this approach is to use a software-as-a-service platform to process transformations in the cloud. This is the service that we built at Moovweb to power mobile websites and apps for Macy’s and 1-800-Flowers, among others, using our own open-source transformation language, called Tritium. Tritium was designed by Hampton Catlin, inventor of the CSS preprocessor <a href="http://sass-lang.com/" rel="nofollow external" class="bo">Sass</a>. He used his experience to create a transformation language that’s accessible to Web designers and developers. Some features that we felt would be important to the language are the following:</p>
    <ul>
    <li>
    <strong>Familiar syntax</strong><br>
    The syntax should be similar to CSS and jQuery so that it’s more familiar and readable than XSLT’s XML syntax.</li>
    <li>
    <strong>Imperative style</strong><br>
    We wanted to use an imperative programming style, instead of the function and recursive processing model of XSLT.</li>
    <li>
    <strong>Input transparency</strong><br>
    The input is passed directly to the output, so there is no need for a construct like the identity transformation (as is the case with XSLT). Stated differently, the identity transformation is an empty document.</li>
    <li>
    <strong>HTML-compatible</strong><br>
    Tritium was designed to process regular HTML, so it can be used on any website, not just XHTML websites (as with XSLT).</li>
    </ul>
    <p>For a simple “Hello world” example, the following Tritium script will select all of the HTML table elements with an ID of <code>foo</code> and change their <code>width</code> attributes to <code>100%</code>:</p>
    <pre><code>&#x000A;    # Select all HTML nodes that are table elements with ID of foo.&#x000A;    &#x000A;    # The $$() function takes a regular CSS selector&#x000A;    $$("table#foo") {&#x000A;            # change the width attributes to "100%""&#x000A;            attribute("width", "100%")&#x000A;    }&#x000A;    </code></pre>
    <p>The Tritium language has its own <a href="http://tritium.io" rel="nofollow external" class="bo">official website</a>, and Moovweb has scheduled to open-source the language in 2014. Developers interested in contributing are encouraged to check out the public <a href="https://github.com/moovweb/tritium" rel="nofollow external" class="bo">GitHub repository</a> for the core Tritium parser library.</p>
    <p>To compare an example, the analogous Tritium code for adding Foundation to an HTML document, as we did earlier with XSLT, would be this:</p>
    <pre><code>&#x000A;      # Install Foundation in the document&#x000A;      $$("head") {&#x000A;        inject_top('&lt;link rel="stylesheet" href="normalize.css" /&gt;&#x000A;                    &lt;link rel="stylesheet" href="foundation.css" /&gt;&#x000A;                    &lt;script src="custom.modernizr.js"&gt;&lt;/script&gt;')&#x000A;      }&#x000A;      $$("body") {&#x000A;        inject_bottom('&lt;script src="zepto.js"&gt;&lt;/script&gt;&#x000A;                       &lt;script src="foundation.min.js"&gt;&lt;/script&gt;&#x000A;                       &lt;script&gt;$(document).foundation();&lt;/script&gt;')&#x000A;      }   &#x000A;    </code></pre>
    <p>Recall that, in the case of XSLT, the relative placement of new content in the document relies on the judicious placement of the <code>&lt;xsl:apply-templates&gt;</code> tag. However, in the Tritium code just above, the straightforwardly named functions <code>inject_top</code> and <code>inject_bottom</code> are used to insert the boilerplate HTML that installs Foundation.</p>
    <p>In practice, the Moovweb SDK offers a <a href="http://developer.moovweb.com/training/advanced/foundation" rel="nofollow external" class="bo">Foundation scaffold</a> that installs the Foundation boilerplate for you. The scaffold also offers convenience functions to use other components in the Foundation framework. For example, we would use the following functions to create the responsive top bar for Hacker News:</p>
    <pre><code>foundation.tbar() {&#x000A;      foundation.tbar_title("Hacker News", "", "menu-icon")&#x000A;      foundation.tbar_section("right") {&#x000A;        move_here("//span[@class='pagetop']//a"){&#x000A;          wrap("li")&#x000A;        }&#x000A;      }&#x000A;    }&#x000A;    </code></pre>
    <p>As in the XSLT example, the XPath selector <code>"//span[@class='pagetop']//a"</code> is used to select the links for the menu, but the <code>foundation.tbar*()</code> convenience functions make it easier and spare us from having to know the details of the top bar’s HTML format.</p>
    <p>As a final example, a full project implementing the responsive retrofit of Hacker News with Tritium is <a href="https://github.com/moovweb-demos/responsive-retrofit-example" rel="nofollow external" class="bo">available on GitHub</a> for you to run and play with using the Moovweb SDK. Unlike the XSLT version, which uses HTML downloaded from Hacker News (due to the need to run it through an XHTML converter), you can run this project with the live version of the website.</p>
    <h3>Transform Your Thinking</h3>
    <p>Closures once sat obscurely in functional languages until languages such as JavaScript and Ruby brought them into the mainstream. Likewise, transformations have been buried in frameworks that are alien to the average developer, and the popularity of the transformation approach has been married to the fate of XSLT.</p>
    <p>This is unfortunate because transformations are more about a new way of thinking than about any particular technology. They <strong>enable a powerful separation of content and logic from presentation</strong>, and the usefulness of this separation is important in a number of ways. As we move into the post-PC era, transformations provide one part of the answer to serving websites across a wide array of form factors.</p>
    <p>Furthermore, the separation enabled by transformations enhances productivity and accelerates the iteration cycle for visual design teams. Meanwhile, for developers who rearrange DOM objects via JavaScript or jQuery, transformations are a new lens on their current workflow, and they open up new doors to optimizing tasks, such as server-side transformation.</p>
    <p>In an industry that has no shortage of new ideas, sometimes the most useful thing is to connect new concepts with old ones to make them more digestible. That is what this article has tried to do with transformations. Hopefully, we’ve demonstrated the power of thinking in transformations, showing its relevance to anyone who works with HTML.</p>
    <p><em>(al, ea)</em></p>
    <hr>
    <p><small>© Ishan Anand for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2014.</small></p>
    </div>
]]>
</Body>
<Summary>        To most Web developers, it sounds controversial until you hear the punchline: Last summer, the developers in charge of Google’s Chrome browser floated a proposal that went virtually...</Summary>
<Website>http://www.smashingmagazine.com/2014/02/06/applying-xsl-transformations-to-responsive-web-design/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41068/guest@my.umbc.edu/63f7db90ef4e95ef13383989c43a175a/api/pixel</TrackingUrl>
<Tag>content</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mobile</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>techniques</Tag>
<Tag>web</Tag>
<Tag>web-design</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, 06 Feb 2014 05:13:14 -0500</PostedAt>
<EditAt>Thu, 06 Feb 2014 05:13:14 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="41067" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41067">
<Title>Applying XSLT Transforms For Responsive Web Design</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>To most Web developers, it sounds controversial until you hear the punchline: Last summer, the developers in charge of Google’s Chrome browser floated a <a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/zIg2KC7PyH0" rel="nofollow external" class="bo">proposal</a> that went virtually unnoticed by the technology press, which was to remove support for an established W3C standard that every other browser vendor still supports. The standard in question? Extensible Stylesheet Language Transformations, otherwise known as XSLT.</p>
    <p>In reaction to this news, most Web developers would likely shrug and say “So what?” That’s unfortunate.</p>
    <p>Transformations are a simple yet <strong>powerful technique for separating content and presentation</strong> in Web applications. Yet, outside of enterprise and data-processing circles, transformations have failed to gain popularity through XSLT. As a result, Web developers are liable to think that transformations “don’t apply to me,” even though they work with HTML, a structured format ripe for transformation. Thankfully, new transformation frameworks are on the horizon, including work by the inventor of Sass, that hold the promise of a revival.</p>
    <p>In this article, we will reintroduce transformations and explore their applications to mobile and responsive design. We will not only teach the old dog new tricks, but show that transformations are relevant to everyone who deals with HTML.</p>
    <h3>Separating Content And Presentation</h3>
    <p>A transformation is simply a system that transforms its input into an output according to a set of predefined rules.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-1-transform-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-1-transform-opt.jpg" width="500" height="130" alt="The data flow of a transform" style="max-width: 100%; height: auto;"></a><br>
    <em>The data flow of a transformation. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-1-transform-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>The key thing about transformations isn’t the action they perform but the capability they enable. Transformations create an <strong>abstraction that decouples content and functionality from presentation.</strong> This separation is a design goal of many frameworks, but transformations facilitate it in powerful and unique ways.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-2-separation-of-concerns-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-2-separation-of-concerns-opt.jpg" width="500" height="150" alt="The transformation data flow recast as a separation of concerns" style="max-width: 100%; height: auto;"></a><br>
    <em>The transformation data flow recast as a separation of concerns. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-2-separation-of-concerns-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>A powerful example of this decoupling occurs in <a href="https://github.com/cgrand/enlive" rel="nofollow external" class="bo">Enlive</a>, a transformation and templating system written in Clojure. Most templating engines use a customized markup language to mix HTML with programming constructs such as loops and variables. Take PHP, for example:</p>
    <pre><code>&lt;ul&gt;&#x000A;      &lt;?php foreach ($task_list as $task) { ?&gt; &#x000A;        &lt;li&gt; &lt;?php echo $task ?&gt; &lt;/li&gt;&#x000A;      &lt;?php } ?&gt; &#x000A;    &lt;/ul&gt;&#x000A;    </code></pre>
    <p>By contrast, Enlive templates use the same plain old HTML that you would get from your designer or PSD slicer. For example, a simple <code>hello-world.html</code> Enlive template might look like this:</p>
    <pre><code>&#x000A;    &lt;html&gt;&#x000A;    	&lt;body&gt;&#x000A;    		&lt;h1 id="output"&gt;Lorem Ipsum&lt;/h1&gt;&#x000A;    	&lt;/body&gt;&#x000A;    &lt;/html&gt; &#x000A;    </code></pre>
    <p>Instead of embedding logic in the markup, Clojure code that is associated with the HTML transforms it into output:</p>
    <pre><code>&#x000A;      (deftemplate helloworld &#x000A;        "hello-world.html" &#x000A;        [] &#x000A;        [:h1#output] &#x000A;        (content "Hello World!"))&#x000A;    </code></pre>
    <p>Completely understanding the code above is not important, but you’ll probably recognize the <code>h1#output</code> argument as a CSS selector. In this example, a template named <code>helloworld</code> is being defined, in which the <code>h1#output</code> element’s content is replaced by “Hello World!” When executed, this template would output the following:</p>
    <pre><code>&#x000A;    &lt;html&gt;&#x000A;    	&lt;body&gt;&#x000A;    		&lt;h1 id="output"&gt;Hello World&lt;/h1&gt;&#x000A;    	&lt;/body&gt;&#x000A;    &lt;/html&gt;&#x000A;    </code></pre>
    <p>For more on Enlive, I recommend David Nolen’s <a href="https://github.com/swannodette/enlive-tutorial" rel="nofollow external" class="bo">excellent tutorial</a>. But the key point is that content and presentation have been decoupled. Website changes, A/B tests and even a redesign could be as easy as getting new HTML from your designer and dropping it in. In addition, the designer doesn’t need to know anything about the templating language and may use HTML classes and IDs, concepts that they already know.</p>
    <p>While you don’t need to build a website in this way, the situation is analogous to building a Web page without a style sheet. True, you could design a page purely with inline styles (that is, using only the <code>style</code> attribute), and novice developers often code this way out of expediency. But experienced developers know that <strong>a style sheet improves workflow and productivity at scale</strong>.</p>
    <p>Similarly, by separating content and presentation, you will unlock more productivity and agility for your team. In effect, transformations truly separate the front end from the back end and create a new workspace for the visual design team to operate independently of the rest of the system. In an industry where even simple things like the <a href="http://blog.hubspot.com/blog/tabid/6307/bid/20566/The-Button-Color-A-B-Test-Red-Beats-Green.aspx" rel="nofollow external" class="bo">color of a button can affect conversion rates</a>, enabling your visual design team to iterate more quickly and continually could deliver tremendous value to the bottom line.</p>
    <h3>Responsive Retrofitting</h3>
    <p>Transformations are not just useful in a templating system. This decoupling of content and presentation can also be applied to an existing website, enabling developers to apply a new presentation regardless of how the original website was built. This combination of <strong>separating content and presentation and its applicability to existing websites</strong> is what makes transformations so powerful and useful to a broader audience than currently use them. I’ll illustrate this by responsively retrofitting an existing website using a transformation technology that’s in every browser today (at least for now), XSLT.</p>
    <p><a href="http://en.wikipedia.org/wiki/XSLT" rel="nofollow external" class="bo">XSLT</a> was introduced in the late 1990s as a language for transforming XML and XHTML documents. During the ascendency of XML, XSLT was seen as a solution for separating content and presentation in Web applications built on XML data formats. The W3C recommended XSLT as a standard, and almost every major browser incorporated support for some form of the language.</p>
    <p>Now that Google’s Chrome and Blink team has <a href="https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/zIg2KC7PyH0%5B51-75-false%5D" rel="nofollow external" class="bo">proposed</a> dropping support for XSLT, some might be concerned about using it long term. However, at the time of writing, XSLT is supported in all major browsers, including Chrome and the latest versions of the iPhone and Android browsers. In addition, XSLT may be used both server- and client-side. Server-side implementation works regardless of browser support, and open-source and commercial XSLT engines are available. Finally, JavaScript implementations of XSLT, such as <a href="http://www.saxonica.com/ce/index.xml" rel="nofollow external" class="bo">Saxon-CE</a>, could also fill the gap client-side if Google does indeed decide to drop support for XSLT.</p>
    <p>Responsive retrofitting is the process of grafting responsive Web design techniques onto an existing website that was not built to be responsive. Although a lot of resources and tutorials on building a responsive website from scratch are out there, retrofitting has curiously received far less attention, despite its enormous value. A lot more old websites exist than new ones, and significant capital and effort have been invested in them.</p>
    <p>A long responsive rebuild might not meet the budget or time-to-market requirements for many of these websites. Transformations provide <strong>an effective way to make a website responsive without the expense of rebuilding it</strong>.</p>
    <p>The natural first step would be to retrofit the website purely in CSS. <a href="https://github.com/sparkbox/Responsive-Retrofitting" rel="nofollow external" class="bo">Ben Callahan’s bookmarklet</a> for example, inserts a custom CSS file to make a given website more responsive. However, adding CSS gets you only so far. Eventually, the layout, nesting and order of elements in the original HTML will restrict your design options. <a href="http://www.xmlbook.info/9-XSL-XSLT.phtml" rel="nofollow external" class="bo">John Shirrel describes this</a> as an inherent flaw of CSS:</p>
    <blockquote>
    <p>“You have discovered the weakness of using CSS… CSS does not allow you to transform your document. Elements must remain in the order they appear… There is no real decision-making power in CSS.”</p>
    </blockquote>
    <p>Fundamentally, this process breaks down because CSS and HTML do not purely separate presentation and content. Whenever you’ve found yourself needing to wrap an element in an extra <code>div</code> or <code>span</code> to make the design work, you’ve encountered that breakdown. This is where transformations come in, restoring the abstraction (surprisingly) by enabling us to manipulate the document.</p>
    <p>To demonstrate the technique, I’ve created an <a href="https://s3-us-west-1.amazonaws.com/smashing/hacker-news-xhtml-xslt-stylesheet.xml" rel="nofollow external" class="bo">sample retrofit</a> of Hacker News’ home page, by making the top navigation responsive, using ZURB’s <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation</a> framework. Naturally, additional design changes beyond these would be required, but it should serve to illustrate the process. Why Hacker News? First, using code from a real website helps to demonstrate the power of the technique. Secondly, the HTML on this website is Goldilocks-sized: not so small that it’s a toy, but not so big as to make our example complicated.</p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-3-hackernews-500-opt.png" width="270" height="480" alt="Hacker News' HTML, with Foundation's responsive top bar added by transformations" style="max-width: 100%; height: auto;"><br>
    <em>Hacker News’ HTML, with Foundation’s responsive top bar added by transformations.</em></p>
    <p>The most relevant file in this retrofit is the XSL style sheet <code>transformer.xsl</code>, which you can <a href="https://s3-us-west-1.amazonaws.com/smashing/transformer.xsl" rel="nofollow external" class="bo">download directly</a>. In the paragraphs below, we’ll highlight some key points about the code in <code>transformer.xsl</code>. While a full explanation of XSLT is beyond the scope of this article, a quick crash course should make these explanations more understandable:</p>
    <ul>
    <li>
    <strong>Syntax</strong><br>
    The XSLT programming language is written in a form of XML. For example, an <code>if</code> statement in XSLT would be <code>&lt;xsl:if&gt;&lt;/xsl:if&gt;</code> element.</li>
    <li>
    <strong>Parameters</strong><br>
    Parameters to statements like <code>&lt;xsl:if&gt;</code> are specified in the attributes and child nodes of the element.</li>
    <li>
    <strong>Matching elements</strong><br>
    A common parameter is the <code>match</code> attribute, which selects a collection of nodes. For example, the template specified by the <code>&lt;xsl:template match="body/center"&gt;</code> rule would be applied when the XSLT engine encounters the <code>&lt;center&gt;</code> element that is the child of the <code>&lt;body&gt;</code>.</li>
    <li>
    <strong>Embedding HTML</strong><br>
    Finally, you can embed bare HTML in a style sheet.</li>
    </ul>
    <p>The first thing we need to do is tell the browser to use the rules in <code>transformer.xsl</code>. To do this, we change the document’s <code>Content-Type</code> to <code>text/xml</code> (alternatively, in some browsers, you can simply change the file’s extension from <code>.html</code> to <code>.xml</code>) and add an <code>&lt;?xml-stylesheet&gt;</code> tag like the following to the top of the document:</p>
    <pre><code>&#x000A;    &lt;?xml-stylesheet type="text/xsl" href="transformer.xsl"?&gt;&#x000A;    </code></pre>
    <p>When the browser encounters this tag, it will transform the document according the XSLT rules specified in the style sheet before rendering it. This will execute the transformation in the browser (i.e. client-side). But <strong>transformations can also be performed server-side</strong>. Doing transformations server-side could result in better performance, but we’re doing transformations client-side to make our example accessible to anyone with a browser. For those interested in using this technique client-side, <a href="http://stackoverflow.com/questions/434976/how-do-i-profile-and-optimize-an-xslt" rel="nofollow external" class="bo">optimization techniques and tools</a> are available for writing performant XSLT.</p>
    <p>Another issue is how XSLT handles unspecified elements. By default, XSLT strips out any elements not specified in the transformation rules. This is a design decision that makes sense for XML documents, which typically represent data. However, when transforming a fully formed Web page, you will usually want to change only a relatively small part of the document, and specifying every single element we need to be preserved would be laborious. Thankfully, we can add a construct called the <a href="http://en.wikipedia.org/wiki/Identity_transform" rel="nofollow external" class="bo">identity transform</a> to the <code>transformer.xsl</code> style sheet:</p>
    <pre><code>&#x000A;    &lt;!-- XSLT identity transform allows most of the input to pass through to the output. --&gt;&#x000A;    &lt;xsl:template match="@* | node()"&gt;&#x000A;      &lt;xsl:copy&gt;&#x000A;        &lt;xsl:apply-templates select="@* | node()"/&gt;&#x000A;      &lt;/xsl:copy&gt;&#x000A;    &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>The code above might appear cryptic, but in essence it tells the XSLT engine to copy (i.e. <code>&lt;xsl:copy&gt;</code>) every element node and attribute in the input to the output. Adding this to our style sheet will effectively change the default behavior from stripping out elements to passing them through.</p>
    <p>The next step is to add Foundation to the document. For example, the following code would add Foundation’s CSS (<code>foundation.css</code>) and its dependencies (<code>normalize.css</code> and Modernizr) to the top of the <code>&lt;head&gt;</code>:</p>
    <pre><code>&#x000A;    &lt;!-- Install and initialize Foundation --&gt;&#x000A;    &lt;!-- Note the match attribute targeting the document's head element --&gt;&#x000A;    &lt;xsl:template match="head"&gt;&#x000A;      &lt;link rel="stylesheet" href="normalize.css" /&gt;&#x000A;      &lt;link rel="stylesheet" href="foundation.css" /&gt;    &#x000A;      &lt;script src="custom.modernizr.js"&gt;&lt;/script&gt;&#x000A;      &lt;xsl:apply-templates select="@* | *"/&gt;&#x000A;    &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>Likewise, to add Foundation to the bottom of the <code>&lt;body&gt;</code> element, you would write this:</p>
    <pre><code>&#x000A;    &lt;xsl:template match="body"&gt;&#x000A;      &lt;xsl:apply-templates select="@* | *"/&gt;&#x000A;      &lt;script src="zepto.js"&gt;&lt;/script&gt;&#x000A;      &lt;script src="foundation.min.js"&gt;&lt;/script&gt;&#x000A;      &lt;script&gt;$(document).foundation();&lt;/script&gt;&#x000A;    &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>The chief difference between the two code samples above are the <code>match</code> attribute values (<code>head</code> versus <code>body</code>, indicating the element being targeted) and the placement of the <code>&lt;xsl:apply-templates&gt;</code> tag (which controls whether our new content will appear before or after the existing content).</p>
    <p>Finally, to add the responsive header, we inline new HTML that matches the structure of <a href="http://foundation.zurb.com/docs/components/top-bar.html" rel="nofollow external" class="bo">Foundation’s top bar</a>, and we use the <code>for-each</code> and <code>copy-of</code> commands to populate it with the relevant links from the existing header.</p>
    <pre><code>&#x000A;    &lt;!-- Add our Foundation top bar --&gt;&#x000A;       &lt;xsl:template match="body/center"&gt;&#x000A;         &lt;nav class="top-bar"&gt;&#x000A;    	&#x000A;    	&lt;!-- Boilerplate removed for clarity --&gt;&#x000A;    &#x000A;            &lt;section class="top-bar-section"&gt;&#x000A;              &lt;ul class="right"&gt;&#x000A;    &#x000A;                &lt;!-- Pull the menu links from the old header into our new Foundation header --&gt;&#x000A;                &lt;xsl:for-each select="//span[@class='pagetop']/a"&gt;&#x000A;                  &lt;li&gt;&lt;xsl:copy-of select="." /&gt;&lt;/li&gt;&#x000A;                &lt;/xsl:for-each&gt;&#x000A;    &#x000A;              &lt;/ul&gt;&#x000A;            &lt;/section&gt;&#x000A;         &lt;/nav&gt;&#x000A;         &lt;xsl:apply-templates select="@* | *"/&gt;&#x000A;       &lt;/xsl:template&gt;&#x000A;    </code></pre>
    <p>There are <strong>some caveats to this approach the reader should be aware of</strong>. First, in this retrofitting example the transformations were performed by the browser but executing the transformations server-side has a couple of advantages. Server-side transformation reduces the burden on mobile devices, which have less processing, power, and memory capabilities than the server.</p>
    <p>The server is also the appropriate place to segment your content to avoid sending unnecessary data over the network and to improve performance. Lastly, you can update the server transformation engine and keep it consistent, instead of dealing with potentially different quirks and levels of XSLT support among browsers. (For example, while XSLT 1.0 is supported in most browsers, XSLT 2.0 is not supported in any, although Saxon-CE is one attempt to add it via JavaScript.)</p>
    <p>Second, XSLT’s roots in functional programming make it inaccessible to the average Web developer. It isn’t simply a matter of learning a new syntax. <strong>The recursive processing model of XSLT requires a new way of thinking</strong> that is unfamiliar to developers of imperative languages, especially developers from a design background who do not have formal training in computer science.</p>
    <p>Finally, a larger challenge is that this technique works only for Web pages that are in XHTML (a flavor of HTML that is XML-compliant), because XSLT can transform only XML, not HTML. According to W3Techs, <a href="http://w3techs.com/technologies/details/ml-xhtml/all/all" rel="nofollow external" class="bo">55% of websites are in XHTML</a>. While this is a majority, it still leaves out a large number of websites. In fact, for this retrofitting example, I worked around this limitation by running Hacker News’ HTML code through an <a href="http://www.it.uc3m.es/jaf/html2xhtml/" rel="nofollow external" class="bo">HTML to XHTML converter</a>.</p>
    <p>In the next section, we’ll explore how the Tritium transformation language was built to address these issues.</p>
    <h3>Responsive Delivery</h3>
    <p>In the example above, we’ve used transformations in the browser to create a responsive experience for an existing website, but conceptually the two approaches overlap. Because responsive Web design is itself about <strong>changing presentation across multiple screen sizes</strong>, transformations can help in that process as well. Instead of simply pairing different CSS styles to the same fixed HTML as in typical responsive design, we can leverage transformations to change the HTML across devices.</p>
    <p>As we explored earlier, the ability to manipulate the HTML (which is missing from CSS alone) not only creates flexibility but actually improves the separation between presentation and content. As a result, maintainability becomes easier because the content is more semantic and less tied to layout. In essence, think of this as moving the breakpoints in responsive design to the transformation layer.</p>
    <p>At <a href="http://www.moovweb.com/?utm_source=d_smashingmag&amp;utm_medium=d_article&amp;utm_campaign=d_smashingmag" rel="nofollow external" class="bo">Moovweb</a>, we’ve leveraged these insights about transformations to implement a technique called responsive delivery, which draws inspiration from responsive Web design, RESS and adaptive design. With responsive delivery, transformations are used to adapt an existing website to different touch points, such as smartphones and tablets.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-5-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-5-responsive-delivery-opt.jpg" width="500" height="200" alt="TThe data flow in this responsive delivery configuration transforms desktop HTML for mobile and tablet end points." style="max-width: 100%; height: auto;"></a><br>
    <em>The data flow in this responsive delivery configuration transforms desktop HTML for mobile and tablet end points. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-5-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>Because the transformed website inherits directly from the desktop, responsive delivery provides the unified content and functionality across touch points that you get with responsive Web design, while the majority of the processing is done server-side. And because <strong>transformations can be used to manipulate the HTML</strong>, we get the benefits that we saw earlier: independent and precise control over the look and feel for each touch point, thanks to an abstraction that separates content from layout.</p>
    <p>In some sense, we can think of responsive delivery as part of a larger trend of <a href="http://www.slideshare.net/yiibu/adaptation-why-responsive-design-actually-begins-on-the-server/" rel="nofollow external" class="bo">weaving adaptive design techniques</a> into responsive design and moving more processing to the server, as in <a href="http://www.lukew.com/ff/entry.asp?1392" rel="nofollow external" class="bo">RESS</a>.</p>
    <p>Also worth noting is that responsive delivery can power desktop websites. In the ideal scenario, the back end would produce semantic but unstyled HTML (affectionately called “wireframe HTML”), and the responsive delivery layer would transform the output for all user touch points.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-6-wireframe-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-6-wireframe-responsive-delivery-opt.jpg" width="500" height="255" alt="The data flow in this responsive delivery configuration uses wireframe HTML as the source data for transformations that output to mobile, tablet, app and desktop end points." style="max-width: 100%; height: auto;"></a><br>
    <em>The data flow in this responsive delivery configuration uses wireframe HTML as the source data for transformations that output to mobile, tablet, app and desktop end points. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-6-wireframe-responsive-delivery-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>Especially in large organizations, this makes for a powerful decoupling of teams. Back-end engineers can focus purely on functionality (i.e. producing the “wireframe HTML”), and front-end designers can focus on the experience (i.e. transforming the wireframe HTML into a styled Web page). Because the channel between both teams is simply HTML, both teams understand it, and passing through implementation details that are inherited by the front end (such as styles and JavaScript) becomes easy.</p>
    <p><strong>Consider a simple autocomplete widget.</strong> With a responsive delivery approach, the back-end engineer would write the server code to support an autocomplete API and embed the corresponding JavaScript that powers the widget in the wireframe HTML. The designer could then style the widget using CSS and transformations and, if necessary, add JavaScript beyond the stub provided by the back-end engineer. The key point is that HTML is used as a flexible carrier of both content and functionality, as opposed to XML or JSON, which represent only data.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-7-wireframe-example-large-opt.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-7-wireframe-example-opt.jpg" width="500" height="255" alt="Shown here are the wireframe HTML and the transformed mobile and desktop output used to power Remix Moovweb." style="max-width: 100%; height: auto;"></a><br>
    <em>Shown here are the <a href="http://kirby-production.herokuapp.com/listrophy/desktop-kirby" rel="nofollow external" class="bo">wireframe HTML</a> and the transformed <a href="http://m.remix.moovweb.com/listrophy/desktop-kirby" rel="nofollow external" class="bo">mobile</a> and <a href="http://remix.moovweb.com/listrophy/desktop-kirby" rel="nofollow external" class="bo">desktop</a> output used to power Remix Moovweb. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2014/02/transforms-7-wireframe-example-large-opt.jpg" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>One way of applying this approach is to use a software-as-a-service platform to process transformations in the cloud. This is the service that we built at Moovweb to power mobile websites and apps for Macy’s and 1-800-Flowers, among others, using our own open-source transformation language, called Tritium. Tritium was designed by Hampton Catlin, inventor of the CSS preprocessor <a href="http://sass-lang.com/" rel="nofollow external" class="bo">Sass</a>. He used his experience to create a transformation language that’s accessible to Web designers and developers. Some features that we felt would be important to the language are the following:</p>
    <ul>
    <li>
    <strong>Familiar syntax</strong><br>
    The syntax should be similar to CSS and jQuery so that it’s more familiar and readable than XSLT’s XML syntax.</li>
    <li>
    <strong>Imperative style</strong><br>
    We wanted to use an imperative programming style, instead of the function and recursive processing model of XSLT.</li>
    <li>
    <strong>Input transparency</strong><br>
    The input is passed directly to the output, so there is no need for a construct like the identity transformation (as is the case with XSLT). Stated differently, the identity transformation is an empty document.</li>
    <li>
    <strong>HTML-compatible</strong><br>
    Tritium was designed to process regular HTML, so it can be used on any website, not just XHTML websites (as with XSLT).</li>
    </ul>
    <p>For a simple “Hello world” example, the following Tritium script will select all of the HTML table elements with an ID of <code>foo</code> and change their <code>width</code> attributes to <code>100%</code>:</p>
    <pre><code>&#x000A;    # Select all HTML nodes that are table elements with ID of foo.&#x000A;    &#x000A;    # The $$() function takes a regular CSS selector&#x000A;    $$("table#foo") {&#x000A;            # change the width attributes to "100%""&#x000A;            attribute("width", "100%")&#x000A;    }&#x000A;    </code></pre>
    <p>The Tritium language has its own <a href="http://tritium.io" rel="nofollow external" class="bo">official website</a>, and Moovweb has scheduled to open-source the language in 2014. Developers interested in contributing are encouraged to check out the public <a href="https://github.com/moovweb/tritium" rel="nofollow external" class="bo">GitHub repository</a> for the core Tritium parser library.</p>
    <p>To compare an example, the analogous Tritium code for adding Foundation to an HTML document, as we did earlier with XSLT, would be this:</p>
    <pre><code>&#x000A;      # Install Foundation in the document&#x000A;      $$("head") {&#x000A;        inject_top('&lt;link rel="stylesheet" href="normalize.css" /&gt;&#x000A;                    &lt;link rel="stylesheet" href="foundation.css" /&gt;&#x000A;                    &lt;script src="custom.modernizr.js"&gt;&lt;/script&gt;')&#x000A;      }&#x000A;      $$("body") {&#x000A;        inject_bottom('&lt;script src="zepto.js"&gt;&lt;/script&gt;&#x000A;                       &lt;script src="foundation.min.js"&gt;&lt;/script&gt;&#x000A;                       &lt;script&gt;$(document).foundation();&lt;/script&gt;')&#x000A;      }   &#x000A;    </code></pre>
    <p>Recall that, in the case of XSLT, the relative placement of new content in the document relies on the judicious placement of the <code>&lt;xsl:apply-templates&gt;</code> tag. However, in the Tritium code just above, the straightforwardly named functions <code>inject_top</code> and <code>inject_bottom</code> are used to insert the boilerplate HTML that installs Foundation.</p>
    <p>In practice, the Moovweb SDK offers a <a href="http://developer.moovweb.com/training/advanced/foundation" rel="nofollow external" class="bo">Foundation scaffold</a> that installs the Foundation boilerplate for you. The scaffold also offers convenience functions to use other components in the Foundation framework. For example, we would use the following functions to create the responsive top bar for Hacker News:</p>
    <pre><code>foundation.tbar() {&#x000A;      foundation.tbar_title("Hacker News", "", "menu-icon")&#x000A;      foundation.tbar_section("right") {&#x000A;        move_here("//span[@class='pagetop']//a"){&#x000A;          wrap("li")&#x000A;        }&#x000A;      }&#x000A;    }&#x000A;    </code></pre>
    <p>As in the XSLT example, the XPath selector <code>"//span[@class='pagetop']//a"</code> is used to select the links for the menu, but the <code>foundation.tbar*()</code> convenience functions make it easier and spare us from having to know the details of the top bar’s HTML format.</p>
    <p>As a final example, a full project implementing the responsive retrofit of Hacker News with Tritium is <a href="https://github.com/moovweb-demos/responsive-retrofit-example" rel="nofollow external" class="bo">available on GitHub</a> for you to run and play with using the Moovweb SDK. Unlike the XSLT version, which uses HTML downloaded from Hacker News (due to the need to run it through an XHTML converter), you can run this project with the live version of the website.</p>
    <h3>Transform Your Thinking</h3>
    <p>Closures once sat obscurely in functional languages until languages such as JavaScript and Ruby brought them into the mainstream. Likewise, transformations have been buried in frameworks that are alien to the average developer, and the popularity of the transformation approach has been married to the fate of XSLT.</p>
    <p>This is unfortunate because transformations are more about a new way of thinking than about any particular technology. They <strong>enable a powerful separation of content and logic from presentation</strong>, and the usefulness of this separation is important in a number of ways. As we move into the post-PC era, transformations provide one part of the answer to serving websites across a wide array of form factors.</p>
    <p>Furthermore, the separation enabled by transformations enhances productivity and accelerates the iteration cycle for visual design teams. Meanwhile, for developers who rearrange DOM objects via JavaScript or jQuery, transformations are a new lens on their current workflow, and they open up new doors to optimizing tasks, such as server-side transformation.</p>
    <p>In an industry that has no shortage of new ideas, sometimes the most useful thing is to connect new concepts with old ones to make them more digestible. That is what this article has tried to do with transformations. Hopefully, we’ve demonstrated the power of thinking in transformations, showing its relevance to anyone who works with HTML.</p>
    <p><em>(al, ea)</em></p>
    <hr>
    <p><small>© Ishan Anand for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2014.</small></p>
    </div>
]]>
</Body>
<Summary>        To most Web developers, it sounds controversial until you hear the punchline: Last summer, the developers in charge of Google’s Chrome browser floated a proposal that went virtually...</Summary>
<Website>http://www.smashingmagazine.com/2014/02/06/applying-xslt-transforms-for-responsive-web-design/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41067/guest@my.umbc.edu/58c5e157bc29ec467d06e9ddc93e272c/api/pixel</TrackingUrl>
<Tag>content</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mobile</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>techniques</Tag>
<Tag>web</Tag>
<Tag>web-design</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, 06 Feb 2014 05:13:14 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="41071" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41071">
<Title>European Hardship Hurts Vodafone&#8217;s Sales</Title>
<Body>
<![CDATA[
    <div class="html-content">The British cellphone carrier said operations in Europe struggled because of the Continent’s economic woes but turnover rose in emerging markets.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F02%2F07%2Fbusiness%2Finternational%2Feuropean-hardship-hurts-vodafones-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=European+Hardship+Hurts+Vodafone%E2%80%99s+Sales" 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%2F02%2F07%2Fbusiness%2Finternational%2Feuropean-hardship-hurts-vodafones-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=European+Hardship+Hurts+Vodafone%E2%80%99s+Sales" 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%2F02%2F07%2Fbusiness%2Finternational%2Feuropean-hardship-hurts-vodafones-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=European+Hardship+Hurts+Vodafone%E2%80%99s+Sales" 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%2F02%2F07%2Fbusiness%2Finternational%2Feuropean-hardship-hurts-vodafones-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=European+Hardship+Hurts+Vodafone%E2%80%99s+Sales" 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%2F02%2F07%2Fbusiness%2Finternational%2Feuropean-hardship-hurts-vodafones-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=European+Hardship+Hurts+Vodafone%E2%80%99s+Sales" 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>
    </div>
]]>
</Body>
<Summary>The British cellphone carrier said operations in Europe struggled because of the Continent’s economic woes but turnover rose in emerging markets.      </Summary>
<Website>http://www.nytimes.com/2014/02/07/business/international/european-hardship-hurts-vodafones-sales.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41071/guest@my.umbc.edu/9ac11e87278ddbda7dce87998c138213/api/pixel</TrackingUrl>
<Tag>alcatel-lucent-alu-nyse</Tag>
<Tag>at-and-t-inc-t-nyse</Tag>
<Tag>cellular-telephones</Tag>
<Tag>company-reports</Tag>
<Tag>new</Tag>
<Tag>technology</Tag>
<Tag>verizon-communications-inc-vz-nyse</Tag>
<Tag>vodafone-group-plc-vod-nasdaq</Tag>
<Tag>wireless-communications</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, 06 Feb 2014 05:08:02 -0500</PostedAt>
<EditAt>Thu, 06 Feb 2014 05:08:02 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="41066" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41066">
<Title>35+ fresh inline typefaces</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2014/02/thumbnail5.jpg" width="200" height="160" style="max-width: 100%; height: auto;">It’s looking to be the hottest trend to hit web design since large text: inline typefaces are the perfect marriage of character and clarity.</p> <p>Perfect for flat design, inline typefaces create texture without using bevels or drop shadows. Typically they have hairline strokes inside the thicker bold strokes; this gives them a bold, chunky legibility, coupled with a delicate touch.</p> <p>Display type needs to stand out from body type, especially when set over large images, and inline typefaces provide that texture in a clean way. They’ve been around for centuries, but it’s only recently that their potential for websites has begun to be picked up.</p> <p>This is one bandwagon you <em>will</em> want to jump on, so put down Proxima Nova for a minute, and take a look at some of the best inline fonts available:</p> <p> </p> <h1>Conqueror Inline (free)</h1> <p><a href="http://www.conqueror.com/#/en/typography/types" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/conqueror.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Intro Inline (free)</h1> <p><a href="http://fontfabric.com/intro-free-font/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/intro.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Bender Inline (free)</h1> <p><a href="http://www.losttype.com/font/?name=Bender" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/bender.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Newton Inline ($39 approx.)</h1> <p><a href="http://www.fonts.com/font/monotype/newton/inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/newton.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Felina Serif Inline ($40 approx.)</h1> <p><a href="http://www.type.co.uk/a_to_z_listing/let/F/id/13583" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/felina.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Cyclone (subscription)</h1> <p><a href="http://www.typography.com/fonts/cyclone/overview/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/cyclone.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Skunkling ($19)</h1> <p><a href="http://www.myfonts.com/fonts/jasonmarkjones/skunkling/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/skunkling.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Ostrich Sans Inline (free)</h1> <p><a href="http://www.fontsquirrel.com/fonts/ostrich-sans-inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/ostrich.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Debonair Inline (free)</h1> <p><a href="http://www.fontspace.com/nicks-fonts/debonair-inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/debonair.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Goudy Handtooled ($29)</h1> <p><a href="http://www.myfonts.com/fonts/mti/goudy-handtooled/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/goudy.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Borba ($14 approx.)</h1> <p><a href="http://uppertype.net/fonts/borba.htm" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/borba.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Carisma Inline ($49 approx.)</h1> <p><a href="http://www.fontshop.com/fonts/singles/castletype/carisma_inline_ot/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/carisma.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Neutra No.2 Display Inline ($150)</h1> <p><a href="http://www.houseind.com/fonts/neutraface2" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/neutraface.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Rex Inline (free)</h1> <p><a href="http://fontfabric.com/rex-free-font/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/rex.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Sans Serif Inline ($35)</h1> <p><a href="http://www.myfonts.com/fonts/artypes/sans-serif-inline/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/sansserifinline.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Landmark Inline (subscription)</h1> <p><a href="http://www.typography.com/fonts/landmark/webfonts/landmark-inline/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/landmark.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Dekal Inline ($30 approx.)</h1> <p><a href="http://www.fonts.com/font/the-northern-block-tnb/dekal/inline?SiteId=15" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/dekal.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Smaragd Regular ($39 approx.)</h1> <p><a href="http://www.fonts.com/font/linotype/smaragd" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/smaragd.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Naive Inline ($28)</h1> <p><a href="http://www.fontspring.com/fonts/la-goupil/naive-inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/naive.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Gist ($17.15)</h1> <p><a href="http://www.myfonts.com/fonts/yellow-design/gist/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/gist.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Blanch Inline (free)</h1> <p><a href="http://www.atipus.com/typeface/blanch-font/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/blanch.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Ribbon (free)</h1> <p><a href="http://losttype.com/font/?name=ribbon" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/ribbon.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Metropolis (free)</h1> <p><a href="http://fontfabric.com/metropolis-free-font/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/metropolis.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Homestead (free)</h1> <p><a href="http://lisidesign.com/font/homestead" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/homestead.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Matrix II Inline ($80)</h1> <p><a href="http://www.emigre.com/OT/Matrix-II-Inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/matrixii.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Phosphate ($74 approx.)</h1> <p><a href="http://www.linotype.com/311748/PhosphateProInline-product.html" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/phosphate.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Sphinx Inline ($54 approx.)</h1> <p><a href="http://www.linotype.com/311590/SphinxInline-product.html" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/sphinx.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Lagniappe Inline (free)</h1> <p><a href="http://fontpro.com/lagniappe-inline-font-5576" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/lagniappe.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Fascinate Inline (free)</h1> <p><a href="http://fontpro.com/fascinate-inline-font-16456" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/facinate.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Posterizer KG Inline ($20)</h1> <p><a href="http://www.myfonts.com/fonts/posterizer-kg/inline/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/posterizer.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Doinky Inline ($29.95)</h1> <p><a href="http://www.fontbros.com/families/doinky/styles/inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/doinky.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Ashley Crawford AT Inline ($29)</h1> <p><a href="http://www.myfonts.com/fonts/mti/ashley-crawford/ashley-inline-std-regular/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/ashley.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Marketing Script Inline (free)</h1> <p><a href="http://fontpro.com/marketing-script-font-15371" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/marketing.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>FFD Neuland Inline ($39 approx.)</h1> <p><a href="http://www.fonts.com/font/monotype/ffd-neuland/inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/FFDNeuland.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Rainforest Inline ($30)</h1> <p><a href="http://www.fontbros.com/families/rainforest/styles/inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/Rainforest.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Memoriam Pro Inline ($49.94)</h1> <p><a href="http://www.fontbros.com/families/memoriam/styles/pro-inline" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2014/02/memorium.jpg" width="650" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"></a></p> <p> </p> <p> <em><strong>Have you used inline type in a project yet? Have we missed one of your go-to faces? Let us know in the comments.</strong></em></p> <p><br><br> </p>
    <table width="100%"> <tbody>
    <tr> <td> <a href="http://www.mightydeals.com/deal/dev7studios-wordpress-plugin-bundle.html?ref=inwidget" rel="nofollow external" class="bo"><strong>Dev7studios WordPress Plugin Bundle – only $27!</strong></a> </td> <td> <a href="http://www.mightydeals.com/?ref=inwidget" rel="nofollow external" class="bo"><br> <img src="http://mightydeals.com/web/images/widget-logo.png" height="40" width="90" alt="35+ fresh inline typefaces" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2014/02/35-fresh-inline-typefaces/" rel="nofollow external" class="bo">Source</a> <br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2014%2F02%2F35-fresh-inline-typefaces%2F&amp;t=35%2B+fresh+inline+typefaces" 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.webdesignerdepot.com%2F2014%2F02%2F35-fresh-inline-typefaces%2F&amp;t=35%2B+fresh+inline+typefaces" 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.webdesignerdepot.com%2F2014%2F02%2F35-fresh-inline-typefaces%2F&amp;t=35%2B+fresh+inline+typefaces" 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.webdesignerdepot.com%2F2014%2F02%2F35-fresh-inline-typefaces%2F&amp;t=35%2B+fresh+inline+typefaces" 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.webdesignerdepot.com%2F2014%2F02%2F35-fresh-inline-typefaces%2F&amp;t=35%2B+fresh+inline+typefaces" 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/186530234279/u/49/f/661066/c/35285/s/36c5fbae/sc/4/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530234279/u/49/f/661066/c/35285/s/36c5fbae/sc/4/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186530234279/u/49/f/661066/c/35285/s/36c5fbae/sc/4/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530234279/u/49/f/661066/c/35285/s/36c5fbae/sc/4/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186530234279/u/49/f/661066/c/35285/s/36c5fbae/sc/4/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530234279/u/49/f/661066/c/35285/s/36c5fbae/sc/4/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/186530234279/u/49/f/661066/c/35285/s/36c5fbae/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530234279/u/49/f/661066/c/35285/s/36c5fbae/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>It’s looking to be the hottest trend to hit web design since large text: inline typefaces are the perfect marriage of character and clarity.   Perfect for flat design, inline typefaces create...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/36c5fbae/sc/4/l/0L0Swebdesignerdepot0N0C20A140C0A20C350Efresh0Einline0Etypefaces0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41066/guest@my.umbc.edu/2034276d346f804925a9f7c4cfb4982c/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>cheap-fonts</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>display-typefaces</Tag>
<Tag>free-fonts</Tag>
<Tag>free-resources-for-designers</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>inline-fonts</Tag>
<Tag>inline-type</Tag>
<Tag>inline-typefaces</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>trendy-type</Tag>
<Tag>typography</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, 06 Feb 2014 03:15:16 -0500</PostedAt>
<EditAt>Thu, 06 Feb 2014 03:15:16 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="41065" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41065">
<Title>After Losses, Yet Another Overhaul for Sony</Title>
<Body>
<![CDATA[
    <div class="html-content">The company, struggling to keep pace in consumer electronics, said it planned to sell its Vaio PC unit to an investment fund and cut 5,000 jobs.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F02%2F07%2Ftechnology%2Fsony-to-sell-pc-unit-amid-dwindling-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=After+Losses%2C+Yet+Another+Overhaul+for+Sony" 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%2F02%2F07%2Ftechnology%2Fsony-to-sell-pc-unit-amid-dwindling-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=After+Losses%2C+Yet+Another+Overhaul+for+Sony" 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%2F02%2F07%2Ftechnology%2Fsony-to-sell-pc-unit-amid-dwindling-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=After+Losses%2C+Yet+Another+Overhaul+for+Sony" 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%2F02%2F07%2Ftechnology%2Fsony-to-sell-pc-unit-amid-dwindling-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=After+Losses%2C+Yet+Another+Overhaul+for+Sony" 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%2F02%2F07%2Ftechnology%2Fsony-to-sell-pc-unit-amid-dwindling-sales.html%3Fpartner%3Drss%26emc%3Drss&amp;t=After+Losses%2C+Yet+Another+Overhaul+for+Sony" 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/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/sc/2/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/sc/2/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/sc/2/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/sc/2/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/sc/2/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/sc/2/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186530233954/u/0/f/640387/c/34625/s/36c5f8eb/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The company, struggling to keep pace in consumer electronics, said it planned to sell its Vaio PC unit to an investment fund and cut 5,000 jobs.      </Summary>
<Website>http://www.nytimes.com/2014/02/07/technology/sony-to-sell-pc-unit-amid-dwindling-sales.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41065/guest@my.umbc.edu/3c0e756ed731fa81216b4125c54d18d5/api/pixel</TrackingUrl>
<Tag>apple-inc-aapl-nasdaq</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>electronics</Tag>
<Tag>gartner-inc-it-nyse</Tag>
<Tag>hirai-kazuo</Tag>
<Tag>nec-corporation-nipnf-other-otc</Tag>
<Tag>new</Tag>
<Tag>sony-corporation-sne-nyse</Tag>
<Tag>technology</Tag>
<Tag>tokyo-japan</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, 06 Feb 2014 03:02:31 -0500</PostedAt>
<EditAt>Thu, 06 Feb 2014 10:53:32 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="41064" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41064">
<Title>A Look at How to Install WordPress Automatically and By FTP</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>In this article we visit the process of installing WordPress, automatically by using cPanel and manually, by using FTP (File Transfer Protocol).</p></div>
]]>
</Body>
<Summary>In this article we visit the process of installing WordPress, automatically by using cPanel and manually, by using FTP (File Transfer Protocol).</Summary>
<Website>http://www.htmlgoodies.com/beyond/cms/how-to-install-wordpress-automatically-and-by-ftp.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41064/guest@my.umbc.edu/fa62cb000bea9c2d0a62e482bd3aead4/api/pixel</TrackingUrl>
<Tag>html</Tag>
<Tag>htmlgoodies</Tag>
<Tag>learning</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Wed, 05 Feb 2014 22:30:00 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="122846" important="false" status="posted" url="https://my3.my.umbc.edu/posts/122846">
<Title>Student Scholarship Q&amp;A: Kaitlyn Golden, psychology</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <img width="150" height="150" src="https://umbc.edu/wp-content/uploads/2014/02/goldenkaitlyn-150x150.jpg" alt="" style="max-width: 100%; height: auto;"><p><a href="http://umbcgiving.files.wordpress.com/2014/02/goldenkaitlyn.jpg" rel="nofollow external" class="bo"><img alt="goldenKaitlyn" src="http://umbcgiving.files.wordpress.com/2014/02/goldenkaitlyn.jpg" width="166" height="249" style="max-width: 100%; height: auto;"></a>Every so often, we highlight the importance of student scholarships by introducing you to the very students they help to succeed. Today, we’re featuring <strong>Kaitlyn Golden, a senior psychology major</strong> who is also a Shattuck Family Entrepreneurial Scholarship recipient. This scholarship was established to recognize and celebrate outstanding UMBC students who have demonstrated an interest in entrepreneurship, high academic potential and drive, and an exceptional value system and commitment to the community.</p>
    <p><strong>Name</strong>: Kaitlyn Golden<br>
    <strong>Grad year/major</strong>: May 2014, psychology<br>
    <strong>Affiliation</strong>: Sondheim Public Affairs Scholars Program, Honors College</p>
    <p><strong>Q: </strong><em>Why did you decide to attend UMBC?</em></p>
    <p><strong>A:</strong> My sister attended UMBC, and so I wanted to do something different. But with encouragement from my family, I took a tour during the fall of my senior year in high school and really liked the campus. When we got to Academic Row, I saw the library pond and the green trees arching overhead, and I remember thinking, “Wow, I could definitely go here.” I’ve always felt really fond of Academic Row and the library pond ever since then – they helped change my mind about UMBC, and helped me appreciate the school’s beauty.</p>
    <p>That spring, I found out I’d been accepted into the Sondheim Public Affairs Scholars Program and the Honors College, and so I knew then that I was definitely going to go to UMBC.</p>
    <p><strong>Q:</strong> <em>What’s been the most amazing discovery you’ve made so far as a student here?</em></p>
    <p><strong>A:</strong> People here at UMBC are boundlessly generous and giving of their time, energy, wisdom and patience. From my peers, mentors and professors, I’ve learned about many different social justice issues. My most amazing discovery was how students can make change in the world, and from this, I realized my own personal power and strength. This year, I have also realized how, in so many ways, we are not isolated beings; we need the support of people who love us to move forward.</p>
    <p><strong><a href="http://umbcgiving.files.wordpress.com/2014/02/katie-golden_shattuck-post.jpg" rel="nofollow external" class="bo"><img alt="Katie Golden_Shattuck Post" src="http://umbcgiving.files.wordpress.com/2014/02/katie-golden_shattuck-post.jpg?w=300" width="300" height="225" style="max-width: 100%; height: auto;"></a>Q:</strong> <em>What was your time like in the Shattuck Family Internship Program?</em></p>
    <p><strong>A:</strong> While most students were using the scholarship during the spring semester to complete internships, I interned during the summer. I spent five weeks working at a non-profit in Baja California, Mexico. Prior to my internship, during the spring semester, I attended three speaker sessions sponsored by the Alex. Brown Center. All Shattuck recipients were invited to have breakfast with Molly and Mayo Shattuck, which was really fun. I loved meeting the other interns, who were doing such great work at their respective sites. The program thus prepared me very well for my time in Mexico and gave me a solid foundation of knowledge and support.</p>
    <p><strong>Q:</strong> <em>How important is it to you as a student to get scholarship support?</em></p>
    <p><strong>A:</strong> Scholarships make my education possible. Without financial assistance, I would not be free to pursue some of the wonderful opportunities I’ve had at UMBC, such as research, volunteering, playing club Ultimate and being involved in many organizations. In addition to the Shattuck Program’s financial assistance, I am also a member of Sondheim Public Affairs Scholars Program. The Sondheim Program helped me financially during my college career, and gave me a solid foundation to learn about public service and public affairs. Scholarship support gave me the time to become a freer, more well-rounded thinker and an involved student.</p>
    <p><strong>Q:</strong> <em>What did you do with the scholarship money you received?</em></p>
    <p><strong>A:</strong> The Shattuck Program’s grant enabled me to pay for my plane ticket to Mexico, my baggage fees and it also covered most of my living expenses while I was there. I felt really lucky to be able to do international service without worrying about the financial stress of traveling to another country.</p>
    <p><strong>Q:</strong> <em>What would you say to the people who provided your scholarship?</em></p>
    <p><strong>A:</strong> Thank you! Thank you, thank you, thank you. The Shattucks’ generosity is incredible. Both Molly and Mayo Shattuck are inspiring and great examples of leading a positive and giving life. I really admire both of them for their innovations, like their internship program, and all of the service work they do in the Baltimore community.</p>
    <p><strong>Q:</strong> <em>What do you hope to do after graduation and why?</em></p>
    <p><strong>A:</strong> My favorite quote is derived from the Bible and immortalized by John F. Kennedy: “To those whom much is given, much is expected.” I believe in this very strongly. I have been given very much, and after college graduation I want to give back. I plan to serve both domestically and internationally. I am applying to several AmeriCorps programs and the Peace Corps. After this service, I will pursue a Ph.D. in Community Psychology. I plan on using my degree to work for food justice, access and sustainability within communities of immigrants and refugees in the United States.</p>
    </div>
]]>
</Body>
<Summary>Every so often, we highlight the importance of student scholarships by introducing you to the very students they help to succeed. Today, we’re featuring Kaitlyn Golden, a senior psychology major...</Summary>
<Website>https://umbc.edu/stories/student-scholarship-qa-kaitlyn-golden-psychology/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/122846/guest@my.umbc.edu/37c6589cce25d647d2afa4c0e1b30410/api/pixel</TrackingUrl>
<Tag>americorps</Tag>
<Tag>honors-college</Tag>
<Tag>impact</Tag>
<Tag>john-f-kennedy</Tag>
<Tag>peace-corps</Tag>
<Tag>shattuck-family</Tag>
<Tag>shattuck-family-internship</Tag>
<Tag>shattuck-family-scholarship</Tag>
<Tag>sondheim-public-affairs-scholars-program</Tag>
<Tag>umbc</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Group token="umbc-news-magazine">UMBC News &amp;amp; Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news-magazine</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/original.png?1748556657</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/large.png?1748556657</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/medium.png?1748556657</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/small.png?1748556657</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxsmall.png?1748556657</AvatarUrl>
<Sponsor>UMBC News &amp; Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Wed, 05 Feb 2014 22:28:05 -0500</PostedAt>
</NewsItem>

</News>
