<?xml version="1.0"?>
<News hasArchived="true" page="8485" pageCount="10725" pageSize="10" timestamp="Thu, 16 Jul 2026 06:27:46 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8485">
<NewsItem contentIssues="true" id="33155" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33155">
<Title>Corner Office: Paul English of Kayak, on Nurturing New Ideas</Title>
<Body>
<![CDATA[
    <div class="html-content">The co-founder and chief technology officer of Kayak, the travel Web site, says “no innovation happens with 10 people in a room.”<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F07%2F26%2Fbusiness%2Fpaul-english-of-kayak-on-nurturing-new-ideas.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Paul+English+of+Kayak%2C+on+Nurturing+New+Ideas" 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%2F2013%2F07%2F26%2Fbusiness%2Fpaul-english-of-kayak-on-nurturing-new-ideas.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Paul+English+of+Kayak%2C+on+Nurturing+New+Ideas" 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%2F2013%2F07%2F26%2Fbusiness%2Fpaul-english-of-kayak-on-nurturing-new-ideas.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Paul+English+of+Kayak%2C+on+Nurturing+New+Ideas" 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%2F2013%2F07%2F26%2Fbusiness%2Fpaul-english-of-kayak-on-nurturing-new-ideas.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Paul+English+of+Kayak%2C+on+Nurturing+New+Ideas" 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%2F2013%2F07%2F26%2Fbusiness%2Fpaul-english-of-kayak-on-nurturing-new-ideas.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Paul+English+of+Kayak%2C+on+Nurturing+New+Ideas" 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/172311142216/u/0/f/640387/c/34625/s/2f26ab8d/kg/342-363/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/172311142216/u/0/f/640387/c/34625/s/2f26ab8d/kg/342-363/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The co-founder and chief technology officer of Kayak, the travel Web site, says “no innovation happens with 10 people in a room.”     </Summary>
<Website>http://www.nytimes.com/2013/07/26/business/paul-english-of-kayak-on-nurturing-new-ideas.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33155/guest@my.umbc.edu/abb658a12a4ac22524a041107e6da837/api/pixel</TrackingUrl>
<Tag>english-paul</Tag>
<Tag>executives-and-management-theory</Tag>
<Tag>hiring-and-promotion</Tag>
<Tag>kayak-com</Tag>
<Tag>new</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, 25 Jul 2013 08:47:53 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="33143" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33143">
<Title>Bits Blog: A Summer of Data Hacking Social Problems</Title>
<Body>
<![CDATA[
    <div class="html-content">A University of Chicago program, led by the Obama re-election campaign’s chief scientist, is intended to let aspiring young data scientists apply their skills to urban and social problems.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F25%2Fa-summer-of-data-hacking-social-problems%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+A+Summer+of+Data+Hacking+Social+Problems" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F25%2Fa-summer-of-data-hacking-social-problems%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+A+Summer+of+Data+Hacking+Social+Problems" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F25%2Fa-summer-of-data-hacking-social-problems%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+A+Summer+of+Data+Hacking+Social+Problems" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F25%2Fa-summer-of-data-hacking-social-problems%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+A+Summer+of+Data+Hacking+Social+Problems" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F25%2Fa-summer-of-data-hacking-social-problems%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+A+Summer+of+Data+Hacking+Social+Problems" 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/172312103018/u/0/f/640387/c/34625/s/2f2516b3/kg/342-363/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/172312103018/u/0/f/640387/c/34625/s/2f2516b3/kg/342-363/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>A University of Chicago program, led by the Obama re-election campaign’s chief scientist, is intended to let aspiring young data scientists apply their skills to urban and social problems.     </Summary>
<Website>http://bits.blogs.nytimes.com/2013/07/25/a-summer-of-data-hacking-social-problems/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33143/guest@my.umbc.edu/a74408c9b059a7890c45f5e5df047aa1/api/pixel</TrackingUrl>
<Tag>chicago-ill</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>data</Tag>
<Tag>new</Tag>
<Tag>policy</Tag>
<Tag>rayid-ghani</Tag>
<Tag>schmidt-eric-e</Tag>
<Tag>social</Tag>
<Tag>technology</Tag>
<Tag>university-of-chicago</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, 25 Jul 2013 08:05:06 -0400</PostedAt>
<EditAt>Thu, 25 Jul 2013 13:01:13 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="33217" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33217">
<Title>Create a game with KineticJS</Title>
<Body>
<![CDATA[
    <div class="html-content">Canvas has been one of the major breakthroughs of HTML’s evolution. In this tutorial Andrew Croxall demonstrates using it to make a whack-a-mole-style game via KineticJS<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.netmagazine.com%2Ftutorials%2Fcreate-game-kineticjs&amp;t=Create+a+game+with+KineticJS" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.netmagazine.com%2Ftutorials%2Fcreate-game-kineticjs&amp;t=Create+a+game+with+KineticJS" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.netmagazine.com%2Ftutorials%2Fcreate-game-kineticjs&amp;t=Create+a+game+with+KineticJS" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.netmagazine.com%2Ftutorials%2Fcreate-game-kineticjs&amp;t=Create+a+game+with+KineticJS" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.netmagazine.com%2Ftutorials%2Fcreate-game-kineticjs&amp;t=Create+a+game+with+KineticJS" 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>Canvas has been one of the major breakthroughs of HTML’s evolution. In this tutorial Andrew Croxall demonstrates using it to make a whack-a-mole-style game via KineticJS     </Summary>
<Website>http://feedproxy.google.com/~r/net/topstories/~3/uzn9GWsqMx0/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33217/guest@my.umbc.edu/50d05ca52c04223a6534b9ed791e4a03/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>net</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 25 Jul 2013 07:55:02 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="33142" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33142">
<Title>Localising content for better SEO</Title>
<Body>
<![CDATA[
    <div class="html-content">For any business operating in or selling to multiple international territories, the ‘localisation’ of your online content is a crucial tool in your attempts to increase traffic, improve rankings and increase conversion rates.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Flocalising-content-better-seo&amp;t=Localising+content+for+better+SEO" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Flocalising-content-better-seo&amp;t=Localising+content+for+better+SEO" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Flocalising-content-better-seo&amp;t=Localising+content+for+better+SEO" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Flocalising-content-better-seo&amp;t=Localising+content+for+better+SEO" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Flocalising-content-better-seo&amp;t=Localising+content+for+better+SEO" 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/172311133655/u/49/f/502346/c/32632/s/2f241710/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/172311133655/u/49/f/502346/c/32632/s/2f241710/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>For any business operating in or selling to multiple international territories, the ‘localisation’ of your online content is a crucial tool in your attempts to increase traffic, improve rankings...</Summary>
<Website>http://feedproxy.google.com/~r/net/topstories/~3/BLfrddxn-ew/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33142/guest@my.umbc.edu/7d2cbb83c390333bd7045a42d13b58ea/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>net</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 25 Jul 2013 06:00:09 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="33141" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33141">
<Title>Get cracking with Backbone</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2013/07/thumbnail35.jpg" width="200" height="160" style="max-width: 100%; height: auto;">For years developers have been taking advantage of PHP frameworks like CakePHP, CodeIgniter and even Ruby frameworks based on the MVC pattern. But if you think about it, there haven’t been a lot of JavaScript frameworks to help us out in the same way.</p> <p>Perhaps it’s because JavaScript is often looked down on by ‘real’ programmers, but JavaScript frameworks have always lagged behind a little. <a href="http://backbonejs.org/" rel="nofollow external" class="bo">Backbone</a> changed that, and as you’ll see in this introduction, it uses the MVC pattern to separate JavaScript code and help us create structured applications. In effect, it delivers the MVC pattern to front-end development.</p> <h1>What is Backbone?</h1> <p>Backbone is a lightweight JavaScript library from the same creator as <a href="http://www.webdesignerdepot.com/2013/05/a-taste-of-coffeescript-part-1/" rel="nofollow external" class="bo">CoffeeScript.</a> But don’t let the fact that it’s a library make you confuse it with jQuery, Backbone is leagues away from jQuery when it comes to functionality. Backbone doesn’t handle DOM elements, which is why many developers use it hand in hand with jQuery; Backbone organizing structure and jQuery manipulating the DOM.</p> <p>What Backbone does really well is supply structure to your JavaScript applications, and because it works with JSON it’s simple to insert into almost any front-end templating system.</p> <p> </p> <h1>The MVC pattern in Backbone</h1> <p>MVC stands for Models, Views and Collections; and in Backbone, with also have Routers.</p> <h2>Models</h2> <p>In Backbone a model represents and entity, so for example, if we are dealing with users, each user would be a Model; it’s like a row in a database.</p> <p>To create a simple model using Backbone we’d type:</p> <pre>var user = Backbone.Model.extend({});</pre> <p>That code is technically correct but that Model wouldn’t have any functionality, so we need to add something for this Model to do when it is instantiated and to do that, we’d use slightly more complex code:</p> <pre>User = Backbone.Model.extend({<br>    initialize: function(){<br>        alert('Welcome to WebdesignerDepot');<br>    },<br>    defaults: {<br>        name: 'John Doe',<br>        age:30,<br>    }<br>});<br>var user = new User;</pre> <p>In the above code, the initialize function will be triggered everytime we create a new instance of this model, after initialize all we’ve done is add some defaults in case no data is passed in for the Model. With that done, to create an instance of the Model we’d use code like:</p> <pre>var dave = new User({name:'Dave Smith', age:25});</pre> <p>To retrieve an attribute of a certain instance, we’d use:</p> <pre>var name = dave.get('name');</pre> <p>And to change an attribute we’d use:</p> <pre>dave.set({age:31});</pre> <p>This is the basics of how Models work in Backbone, there’s a lot more they can achieve but hopefully you can see the potential for structuring code already.</p> <h2>Collections</h2> <p>Remember I said that a model was like a user? Well, following that analogy a Collection is all the users we have. Collections are in essence sets of Models, and since we already have our user Model, we’ll build a collection from there:</p> <pre>var Users = Backbone.Collection.extend({<br>    model: User<br>});</pre> <p>Currently this Collection is empty, but it’s simple to create some users and add them to the collection:</p> <pre>var barney = new User({ name: 'Barney Stinson', age: 30});<br>var ted = new User({ name: 'Ted Mosby', age:32});<br>var lily = new User({ name: 'Lily Aldrin', age: 29});<br><br>var himym = new Users([barney, ted, lily]);</pre> <p>Now, if we console.log himym.models we’ll get the values from barney, ted and lily.</p> <h2>Views</h2> <p>Views are associated with a part of the DOM, they are designed to be tied to the Models that are essentially the data of the application and they serve to present this data to the end user.</p> <p>Creating a view is simple:</p> <pre>UserView = Backbone.View.extend({<br>    tagName: 'div',<br>    className: 'user',<br>    render: function(){}<br>});</pre> <p>This is the basic structure of a view. The tagName is the element that will be used to wrap the view, the class is set using the className and lastly we add a render function, although in this last case the function was empty. It’s the render function that we use to add to the stage, like so:</p> <pre>UserView = Backbone.View.extend({<br>    tagName: 'div',<br>    className: 'user',<br>    render: function(){<br>        this.el.innerHTML = this.model.get('age');<br>    }<br>});</pre> <p>The el element in the render function refers to the wrapper we created and using the innerHTML function we placed the user’s age inside the div.</p> <p>This example hasn’t used any templating system, but if you want to you can take advantage of Underscore.js that ships with Backbone.</p> <p>We can also listen to events by attaching an event listener to our view and in this example we’ll create a simple click listener for our div (this code goes immediately after our render function):</p> <pre>events:{<br>    'click.user': 'divClicked'<br>},<br>divClicked: function(event){<br>    alert('You clicked the div');<br>}</pre> <h2>Routers</h2> <p>Backbone Routers are used for routing the URLs in the application when using hashtags (#). To define a router you should always add at least one route and at least a function that will run when the desired URL is reached, like so:</p> <pre>var appRouter = Backbone.Router.extend({<br>    routes:{<br>        'user': 'userRoute'<br>    },<br>    userRoute: function() {<br>        // the code to run when <a href="http://example.com/#user">http://example.com/#user</a><br>    }<br>});<br>Backbone.history.start();</pre> <p>This is an extremely simple router that will perform an action when the /#user hash is reached. The Backbone.history.start() method call asks Backbone to monitor the hashtags so that the various states of the site are bookmarkable and can be navigated with the browser.</p> <p> </p> <h1>Conclusion</h1> <p>This article only covers the very basics of Backbone, which can be used to build structured applications in JavaScript. I’d advise you to check out the templating system for use in conjunction with Backbone to see the full potential of this library. I hope that this brief introductions has shown you how useful MVC can be on the front-end.</p> <p> </p> <p><em><strong>Have you built applications with Backbone? What kinds of application would you like to build? Let us know in the comments.</strong></em></p> <p><em>Featured image/thumbnail, <a href="http://www.shutterstock.com/pic-133895153/stock-photo-worker-working-on-scaffold-near-sunset.html" rel="nofollow external" class="bo">scaffolding image</a> via Shutterstock.</em></p> <p><br><br> </p>
    <table width="100%"> <tbody>
    <tr> <td> <a href="http://www.mightydeals.com/deal/shopify.html?ref=inwidget" rel="nofollow external" class="bo"><strong>Shopify: Build an Online Store in Minutes – up to 60% off!</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="Get cracking with Backbone" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/07/get-cracking-with-backbone/" rel="nofollow external" class="bo">Source</a> <div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F07%2Fget-cracking-with-backbone%2F&amp;t=Get+cracking+with+Backbone" 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%2F2013%2F07%2Fget-cracking-with-backbone%2F&amp;t=Get+cracking+with+Backbone" 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%2F2013%2F07%2Fget-cracking-with-backbone%2F&amp;t=Get+cracking+with+Backbone" 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%2F2013%2F07%2Fget-cracking-with-backbone%2F&amp;t=Get+cracking+with+Backbone" 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%2F2013%2F07%2Fget-cracking-with-backbone%2F&amp;t=Get+cracking+with+Backbone" 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/172312116134/u/49/f/661066/c/35285/s/2f236161/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/172312116134/u/49/f/661066/c/35285/s/2f236161/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>For years developers have been taking advantage of PHP frameworks like CakePHP, CodeIgniter and even Ruby frameworks based on the MVC pattern. But if you think about it, there haven’t been a lot...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/2f236161/sc/4/l/0L0Swebdesignerdepot0N0C20A130C0A70Cget0Ecracking0Ewith0Ebackbone0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33141/guest@my.umbc.edu/9c02f6b11e37689491634400a698395c/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>backbone-and-jquery</Tag>
<Tag>backbone-js</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>javascript-applications</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>organizing-javascript</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>using-backbone</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, 25 Jul 2013 05:15:03 -0400</PostedAt>
<EditAt>Thu, 25 Jul 2013 05:15:03 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="33158" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33158">
<Title>Should Reddit Be Blamed for the Spreading of a Smear?</Title>
<Body>
<![CDATA[
    <div class="html-content">When the Sunil Tripathi rumor went viral after the Boston Marathon bombing, it laid bare the dysfunctional codependence between new and old media.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F07%2F28%2Fmagazine%2Fshould-reddit-be-blamed-for-the-spreading-of-a-smear.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Should+Reddit+Be+Blamed+for+the+Spreading+of+a+Smear%3F" 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%2F2013%2F07%2F28%2Fmagazine%2Fshould-reddit-be-blamed-for-the-spreading-of-a-smear.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Should+Reddit+Be+Blamed+for+the+Spreading+of+a+Smear%3F" 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%2F2013%2F07%2F28%2Fmagazine%2Fshould-reddit-be-blamed-for-the-spreading-of-a-smear.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Should+Reddit+Be+Blamed+for+the+Spreading+of+a+Smear%3F" 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%2F2013%2F07%2F28%2Fmagazine%2Fshould-reddit-be-blamed-for-the-spreading-of-a-smear.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Should+Reddit+Be+Blamed+for+the+Spreading+of+a+Smear%3F" 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%2F2013%2F07%2F28%2Fmagazine%2Fshould-reddit-be-blamed-for-the-spreading-of-a-smear.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Should+Reddit+Be+Blamed+for+the+Spreading+of+a+Smear%3F" 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>When the Sunil Tripathi rumor went viral after the Boston Marathon bombing, it laid bare the dysfunctional codependence between new and old media.     </Summary>
<Website>http://www.nytimes.com/2013/07/28/magazine/should-reddit-be-blamed-for-the-spreading-of-a-smear.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33158/guest@my.umbc.edu/ab3acfc498df45e5c1d8cbe0377bd4bb/api/pixel</TrackingUrl>
<Tag>boston-marathon-bombings-2013</Tag>
<Tag>boston-mass</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>facebook-inc-fb-nasdaq</Tag>
<Tag>new</Tag>
<Tag>news-and-news-media</Tag>
<Tag>philadelphia-pa</Tag>
<Tag>reddit-inc</Tag>
<Tag>social-media</Tag>
<Tag>technology</Tag>
<Tag>tripathi-sunil</Tag>
<Tag>twitter</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, 25 Jul 2013 05:00:01 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="33140" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33140">
<Title>Introduction To Photoshop Scripting</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>Automation is useful in the work of every designer. It saves precious time on repetitive tasks and helps us solve certain problems more quickly and easily.</p>
    <p>You can automate your workflow in Photoshop with actions, which are pretty popular and which most of you already know about and use. Today, we’ll introduce you to an advanced automation technique: scripting. All you need for this is basic knowledge of JavaScript, which some of us Web designers already have.</p>
    <p>I’ve known about Photoshop scripts for years but decided to really dive in a few months ago. I had avoided it because I thought it was the domain of smart math-minded programmers. I was wrong, and today I’ll show that, although it requires some basic programming skills, scripting <strong>isn’t hard to grasp</strong>.</p>
    <p>But first, we have to answer the obvious question.</p>
    <h3>Why Do We Need Scripts?</h3>
    <p>Why should we would learn to script if Photoshop already has pretty nice actions? The answer is <strong>interactivity</strong>. When you use an action, you can’t really control how it behaves in different situations; it is like a videotape that just keeps playing again and again without any change.</p>
    <p><img alt="Why We Need Scripts?" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/start-image_mini.png" width="500" height="200" style="max-width: 100%; height: auto;"></p>
    <p>A script is more dynamic; its behavior changes according to the parameters you input or the context of its application. Sounds useful, no?</p>
    <h3>Requirements</h3>
    <p>You don’t have to be an advanced programmer to be able to write scripts; I’m just a graphic designer, like most of you. But you should at least have a basic understanding of JavaScript and some experience with properties and methods to get the most out of this article.</p>
    <p><img alt="Requirements" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_requirements_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>If you are not familiar with JavaScript at all, fear not! There are plenty of places to learn the basics of programming. <a href="http://www.codecademy.com/en/tracks/javascript" rel="nofollow external" class="bo">Codecademy</a>, for example, has pretty neat interactive lessons.</p>
    <p>I work in Adobe Photoshop CS5, but everything we’ll cover applies to newer versions, too; Adobe hasn’t made any major updates to its scripting API since CS5. I will refer to the latest version of the scripting documentation, though, which is CS6.</p>
    <h3>Getting Started</h3>
    <p>When you record actions in Photoshop, you set the order of the steps to achieve a certain result — that’s your <strong>algorithm</strong>. Then, you press “Record” and replicate them in Photoshop one by one. Scripting is similar, but instead of doing these steps in Photoshop, you write them down as lines of code. Most actions that you do in Photoshop have their own script equivalent as a function.</p>
    <p><img alt="Start here" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_start_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>Let’s say you are creating an action that scales a document to 150% of its original size. You’d go through these steps:</p>
    <ol>
    <li>Open <code>Image → Image Size</code>.</li>
    <li>Enter <code>150%</code> in <code>width</code> and <code>height</code>.</li>
    <li>Hit “OK.”</li>
    </ol>
    <p>The same process with a script would look like this:</p>
    <ol>
    <li>Call the application: <code>app</code>
    </li>
    <li>Target a document: <code>activeDocument</code>
    </li>
    <li>Call the function to resize the image: <code>resizeImage(width, height)</code>
    </li>
    </ol>
    <p>And the code would look like this:</p>
    <pre><code>app.activeDocument.resizeImage("150%", "150%");&#x000A;    </code></pre>
    <h4>Language</h4>
    <p>There are three ways to write scripts for Photoshop: using <strong>AppleScript</strong> on Mac, <strong>VBScript</strong> on Windows or <strong>JavaScript</strong> on either platform. I use the third because it is cross-platform and I already have some experience with it.</p>
    <h4>Tools</h4>
    <p>Adobe has its own utility for writing scripts, called <strong>ExtendedScript Toolkit</strong>.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_extendedtoolkit_big_mini.png" rel="nofollow external" class="bo"><img alt="Adobe ExtendedScript Toolkit" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_extendedtoolkit_small_mini.png" style="max-width: 100%; height: auto;"></a><br>
    <em>The main window for Adobe’s ExtendedScript Toolkit. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_extendedtoolkit_big_mini.png" rel="nofollow external" class="bo">View large version.</a>)</em></p>
    <p>The toolkit comes with Photoshop, and you can find it in the following folder:</p>
    <ul>
    <li>Mac OS X<br>
    <code>/Applications/Utilities/Adobe Utilities CS6/ExtendScript Toolkit CS6/</code>
    </li>
    <li>Windows<br>
    <code>C:\Program Files\Adobe\Adobe Utilities - CS6\ExtendScript Toolkit CS6</code><br>
    (or <code>Program Files (x86)</code> for 64-bit machines)</li>
    </ul>
    <p>The user interface of the ExtendedScript Toolkit is pretty straightforward. To start writing scripts, first select the target application in the drop-down menu. If Photoshop is running, then look for the green chain icon near the drop-down menu:</p>
    <p><img alt="Application Select" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_extendedtoolkit_app_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>Now you can write something like this:</p>
    <pre><code>alert("Hello Photoshop!");&#x000A;    </code></pre>
    <p>Press <code>cmd + R</code> (or just hit the “Play” button in the toolbar) to run your script. ExtendedScript Toolkit should switch to Photoshop and show an alert box:</p>
    <p><img alt="Hello Photoshop!" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_alert0_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>ExtendedScript Toolkit has some other neat features for debugging scripts, but this is enough for this article. You can learn more about how to use it by going to <code>Help → JavaScript Tools Guide</code>.</p>
    <p>You can use any plain-text editor to write a script; just save it as a <code>.jsx</code> file. To run it, you’ll have to go to <code>File → Scripts → Browse</code> in Photoshop and select it. Alternatively, just open the script file with Photoshop. You can also add a line of code at the top of the script so that the file always opens in Photoshop:</p>
    <pre><code>#target photoshop&#x000A;    </code></pre>
    <p>Save your scripts in the <code>Photoshop/Presets/Scripts/</code> directory, and access them with <code>File → Scripts</code>. You can also set up a hotkey; just go to <code>Edit → Keyboard Shortcuts</code>, navigate to <code>File → Scripts → [your script’s name]</code>, and set the shortcut you want.</p>
    <p>ExtendedScript Toolkit can run and debug code from the integrated development environment, and it has an object model viewer built in, which is useful. So, I recommend using the toolkit to write your scripts. Unfortunately, the Mac version crashes sometimes, so keep that in mind.</p>
    <h4>Photoshop Object Model</h4>
    <p>To make writing scripts easier, you should understand how things relate to each other in Photoshop’s Document Object Model (DOM). Understanding it is not so hard if you look at Photoshop itself. The main object in Photoshop’s DOM is the application. In the application, we have a collection of documents that are currently open in Photoshop.</p>
    <p>Each document contains elements — such as layers (called <code>ArtLayers</code>), groups of layers (<code>LayerSets</code>), channels, history states and so on — just like in a regular PSD document.</p>
    <p>A simplified visualization of Photoshop’s DOM is below. A more detailed containment hierarchy can be found on page 12 of “<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/Photoshop-CS6-Scripting-Guide.pdf" rel="nofollow external" class="bo">Adobe Photoshop CS6 Scripting Guide</a>” (PDF).</p>
    <p><img alt="Simplified visualization of Photoshop API" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/DOM_mini.png" style="max-width: 100%; height: auto;"><br>
    <em>A simplified visualization of Photoshop’s DOM.</em></p>
    <p>Each of these objects has its own properties and methods that you can work with. For example, to change the opacity of the selected layer in a document, you would go to <code>Application → Document → Layer → Opacity</code> and set the desired value. The code would look like this:</p>
    <pre><code>app.activeDocument.activeLayer.opacity = 50;&#x000A;    </code></pre>
    <p>As you may have guessed, <code>activeDocument</code> and <code>activeLayer</code> determine the currently selected document and layer.</p>
    <p>You can find descriptions of most objects and their properties and methods in “<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/Photoshop-CS6-JavaScript-Ref.pdf" rel="nofollow external" class="bo">Adobe Photoshop CS6 JavaScript Scripting Reference</a>” (PDF), or in ExtendedScript Toolkit by going to <code>Help → Object Model Viewer</code>.</p>
    <p>Let’s see how this works in a real-world example. In this next section, we’ll write our own script based on an action.</p>
    <h3>Remastering The RotateMe Action As A Script</h3>
    <p>A few years ago at Christmas time, I had an idea for an action to help me draw snowflakes.</p>
    <h4>Drawing Snowflake 101</h4>
    <ol>
    <li>Draw one stem of the snowflake with a pattern.
    <p><img alt="Step One" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/snowflake_step1_mini.png" style="max-width: 100%; height: auto;"></p>
    </li>
    <li>Duplicate the stem, and rotate it a few degrees.
    <p><img alt="Step Two" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/snowflake_step2_mini.png" style="max-width: 100%; height: auto;"></p>
    </li>
    <li>Repeat the second step until you have a full circle.
    <p><img alt="Step Three" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/snowflake_final_mini.png" style="max-width: 100%; height: auto;"></p>
    </li>
    </ol>
    <p>Duplicating and rotating each stem manually is tedious, so I came up with an <a href="http://blog.kam88.com/en/rotateme-photoshop-actions.html" rel="nofollow external" class="bo">action to automate it</a>. The algorithm looks like this:</p>
    <ol>
    <li>Duplicate the stem.</li>
    <li>Rotate it by however many degrees you’ve chosen, using the Transform tool.</li>
    <li>Duplicate the layer.</li>
    <li>Use the “Repeat Transform” function.</li>
    <li>Repeat steps 4 and 5 until you have a full circle.</li>
    </ol>
    <p>Pretty neat. But the action had a disadvantage: You can set only a certain number of stems for the snowflake, according to the number of degrees you set in third step of the algorithm.</p>
    <p>Back when I wasn’t familiar with scripting, I just made a few versions of the action, each of which produced a snowflake with a different number of stems.</p>
    <p>Today, <strong>we will remaster this action as a dynamic script</strong> that takes your input on the number of stems. Let’s get started!</p>
    <h4>Algorithm</h4>
    <p>When you start writing a script, defining the algorithm first before digging into the code itself is always a good idea. In our case, the algorithm will work like this:</p>
    <ol>
    <li>Ask the user to enter the number of stems.</li>
    <li>Calculate the rotation angle.</li>
    <li>Duplicate and rotate the layer by the number set in the first step.</li>
    </ol>
    <p>Let’s start with saving the current or selected layer to a variable for further use:</p>
    <pre><code>// Save selected layer to variable:&#x000A;    var originalStem = app.activeDocument.activeLayer;&#x000A;    </code></pre>
    <p>Note that in JavaScript, you can mark a line with double slashes (<code>//</code>) to make it a comment. Comments are used to describe parts of code for future reference and don’t affect the behavior of the script.</p>
    <p>Let’s move on to our algorithm now.</p>
    <h4>1. Ask User for Input</h4>
    <p>We can take input from the user with the <code>prompt(message, default value[, title])</code> function. This function shows a dialog box with the <code>message</code> and an input field that contains the <code>default value</code>. When the user hits “OK,” the function returns the inputted value; so, we have to save it to the variable to be able to be used.</p>
    <pre><code>// Ask user for input by showing prompt box and save inputted value to variable:&#x000A;    var stemsAmount = prompt("Processing \""+originalStem.name+"\"\nHow many stems do you need?", 12);&#x000A;    </code></pre>
    <p>Note that I used <code>originalStem.name</code> in the message, so the dialog box will show the name of selected layer.</p>
    <p>On Mac OS X, the first line of the message is in bold and functions as the title. So, our main message should be on the second line. To make a new line, type <code>\n</code>.</p>
    <p>In Windows, you can specify a third argument in the function to set the title:</p>
    <pre><code>// Ask user for input by showing prompt box and save inputted value to variable:&#x000A;    var stemsAmount = prompt("How many stems do you need?", 12, "Processing "+originalStem.name);&#x000A;    </code></pre>
    <p>If we run the code in Photoshop, it will show this dialog box:</p>
    <p><img alt="Prompt dialog" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_alert_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>When the user hits “OK,” the inputted value will be saved to the <code>stemsAmount</code> variable. If the user clicks “Cancel,” then the function will return a <code>null</code> value. We’ll use this later.</p>
    <h4>2. Calculate the Rotation Angle</h4>
    <p>To calculate the rotation angle, we have to divide 360 degrees (a full circle) by the number of stems:</p>
    <pre><code>// Calculate the rotation angle&#x000A;    var angle = 360 / stemsAmount;&#x000A;    </code></pre>
    <h4>3. Duplicate and Rotate</h4>
    <p>Now we have everything we need to make duplicates of our stem. To do this, we’ll use the <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for" rel="nofollow external" class="bo"><code>for</code></a> loop. It lets us repeatedly run lines of code as many times as we’d like. Our loop will look like this:</p>
    <pre><code>for(var i = 1; i &lt; stemsAmount; i++){&#x000A;    	// This code will run "stemAmount - 1" of times&#x000A;    };&#x000A;    </code></pre>
    <p>Note that the first instance of an object in programming has the value of <code>0</code>, but because our first layer is already on the canvas, we’re starting the loop from <code>1</code> instead.</p>
    <p>To duplicate and rotate our layer, we will use the <code>duplicate()</code> and <code>rotate(angle, AnchorPosition)</code> methods: the number of layers to be rotated in <code>angle</code> multiplied by the indexed number of duplicates. <code>AnchorPosition</code> determines the point around which the layer will rotate. You can see this point when you use the Transform tool in Photoshop — it looks like a small circle with a crosshair. In scripting, it has only 9 specified values — i.e. the 9 positions of the anchor point:</p>
    <p><img alt="AnchorPosition visualization" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/bottomcenter_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>In our case, it is the bottom center of the layer, <code>BOTTOMCENTER</code>. Photoshop uses a lot of other constants here and there in some of the functions, which you can find on page 197 of “<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/Photoshop-CS6-JavaScript-Ref.pdf" rel="nofollow external" class="bo">Adobe Photoshop CS6 JavaScript Reference</a>” (PDF).</p>
    <p>So, our loop will look like this:</p>
    <pre><code>// Duplicate and rotate layers:&#x000A;    for(var i = 1; i &lt; stemsAmount; i++){&#x000A;    	// Duplicate original layer and save it to the variable &#x000A;    	var newStem = originalStem.duplicate();&#x000A;    &#x000A;    	// Rotate new layer&#x000A;    	newStem.rotate(angle * i, AnchorPosition.BOTTOMCENTER);&#x000A;    };&#x000A;    </code></pre>
    <p>And the completed code will look like the following. You can try to run it.</p>
    <pre><code>// Save selected layer to variable:&#x000A;    var originalStem = app.activeDocument.activeLayer;&#x000A;    &#x000A;    // Ask user for input by showing prompt box and save inputted value to variable:&#x000A;    var stemsAmount = prompt("Processing \""+originalStem.name+"\"\nHow many stems do you need?", 12);&#x000A;    &#x000A;    // Calculate the rotation angle:&#x000A;    var angle = 360 / stemsAmount;&#x000A;    &#x000A;    // Duplicate and rotate layers:&#x000A;    for(var i = 1; i &lt; stemsAmount; i++){&#x000A;    	// Duplicate original layer and save it to the variable&#x000A;    	var newStem = originalStem.duplicate();&#x000A;    &#x000A;    	// Rotate new layer&#x000A;    	newStem.rotate(angle * i, AnchorPosition.BOTTOMCENTER); &#x000A;    };&#x000A;    </code></pre>
    <h4>Final Touches</h4>
    <p>I’ll usually try to achieve the main goal with a script, and when everything works correctly, I’ll start to refine the code. In our case, we have to make sure that the user inputs a valid number in the prompt box — i.e. a positive integer, greater than one.</p>
    <p>Also, to prevent Photoshop from going crazy, we will restrict the number of stems — let’s say, to 100. To do this, we will use a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while" rel="nofollow external" class="bo"><code>while</code></a> loop to show the user an error message in the event of an invalid submission, and the prompt box will continue to be shown until the user enters a valid value or hits the “Cancel” button (remember that the prompt returns <code>null</code> if the user hits “Cancel”).</p>
    <p>The new code looks like this:</p>
    <pre><code>// Save selected layer to variable:&#x000A;    var originalStem = app.activeDocument.activeLayer;&#x000A;    &#x000A;    // Ask user for input by showing prompt box and save inputted value to variable:&#x000A;    var stemsAmount = prompt ("Processing \""+originalStem.name+"\"\nHow many stems do you need? (From 2 to 100)", 12);&#x000A;    &#x000A;    // Check that user entered a valid number and, if invalid, show error message and ask for input again&#x000A;    while(isNaN(stemsAmount) || stemsAmount &lt;= 0 || stemsAmount &gt; 100){&#x000A;    	// If user clicks "Cancel" button, then exit loop&#x000A;    	if(stemsAmount == null) break;&#x000A;    &#x000A;    	// Show error message…&#x000A;    	alert("Please enter number in range from 2 to 100");&#x000A;    	// …and ask for input again&#x000A;    	stemsAmount = prompt("Processing \""+originalStem.name+"\"\nHow many stems do you need? (From 2 to 100)", 12);&#x000A;    };&#x000A;    &#x000A;    // Run the copying process&#x000A;    if(stemsAmount != null){ &#x000A;    	// Calculate the rotation angle&#x000A;    	var angle = 360 / parseInt(stemsAmount);&#x000A;    &#x000A;    	// Duplicate and rotate layers:&#x000A;    	for(var i = 1; i &lt; stemsAmount; i++){&#x000A;    		// Duplicate original layer and save it to the variable&#x000A;    		var newStem = originalStem.duplicate();&#x000A;    &#x000A;    		// Rotate new layer&#x000A;    		newStem.rotate(angle * i, AnchorPosition.BOTTOMCENTER);&#x000A;    	};&#x000A;    };&#x000A;    </code></pre>
    <p>As you may have noticed, we’re using the <code>isNaN(value)</code> function, which returns <code>true</code> if <code>value</code> is “not a number” and <code>parseInt(value)</code> to convert the <code>value</code> to an integer when we calculate the rotation angle.</p>
    <p>The next thing we will do is manage the layers, renaming our new layers by adding an index to them. Also to make sure that we do not mess up document’s layers, let’s place our stems in a group.</p>
    <p>Renaming the layers is not a hard task. We will just use the <code>name</code> property of the layer and add an index number to it:</p>
    <pre><code>// Add index to new layers&#x000A;    newStem.name = originalStem.name + " " + (i+1);&#x000A;    </code></pre>
    <p>A group in Photoshop’s API is called a <code>LayerSet</code> and we can access all groups of the document by calling the <code>layerSets</code> property. To add a new group to a document, we have to call the <code>layerSets</code>’ method <code>add()</code>:</p>
    <pre><code>// Create a group for stems&#x000A;    var stemsGroup = app.activeDocument.layerSets.add();&#x000A;    	stemsGroup.name = originalStem.name + " ("+stemsAmount+" stems)";&#x000A;    </code></pre>
    <p>Then, to add a layer to the group, we will use the <code>move(relativeObject, ElementPlacement)</code> function. Note that the <code>move()</code> function moves a layer in the layer stack, not on the canvas. (You can move a layer on the canvas with the <code>translate(deltaX[, deltaY])</code> function.)</p>
    <p><code>ElementPlacement</code> is another constant, this one determining how we will place our layer relative to… well, <code>relativeObject</code>. In our case, we will use <code>ElementPlacement.INSIDE</code> to place the original layer inside a group:</p>
    <pre><code>// Place original layer in group&#x000A;    originalStem.move(stemsGroup, ElementPlacement.INSIDE);&#x000A;    </code></pre>
    <p>We will place each new copy of the layer at the bottom of all layers in the group using <code>ElementPlacement.PLACEATEND</code>. The result is all of our layers arranged in ascending order, the first layer at the top and the last at the bottom:</p>
    <pre><code>// Place new layer inside stems group&#x000A;    newStem.move(stemsGroup, ElementPlacement.PLACEATEND);&#x000A;    </code></pre>
    <p>You can read more about the <code>ElementPlacement</code> constant on page 202 of “<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/Photoshop-CS6-JavaScript-Ref.pdf" rel="nofollow external" class="bo">Adobe Photoshop CS6 JavaScript Reference</a>” (PDF).</p>
    <h3>Final Code</h3>
    <p>That’s it! <code>RotateMe.jsx</code> is done. Our final code looks like this:</p>
    <pre><code>&#x000A;    // Save selected layer to variable:&#x000A;    var originalStem = app.activeDocument.activeLayer;&#x000A;    &#x000A;    // Ask user for input by showing prompt box and save inputted value to variable:&#x000A;    var stemsAmount = prompt ("Processing \""+originalStem.name+"\"\nHow many stems do you need? (From 2 to 100)", 12);&#x000A;    &#x000A;    // Check that user entered a valid number and, if invalid, show error message and ask for input again&#x000A;    while(isNaN(stemsAmount) || stemsAmount &lt;= 0 || stemsAmount &gt; 100){&#x000A;    	// If user clicks "Cancel" button, then exit loop&#x000A;    	if(stemsAmount == null) break;&#x000A;    &#x000A;    	// Show error message…&#x000A;    	alert("Please enter number in range from 2 to 100");&#x000A;    	// …and ask for input again&#x000A;    	stemsAmount = prompt("Processing \""+originalStem.name+"\"\nHow many stems do you need? (From 2 to 100)", 12);&#x000A;    };&#x000A;    &#x000A;    // Run the copying process&#x000A;    if(stemsAmount != null){ &#x000A;    	// Calculate the rotation angle&#x000A;    	var angle = 360 / parseInt(stemsAmount);&#x000A;    &#x000A;    	// Create a group for stems&#x000A;    	var stemsGroup = app.activeDocument.layerSets.add();&#x000A;    		stemsGroup.name = originalStem.name + " ("+stemsAmount+" stems)";&#x000A;    	// Place original layer in group&#x000A;    	originalStem.move(stemsGroup, ElementPlacement.INSIDE);&#x000A;    &#x000A;    	// Duplicate and rotate layers:&#x000A;    	for(var i = 1; i &lt; stemsAmount; i++){&#x000A;    		// Duplicate original layer and save it to the variable&#x000A;    		var newStem = originalStem.duplicate();&#x000A;    &#x000A;    		// Rotate new layer&#x000A;    		newStem.rotate(angle * i, AnchorPosition.BOTTOMCENTER);&#x000A;    &#x000A;    		// Add index to new layers&#x000A;    		newStem.name = originalStem.name + " " + (i+1);&#x000A;    &#x000A;    		// Place new layer inside stems group&#x000A;    		newStem.move(stemsGroup, ElementPlacement.PLACEATEND);&#x000A;    	};&#x000A;    &#x000A;    	// Add index to the original layer&#x000A;    	originalStem.name += " 1";&#x000A;    };&#x000A;    </code></pre>
    <p>That wasn’t too hard, was it?</p>
    <p><img alt="Finish" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_finish_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>Now you can put it in the <code>Photoshop/Presets/Scripts/</code> folder and run it by going to <code>File → Scripts</code> in Photoshop. Using different shapes with different values can yield interesting results:</p>
    <p><img alt="" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_examples_mini.png" style="max-width: 100%; height: auto;"></p>
    <ul>
    <li>
    <a href="http://cl.ly/Q7jt/file" rel="nofollow external" class="bo">Download the source file</a> (RotateMe.jsx)</li>
    </ul>
    <h3>Conclusion</h3>
    <p>As you can see from the number of links in the resources section below, there’s much more to say about scripting than can fit in an introductory article. But I hope the little that we’ve described today piques your interest and shows how powerful and helpful scripting is.</p>
    <p><img alt="Community Power!" src="http://media.smashingmagazine.com/wp-content/uploads/2013/07/smashingpost_conclusion_mini.png" style="max-width: 100%; height: auto;"></p>
    <p>If you decide to dive into it, let’s learn together and share our experience. Ask your questions and share what you’ve done in the comments. If you are not a coder, consider leaving an idea for a script; maybe another reader will make it happen.</p>
    <p>Let’s make Photoshop more useful together!</p>
    <h4>Resources</h4>
    <p>I’m still learning about Photoshop scripts, too, and here are some resources that are helping me along the way:</p>
    <ul>
    <li>“<a href="http://www.adobe.com/devnet/photoshop/scripting.html" rel="nofollow external" class="bo">Adobe Photoshop Scripting</a>,” Adobe Developer Connection<br>
    All of the documentation and utilities for scripting.</li>
    <li>“<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/indesign/pdfs/Adobe_Intro_to_Scripting1.pdf" rel="nofollow external" class="bo">Adobe Introduction to Scripting</a>” (PDF), Adobe<br>
    Here are the basics on scripting for Adobe applications. The nice thing about scripting for Photoshop is that you can apply your knowledge to other Adobe products; you just need to learn the application’s DOM, and you’ll be ready to go.</li>
    <li>“<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/Photoshop-CS6-Scripting-Guide.pdf" rel="nofollow external" class="bo">Adobe Photoshop CS6 Scripting Guide</a>” (PDF), Adobe<br>
    In this introductory guide to scripting for Photoshop, you’ll find the basics on getting started with scripting.</li>
    <li>“<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/Photoshop-CS6-JavaScript-Ref.pdf" rel="nofollow external" class="bo">Photoshop CS6 JavaScript Reference</a>” (PDF), Adobe<br>
    This describes all of the objects and their functions and methods that you can use in scripting for Photoshop. This is one of the documents I use most when writing scripts.</li>
    <li>“<a href="https://developer.mozilla.org/en/docs/JavaScript" rel="nofollow external" class="bo">JavaScript</a>,” Mozilla Developer Network<br>
    Here are answers to all kinds of questions about general JavaScript functions and usage.</li>
    <li>“<a href="http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/indesign/pdfs/JavaScriptToolsGuide_CS5.pdf" rel="nofollow external" class="bo">JavaScript Tools Guide</a>” (PDF), Adobe<br>
    This has basic information about ExtendedScript Toolkit and some advanced techniques, such as file system access and ScriptUI and working with XML, sockets and more.</li>
    <li>
    <a href="http://ps-scripts.com/bb/index.php" rel="nofollow external" class="bo">PS-Scripts</a><br>
    An independent forum about scripting for Photoshop. I wasn’t able to sign up to participate in discussions (because of some kind of pre-moderation system), but it has plenty of answered questions and solved problems to discover.</li>
    <li>
    <a href="http://forums.adobe.com/community/photoshop/photoshop_scripting" rel="nofollow external" class="bo">Photoshop Scripting</a>, Adobe Community<br>
    Adobe’s official forum for Photoshop scripting has some good discussion on problems encountered by users.</li>
    </ul>
    <p><em>(al) (ea)</em></p>
    <hr>
    <p><small>© darkwark for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        Automation is useful in the work of every designer. It saves precious time on repetitive tasks and helps us solve certain problems more quickly and easily.   You can automate your workflow...</Summary>
<Website>http://www.smashingmagazine.com/2013/07/25/introduction-to-photoshop-scripting/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33140/guest@my.umbc.edu/449bbd1fadd91e9845debae6dfef5e33/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>developers-toolbox</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>process</Tag>
<Tag>sql</Tag>
<Tag>tools</Tag>
<Tag>visual-design</Tag>
<Tag>web</Tag>
<Tag>workflow</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, 25 Jul 2013 04:56:28 -0400</PostedAt>
<EditAt>Thu, 25 Jul 2013 04:56:28 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="33138" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33138">
<Title>Food Network Analysis Reveals Patterns Behind Chinese Regional Cuisines</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>The links between different regional cuisines in China become clear when recipes and ingredients are viewed as a kind of web, say computer scientists</p>
    <p><img src="https://www.technologyreview.com/sites/default/files/images/Chinese%20food.png" alt="" width="525" height="427" style="max-width: 100%; height: auto;"></p>
    </div>
]]>
</Body>
<Summary>The links between different regional cuisines in China become clear when recipes and ingredients are viewed as a kind of web, say computer scientists</Summary>
<Website>http://www.technologyreview.com/view/517401/food-network-analysis-reveals-patterns-behind-chinese-regional-cuisines/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33138/guest@my.umbc.edu/4fb52ae281ebd6c12be0c084fd235c04/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 25 Jul 2013 00:43:29 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="33133" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33133">
<Title>MS Defense: A. Korde, Radar Compressive Sensing for Noisy Signals, 7/24</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="" height="308" src="//www.csee.umbc.edu/wp-content/uploads/2013/07/rcs.jpg" width="700" style="max-width: 100%; height: auto;"></p>
    <p><span>MS Defense<br>
    	Computer Science and Electrical Engineering</span></p>
    <p><strong><span>Detection Performance and Computational Complexity of<br>
    	Radar Compressive Sensing for Noisy Signals</span></strong></p>
    <p><span>Asmita Korde</span></p>
    <p><span>2:00-4:00 Wednesday, 24 July 2013, ITE 325</span></p>
    <p>In recent years, compressive sensing has received a lot of attention due to its ability to reducethe sampling bandwidth, yet reproduce a good reconstructed signal back. Compressivesensing is a new theory of sampling which allows the reconstruction of a sparse signal bysampling at a much lower rate than the Nyquist rate. This concept can be applied to severalimaging and detection techniques. In this thesis, we explore the use of compressive sensing for radar applications. By using this technique in radar, the use of matched filter can be eliminated and high rate sampling can be replaced with low rate sampling. We analyze compressive sensing in the context of radar by applying varying factors such as noise and different measurement matrices. Different reconstruction algorithms are compared by generating ROC curves to determine their detection performance, which in turn are also compared against a traditional radar system. Computational complexity and MATLAB run time are also measured for the different algorithms. We also propose an algorithm called simplified OMP, which works well in noisy environments and has a very low computational complexity.</p>
    <p>Committee: Professors Tinoosh Mohsenin (Chair), Joel Morris, Tulay Adali, and Mohamed Younis</p>
    </div>
]]>
</Body>
<Summary>MS Defense   Computer Science and Electrical Engineering   Detection Performance and Computational Complexity of   Radar Compressive Sensing for Noisy Signals   Asmita Korde   2:00-4:00 Wednesday,...</Summary>
<Website>http://www.csee.umbc.edu/2013/07/ms-defense-a-korde-radar-compressive-sensing-for-noisy-signals-724/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33133/guest@my.umbc.edu/4df12e1517a8df339ec5690886da46f3/api/pixel</TrackingUrl>
<Tag>defense</Tag>
<Tag>graduate</Tag>
<Tag>news</Tag>
<Tag>research</Tag>
<Tag>students</Tag>
<Tag>talks</Tag>
<Group token="csee">Computer Science and Electrical Engineering</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/csee</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/original.png?1314043393</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/large.png?1314043393</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/medium.png?1314043393</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/small.png?1314043393</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxsmall.png?1314043393</AvatarUrl>
<Sponsor>Computer Science and Electrical Engineering</Sponsor>
<PawCount>3</PawCount>
<CommentCount>1</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Wed, 24 Jul 2013 22:22:02 -0400</PostedAt>
<EditAt>Wed, 24 Jul 2013 22:22:02 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="33144" important="false" status="posted" url="https://my3.my.umbc.edu/posts/33144">
<Title>Bits: Google Debuts an Updated Nexus 7 Tablet</Title>
<Body>
<![CDATA[
    <div class="html-content">The Nexus 7, Google’s less expensive rival to the iPad Mini, is lighter and faster than the original and was introduced a day after Apple reported declining iPad sales.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F24%2Fgoogle-debuts-an-updated-nexus-7-tablet%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+Google+Debuts+an+Updated+Nexus+7+Tablet" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F24%2Fgoogle-debuts-an-updated-nexus-7-tablet%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+Google+Debuts+an+Updated+Nexus+7+Tablet" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F24%2Fgoogle-debuts-an-updated-nexus-7-tablet%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+Google+Debuts+an+Updated+Nexus+7+Tablet" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F24%2Fgoogle-debuts-an-updated-nexus-7-tablet%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+Google+Debuts+an+Updated+Nexus+7+Tablet" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F24%2Fgoogle-debuts-an-updated-nexus-7-tablet%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+Google+Debuts+an+Updated+Nexus+7+Tablet" 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 Nexus 7, Google’s less expensive rival to the iPad Mini, is lighter and faster than the original and was introduced a day after Apple reported declining iPad sales.     </Summary>
<Website>http://bits.blogs.nytimes.com/2013/07/24/google-debuts-an-updated-nexus-7-tablet/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/33144/guest@my.umbc.edu/37eb408ee469773949afd1c233239ac1/api/pixel</TrackingUrl>
<Tag>computers-and-the-internet</Tag>
<Tag>devices</Tag>
<Tag>google-inc</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>mobile</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>Wed, 24 Jul 2013 21:27:15 -0400</PostedAt>
<EditAt>Wed, 24 Jul 2013 21:27:15 -0400</EditAt>
</NewsItem>

</News>
