<?xml version="1.0"?>
<News hasArchived="true" page="7708" pageCount="10781" pageSize="10" timestamp="Tue, 01 Sep 2026 06:50:31 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=7708&amp;range=30">
<NewsItem contentIssues="true" id="42505" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42505">
<Title>Bits Blog: U.S. May Quit Giving Aid for Outdated Technology</Title>
<Body>
<![CDATA[
    <div class="html-content">Tom Wheeler, chairman of the F.C.C., said Monday that the commission is considering ways to better prioritize the fund, created through a tax on long-distance services.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F17%2Funiversal-service-fund-could-stop-paying-for-some-services%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+U.S.+May+Quit+Giving+Aid+for+Outdated+Technology" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F17%2Funiversal-service-fund-could-stop-paying-for-some-services%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+U.S.+May+Quit+Giving+Aid+for+Outdated+Technology" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F17%2Funiversal-service-fund-could-stop-paying-for-some-services%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+U.S.+May+Quit+Giving+Aid+for+Outdated+Technology" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F17%2Funiversal-service-fund-could-stop-paying-for-some-services%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+U.S.+May+Quit+Giving+Aid+for+Outdated+Technology" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F03%2F17%2Funiversal-service-fund-could-stop-paying-for-some-services%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+U.S.+May+Quit+Giving+Aid+for+Outdated+Technology" 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/191801611177/u/0/f/640387/c/34625/s/38489ea5/sc/36/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801611177/u/0/f/640387/c/34625/s/38489ea5/sc/36/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801611177/u/0/f/640387/c/34625/s/38489ea5/sc/36/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801611177/u/0/f/640387/c/34625/s/38489ea5/sc/36/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801611177/u/0/f/640387/c/34625/s/38489ea5/sc/36/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801611177/u/0/f/640387/c/34625/s/38489ea5/sc/36/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801611177/u/0/f/640387/c/34625/s/38489ea5/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801611177/u/0/f/640387/c/34625/s/38489ea5/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Tom Wheeler, chairman of the F.C.C., said Monday that the commission is considering ways to better prioritize the fund, created through a tax on long-distance services.      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38489ea5/sc/36/l/0Lbits0Bblogs0Bnytimes0N0C20A140C0A30C170Cuniversal0Eservice0Efund0Ecould0Estop0Epaying0Efor0Esome0Eservices0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42505/guest@my.umbc.edu/4e1f3de723b6f02a7c3824084f297172/api/pixel</TrackingUrl>
<Tag>federal-communications-commission</Tag>
<Tag>new</Tag>
<Tag>policy</Tag>
<Tag>technology</Tag>
<Tag>universal-service-fund</Tag>
<Tag>wheeler-thomas-e</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>Mon, 17 Mar 2014 13:22:48 -0400</PostedAt>
<EditAt>Mon, 17 Mar 2014 19:34:06 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="42502" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42502">
<Title>Evening classes are cancelled tonight due to inclement weather. Please call our...</Title>
<Body>
<![CDATA[
    <div class="html-content">Evening classes are cancelled tonight due to inclement weather. Please call our main line with any questions.</div>
]]>
</Body>
<Summary>Evening classes are cancelled tonight due to inclement weather. Please call our main line with any questions.</Summary>
<Website>http://www.facebook.com/umbctraining/posts/10151909966291076</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42502/guest@my.umbc.edu/064871a63b2b387958ebd20ab0735293/api/pixel</TrackingUrl>
<Tag>ccna</Tag>
<Tag>ceh</Tag>
<Tag>centers</Tag>
<Tag>cisco</Tag>
<Tag>cyber</Tag>
<Tag>cybersecurity</Tag>
<Tag>information</Tag>
<Tag>it</Tag>
<Tag>leadership</Tag>
<Tag>management</Tag>
<Tag>microsoft</Tag>
<Tag>project</Tag>
<Tag>security</Tag>
<Tag>technology</Tag>
<Tag>training</Tag>
<Tag>umbc</Tag>
<Group token="retired-575">UMBC Training Centers</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-575</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xsmall.png?1361981335</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/original.jpg?1361981335</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xxlarge.png?1361981335</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xlarge.png?1361981335</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/large.png?1361981335</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/medium.png?1361981335</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/small.png?1361981335</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xsmall.png?1361981335</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xxsmall.png?1361981335</AvatarUrl>
<Sponsor>UMBC Training Centers</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 17 Mar 2014 12:12:22 -0400</PostedAt>
<EditAt>Mon, 17 Mar 2014 12:12:22 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42503" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42503">
<Title>On CodeKit 2.0</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><em>The following is a guest post by Bryan Jones, the creator of CodeKit. I've been using CodeKit for a couple of years now and I've <a href="http://css-tricks.com/video-screencasts/111-get-yourself-preprocessing-in-just-a-few-minutes/" rel="nofollow external" class="bo">talked about it plenty</a>. In my opinion it changed the game in front end development making it easy to use advanced tools that, while powerful, felt out of reach for many. Now CodeKit 2.0 it out, which has followed the landscape of front end development, bringing us more powerful tools that are tough to pull off otherwise. Bryan is going to introduce it, and I'll interject here and there to share my thoughts as I've been using 2.0 the last month or so.</em></p>
    <p></p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/03/codekit-hero.png" alt="" style="max-width: 100%; height: auto;">
    <h3>What is CodeKit?</h3>
    <p>CodeKit is an app that helps you build websites faster. It compiles all the cutting-edge languages like Sass, Less, Stylus and CoffeeScript. It live-refreshes your browsers. It combines, minifies and syntax-checks JavaScript. It even optimizes images. All stuff that speeds up both your website and your workflow.</p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/03/codekit-images.png" alt="" style="max-width: 100%; height: auto;">
    <p>There are other ways to do these things, but CodeKit's mission is to take the pain out of the process. You drop your project folder onto the app and get to work. No JSON files to edit, nothing to install or download. No commands to memorize. It just works.</p>
    <h3>What's New in 2.0?</h3>
    <p>For starters I hired a designer (<a href="http://guymeyer.com" rel="nofollow external" class="bo">Guy Meyer</a>) so the UI no longer looks like it was repeatedly beaten with a DOS 5.1 manual. The new version is also 1,400% faster thanks to a bunch of optimizations and works a lot better in team environments.</p>
    <p>But what you really care about is how it can make <em>you</em> faster. So instead of listing every new feature, here's the top four that will make a difference right away:</p>
    <h3>1. Refresh Every Browser</h3>
    <p>Your website has to look good on lots of devices. You pull it up on an iPhone, an iPad, a Galaxy S3, Chrome, Firefox and even IE 11 on a PC. That's a lot of refresh buttons to click. CodeKit can do that for you.</p>
    <p>CodeKit will now live-refresh all of these devices and more. Make a change to your code and a split-second later, every device updates to show those changes. No plugins, no complex configurations. It works even with advanced sites like WordPress and Drupal. Just click the <em>Preview</em> button in CodeKit and then copy the URL to your other devices. Once you see this in action, you won't work without it ever again.</p>
    <p><em>Note from Chris: Not only does the page literally refresh when you change something like a template or JavaScript file, the page will do <a href="http://css-tricks.com/style-injection-is-for-winners/" rel="nofollow external" class="bo">style injection</a> for CSS changes (whether they came from a preprocessor or not). Meaning designing for interactive states is a lot easier.</em></p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/03/Screen-Shot-2014-03-17-at-10.14.15-AM.png" alt="" style="max-width: 100%; height: auto;">
    <p><em>CodeKit 1 could do style injection too, but now CodeKit has it's own server built-in (which can forward to MAMP or anything else if you prefer) meaning that literally any browser gets the refreshing and style injection.</em></p>
    <h3>2. Bower</h3>
    <p><a href="http://bower.io" rel="nofollow external" class="bo">Bower</a> lets you quickly install over 7,000 components: jQuery, Modernizr, Bootstrap, even WordPress. Bower is now built-in to CodeKit, so all those resources are just two clicks away. Open the <em>Assets</em> area, select the components you want and click the <em>cloud</em> icon. CodeKit grabs the latest versions from the web, along with any required dependencies, and puts them right in your project.</p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/03/codekit-bower.png" alt="" style="max-width: 100%; height: auto;">
    <p>CodeKit also saves you a ton of work when it's time to update components. Just open the <em>Assets</em> area and choose the <em>Installed</em> tab. It'll show you the version of each component in your project and what the latest one available online is. Update them all with a single click, or pick and choose.</p>
    <p><em>Note from Chris: while I haven't had a chance to use Bower a bunch yet, keeping front end dependencies up to date is the #1 reason I want to.</em></p>
    <h3>3. Autoprefixer</h3>
    <p>Vendor prefixes: the CSS rules that only an IE6 Engineer could love. <a href="https://github.com/ai/autoprefixer" rel="nofollow external" class="bo">Autoprefixer</a> makes them painless and it's now built-in to CodeKit. You just write standard CSS and Autoprefixer adds all the necessary vendor prefixes based on the latest information about each browser. It works seamlessly with Less, Sass and Stylus. It's also totally configurable: just specify which browsers you need to support and it does the rest.</p>
    <p><em>Note from Chris: I think Autoprefixer is almost as big of a game changer as CodeKit itself, and they are a perfect match for each other. While I'm still a big fan of preprocessors, I'm no longer a fan of using them for prefixing. Autoprefixer is a much better way to handle it. You can <a href="http://css-tricks.com/autoprefixer/" rel="nofollow external" class="bo">learn more about it from it's creator here</a>.<br>
    </em></p>
    <h3>4. Libsass</h3>
    <p>You're reading CSS-Tricks, so you probably write Sass. It takes a few seconds to compile, right? Not anymore. Flip on <a href="http://libsass.org" rel="nofollow external" class="bo">Libsass</a> in CodeKit and your Sass compiles <em>instantly</em>. Libsass is a new Sass compiler written in C instead of Ruby, so it's like Justin-Beiber-tanking-his-billion-dollar-singing-career fast.</p>
    <p>Now, Libsass <em>is</em> a beta, and some advanced Sass features (like namespaces and the new 3.3 syntax additions) aren't supported yet. But Libsass is advancing rapidly and the goal is to reach complete parity by this summer. Unless you're doing really complex stuff, you can probably use it today and drastically speed up your work. (We used it on CodeKit's site and that one has some really bleeding-edge CSS going on.)</p>
    <p><em>Note from Chris: While Bryan correctly joked I <a href="http://css-tricks.com/sass-vs-less/" rel="nofollow external" class="bo">prefer Sass</a>, I don't care tremendously much what you use, because there are things that are very likeable about all the CSS preprocessors. One of the few strikes against Sass is that it's slow to compile compared to the JavaScript-based preprocessors. Libsass makes Sass the fastest as well, so that's pretty awesome (if you can use it).</em></p>
    <h3>More Cool Stuff</h3>
    <p>OK, I lied. There's way too many new features to stop at just four. Here's four more features you'll love:</p>
    <h4>Source Maps</h4>
    <p>CodeKit can create source maps for Sass, Less, CoffeeScript, JavaScript and TypeScript files. (By the way, CodeKit compiles TypeScript now.) Source maps let you see your original source code in the browser's web inspector instead of the compiled output, which makes debugging easy.</p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/03/sourcemaps.png" alt="" style="max-width: 100%; height: auto;">
    <h4>Zurb Foundation</h4>
    <p>There's now a "New Zurb Foundation Project" command that pulls down the latest version of <a href="http://foundation.zurb.com" rel="nofollow external" class="bo">Zurb Foundation</a> from the web and sets it up automatically. This was a <em>really</em> common feature request.</p>
    <h4>Hooks</h4>
    <p>Need to run a custom AppleScript or Bash script when files in your project change? Maybe tell Transmit or Coda to sync to a remote server? Gzip some files? No problem. Just set up a Hook and CodeKit will run whatever you need.</p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/03/codekit-hooks.png" alt="" style="max-width: 100%; height: auto;">
    <p><em>Note from Chris: It would be interesting to see it run Grunt or Gulp. Part of the beauty of Grunt is there are a zillion things it can do - things that can be super specific and probably aren't a good fit for a core CodeKit feature (e.g. the SVG stuff <a href="http://css-tricks.com/svg-sprites-use-better-icon-fonts/" rel="nofollow external" class="bo">I described here</a>). I'm not sure if mixing multiple build tools is a good idea or not, but it's worth thinking about.</em></p>
    <h4>CoffeeScript Love</h4>
    <p>If you write CoffeeScript, CodeKit has two new features you'll like. First, you can now prepend JavaScript files (like jQuery) directly to your CoffeeScript files. Do it with a drag-and-drop in the app, or an in-file statement. Either way, CodeKit combines it all into one minified JavaScript file.</p>
    <p>Secondly, <a href="http://www.coffeelint.org" rel="nofollow external" class="bo">CoffeeLint</a> is built-in now, so you can syntax-check your CoffeeScript files before they ever compile. This is also handy for enforcing particular styles, like how many spaces a line should be indented.</p>
    <h3>What's Next?</h3>
    <p>The short answer is, "Whatever Chris Coyier asks for." The long answer is that I completely overhauled CodeKit's architecture so that adding new features no longer requires major surgery. I plan to move quickly and keep iterating. Jekyll support is at the top of my list. Scaffolding and templates are up there too. HTML minifiers. If-else and loops in the <a href="http://incident57.com/codekit/help.html#kit" rel="nofollow external" class="bo">Kit</a> language. As Tim Cook would say, "We have some exciting products in the pipeline."</p>
    <h3>Get In Touch!</h3>
    <p>I love hearing from people in the industry, even if they don't use CodeKit. (Grunt FTW!) Come have a look at our <a href="http://incident57.com/codekit" rel="nofollow external" class="bo">new website</a>. I can't take credit; <a href="http://guymeyer.com" rel="nofollow external" class="bo">Guy Meyer</a> designed and built it, but we'd really like to hear what you think, one professional to another. You can find me on Twitter: <a href="http://twitter.com/bdkjones" rel="nofollow external" class="bo">@bdkjones</a></p>
    <hr>
    <p><small><a href="http://css-tricks.com/codekit-2-0/" rel="nofollow external" class="bo">On CodeKit 2.0</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>The following is a guest post by Bryan Jones, the creator of CodeKit. I've been using CodeKit for a couple of years now and I've talked about it plenty. In my opinion it changed the game in front...</Summary>
<Website>http://css-tricks.com/codekit-2-0/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42503/guest@my.umbc.edu/a87b2544d5632464b825053943f6bcd6/api/pixel</TrackingUrl>
<Tag>article</Tag>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 17 Mar 2014 12:00:49 -0400</PostedAt>
<EditAt>Mon, 17 Mar 2014 12:00:49 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42504" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42504">
<Title>Q&amp;A: Measuring the Facebook Cover Photo</Title>
<Body>
<![CDATA[
    <div class="html-content">Plus, how to share iTunes files between computers.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F20%2Ftechnology%2Fpersonaltech%2Fmeasuring-the-facebook-cover-photo.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Measuring+the+Facebook+Cover+Photo" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F20%2Ftechnology%2Fpersonaltech%2Fmeasuring-the-facebook-cover-photo.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Measuring+the+Facebook+Cover+Photo" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F20%2Ftechnology%2Fpersonaltech%2Fmeasuring-the-facebook-cover-photo.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Measuring+the+Facebook+Cover+Photo" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F20%2Ftechnology%2Fpersonaltech%2Fmeasuring-the-facebook-cover-photo.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Measuring+the+Facebook+Cover+Photo" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F20%2Ftechnology%2Fpersonaltech%2Fmeasuring-the-facebook-cover-photo.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Q%26A%3A+Measuring+the+Facebook+Cover+Photo" 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/191801410301/u/0/f/640387/c/34625/s/38479019/sc/4/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801410301/u/0/f/640387/c/34625/s/38479019/sc/4/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801410301/u/0/f/640387/c/34625/s/38479019/sc/4/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801410301/u/0/f/640387/c/34625/s/38479019/sc/4/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801410301/u/0/f/640387/c/34625/s/38479019/sc/4/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801410301/u/0/f/640387/c/34625/s/38479019/sc/4/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801410301/u/0/f/640387/c/34625/s/38479019/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801410301/u/0/f/640387/c/34625/s/38479019/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Plus, how to share iTunes files between computers.      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38479019/sc/4/l/0L0Snytimes0N0C20A140C0A30C20A0Ctechnology0Cpersonaltech0Cmeasuring0Ethe0Efacebook0Ecover0Ephoto0Bhtml0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42504/guest@my.umbc.edu/cc8451cd6a997a972bd327659a78c704/api/pixel</TrackingUrl>
<Tag>apple-inc-aapl-nasdaq</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>facebook-inc-fb-nasdaq</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>itunes</Tag>
<Tag>microsoft-corporation-msft-nasdaq</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>Mon, 17 Mar 2014 11:58:38 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42496" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42496">
<Title>Revisiting JavaScript Minification</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Lately I've been seeing that many developers are not minifying their JavaScript code. This process of minification, reduces the size of the HTTP request for your JavaScript, improving your website's performance. So, let's revisit minifying your JavaScript.</p>
    
    <div class="embed-container"><iframe src="//www.youtube.com/embed/36EAdpeXxvU" frameborder="0" webkitallowfullscreen="webkitAllowFullScreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowFullScreen">[Video]</iframe></div>
    
    <h2>In Closing</h2>
    <p>Hopefully this quick screencast on minifying your JavaScript has helped you out. Remember, performance is very important, we want to have our websites running at their best. Thanks for watching.</p>
    </div>
]]>
</Body>
<Summary>Lately I've been seeing that many developers are not minifying their JavaScript code. This process of minification, reduces the size of the HTTP request for your JavaScript, improving your...</Summary>
<Website>http://code.tutsplus.com/tutorials/revisiting-javascript-minification--cms-20072</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42496/guest@my.umbc.edu/20abd9a003fc606b8e057b217f27f21c/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 17 Mar 2014 11:00:13 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="42495" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42495">
<Title>Fluidity</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>It's a fun little soundbite to talk about how the web is responsive right out of the box. With no authored CSS at all, a website will flow to whatever screen width is available. If your site isn't responsive, <em>you</em> broke it.</p>
    <p>Well that's almost true, but as Adam Morse says in this new project:</p>
    <blockquote><p>HTML is <strong>almost</strong> 100% responsive out of the box. These 115 bytes of css fix the 'almost' part.</p></blockquote>
    <p>Things like images and tables can have a set widths that would force a layout wider than a viewport. And of course, <a href="http://css-tricks.com/snippets/html/responsive-meta-tag/" rel="nofollow external" class="bo">the meta tag</a>. </p>
    <p>And look at that TLD!</p>
    <p><a href="http://fluidity.sexy/" title="Direct link to featured article" rel="nofollow external" class="bo">Direct Link to Article</a> — <a href="http://css-tricks.com/fluidity/" rel="nofollow external" class="bo">Permalink</a></p>
    <hr>
    <p><small><a href="http://css-tricks.com/fluidity/" rel="nofollow external" class="bo">Fluidity</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>It's a fun little soundbite to talk about how the web is responsive right out of the box. With no authored CSS at all, a website will flow to whatever screen width is available. If your site isn't...</Summary>
<Website>http://fluidity.sexy/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42495/guest@my.umbc.edu/836cb6a40b4a5c3a41fc7327d7dc00a3/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>link</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 17 Mar 2014 10:16:52 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42501" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42501">
<Title>Alumni Take Flight with Robo Raven III</Title>
<Body>
<![CDATA[
    <div class="html-content">Man has long envied the avian ability of flight. Wings offer the opportunity for flight, yes, but also for exploration and a different point of view. Now, three UMBC alumni are working to borrow that vantage point through the Robo … <a href="http://umbcalumni.wordpress.com/2014/03/17/alumni-take-flight-with-robo-raven-iii/" rel="nofollow external" class="bo">Continue reading <span>→</span></a>
    </div>
]]>
</Body>
<Summary>Man has long envied the avian ability of flight. Wings offer the opportunity for flight, yes, but also for exploration and a different point of view. Now, three UMBC alumni are working to borrow...</Summary>
<Website>http://umbcalumni.wordpress.com/2014/03/17/alumni-take-flight-with-robo-raven-iii/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42501/guest@my.umbc.edu/69aec3f034685bb962ec9d038e38ddc9/api/pixel</TrackingUrl>
<Tag>10s-alums</Tag>
<Tag>alex-holness</Tag>
<Tag>ariel-perez-rosado</Tag>
<Tag>graduate-school</Tag>
<Tag>luke-roberts</Tag>
<Tag>math-and-sciences</Tag>
<Tag>meyerhoff-scholars</Tag>
<Tag>micro-aerial-vehicle</Tag>
<Tag>robo-raven</Tag>
<Tag>robotic-bird</Tag>
<Tag>robotics</Tag>
<Tag>umbc-alumni</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Tag>university-of-maryland-college-park</Tag>
<Group token="retired-20">UMBC Alumni</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-20</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xsmall.png?1280681147</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/original.png?1280681147</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xxlarge.png?1280681147</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xlarge.png?1280681147</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/large.png?1280681147</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/medium.png?1280681147</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/small.png?1280681147</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xsmall.png?1280681147</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xxsmall.png?1280681147</AvatarUrl>
<Sponsor>UMBC Alumni</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 17 Mar 2014 10:14:42 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="106843" important="false" status="posted" url="https://my3.my.umbc.edu/posts/106843">
<Title>Alumni Take Flight with Robo Raven III</Title>
<Body>
<![CDATA[
    <div class="html-content">Man has long envied the avian ability of flight. Wings offer the opportunity for flight, yes, but also for exploration …</div>
]]>
</Body>
<Summary>Man has long envied the avian ability of flight. Wings offer the opportunity for flight, yes, but also for exploration …</Summary>
<Website>https://magazine.umbc.edu/alumni-take-flight-with-robo-raven-iii/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/106843/guest@my.umbc.edu/d1e9e94d4800f0ace28838635c315fe7/api/pixel</TrackingUrl>
<Tag>alex-holness</Tag>
<Tag>alumni</Tag>
<Tag>ariel-perez-rosado</Tag>
<Tag>graduate-school</Tag>
<Tag>luke-roberts</Tag>
<Tag>meyerhoff-scholars</Tag>
<Tag>micro-aerial-vehicle</Tag>
<Tag>robo-raven</Tag>
<Tag>robotic-bird</Tag>
<Tag>robotics</Tag>
<Tag>umbc-alumni</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Tag>university-of-maryland-college-park</Tag>
<Group token="retired-1945">UMBC Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-1945</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/images/avatars/group/8/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/images/avatars/group/8/original.png?1787842820</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/images/avatars/group/8/xxlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/images/avatars/group/8/xlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/images/avatars/group/8/large.png?1787842820</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/images/avatars/group/8/medium.png?1787842820</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/images/avatars/group/8/small.png?1787842820</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/images/avatars/group/8/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/images/avatars/group/8/xxsmall.png?1787842820</AvatarUrl>
<Sponsor>UMBC Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 17 Mar 2014 10:14:42 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42497" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42497">
<Title>Putative Bitcoin Founder Categorically Denies It</Title>
<Body>
<![CDATA[
    <div class="html-content">Dorian Nakamoto appeared to be laying the groundwork for a lawsuit against Newsweek, saying its article had harmed him. He stopped short of saying he would sue.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F18%2Fbusiness%2Fmedia%2Fman-named-by-newsweek-issues-denial-on-bitcoin-claim.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Putative+Bitcoin+Founder+Categorically+Denies+It" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F18%2Fbusiness%2Fmedia%2Fman-named-by-newsweek-issues-denial-on-bitcoin-claim.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Putative+Bitcoin+Founder+Categorically+Denies+It" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F18%2Fbusiness%2Fmedia%2Fman-named-by-newsweek-issues-denial-on-bitcoin-claim.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Putative+Bitcoin+Founder+Categorically+Denies+It" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F18%2Fbusiness%2Fmedia%2Fman-named-by-newsweek-issues-denial-on-bitcoin-claim.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Putative+Bitcoin+Founder+Categorically+Denies+It" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F03%2F18%2Fbusiness%2Fmedia%2Fman-named-by-newsweek-issues-denial-on-bitcoin-claim.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Putative+Bitcoin+Founder+Categorically+Denies+It" 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/191801498374/u/0/f/640387/c/34625/s/38463e5f/sc/21/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801498374/u/0/f/640387/c/34625/s/38463e5f/sc/21/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801498374/u/0/f/640387/c/34625/s/38463e5f/sc/21/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801498374/u/0/f/640387/c/34625/s/38463e5f/sc/21/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801498374/u/0/f/640387/c/34625/s/38463e5f/sc/21/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801498374/u/0/f/640387/c/34625/s/38463e5f/sc/21/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801498374/u/0/f/640387/c/34625/s/38463e5f/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801498374/u/0/f/640387/c/34625/s/38463e5f/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Dorian Nakamoto appeared to be laying the groundwork for a lawsuit against Newsweek, saying its article had harmed him. He stopped short of saying he would sue.      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38463e5f/sc/21/l/0L0Snytimes0N0C20A140C0A30C180Cbusiness0Cmedia0Cman0Enamed0Eby0Enewsweek0Eissues0Edenial0Eon0Ebitcoin0Eclaim0Bhtml0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42497/guest@my.umbc.edu/9264242be598f7f1695260c19d0936b3/api/pixel</TrackingUrl>
<Tag>bitcoin-currency</Tag>
<Tag>nakamoto-dorian-satoshi</Tag>
<Tag>new</Tag>
<Tag>newsweek</Tag>
<Tag>suits-and-litigation-civil</Tag>
<Tag>technology</Tag>
<Tag>twitter-twtr-nyse</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 17 Mar 2014 10:04:05 -0400</PostedAt>
<EditAt>Mon, 17 Mar 2014 20:30:42 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42500" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42500">
<Title>Getting Your App Ready For iOS 7&#8242;s New Dynamic Interactions</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>There’s no need to bust out a physics textbook to make your iOS 7 app’s views animate like real-world objects. With iOS 7’s new Dynamics API, views can be influenced by gravity, attached to each other with springs, and bounced up against boundaries and each other.</p>
    <p>Physics engines are no stranger to game designers. Whether it’s the perfect gravity-induced parabolas of Angry Birds or the swinging candy in Cut the Rope, we’re used to objects in games feeling real. To get this effect, <strong>game designers don’t write code to set the position of each object manually</strong>. Instead, they use a physics engine that treats the elements as bodies in a simulation and that uses Newton’s laws of motion to calculate how they move over time.</p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/03/angry-birds-opt.jpg" alt="Angry Birds screenshot" width="500" style="max-width: 100%; height: auto;"><br><em>The birds travel along a trajectory determined by physics (<a href="http://www.angrybirds.com/" rel="nofollow external" class="bo">Image credits</a>).</em></p>
    <p>In using the engine, designers specify an object’s bounciness, its density, the level of gravity, and how things are attached to each other. In iOS 7, Apple made that technology available to UIKit-based apps as well. With these new UIKit features, we can <strong>integrate dynamic behavior</strong> without having to learn how to program a game engine. If you use them carefully, your UX will be more immersive and intuitive because users will interact with it as they would with objects in the real world.</p>
    <h3>Where Would You Use This?</h3>
    <p>If you are looking for places in your app to upgrade to feel more iOS 7-native, any animation is a candidate. You can see it all over the built-in apps, which will give you some ideas. I’d look anywhere that you’re already using several parallel animations with overlapping timelines and timed triggers to start other ones. Are you trying to do something that the Dynamics system would do for you automatically?</p>
    <p>Another great candidate is anywhere you are using pan gestures to manipulate views, particularly with screen transitions. Play around with the camera icon on your phone’s lock screen to see an example. Tapping it will create an impulse force from the bottom, which gravity eventually overcomes. Dragging it up and dropping it shows how the view has an elastic bottom that bounces against the phone’s edge. You can even give the view an initial velocity by slamming it down.</p>
    <h4>See It in Action</h4>
    <p>I’ve put together a simple <a href="http://loufranco.com/smashing-magazine-example-of-uidynamics" rel="nofollow external" class="bo">video demo of Dynamics</a> to show how you can use it for view transitions. The first part of the video shows what you could do easily in iOS 6 and below. It simply attaches a pan gesture to the view and uses its <code>y-translation</code> to set the center of the view. This <strong>gives the illusion that you are directly moving it</strong>. Then, when you end the pan gesture by lifting your finger, it triggers a Core Animation that returns the center to its starting position. This automatically slides the view down as if it’s falling.</p>
    <p><a href="http://loufranco.com/smashing-magazine-example-of-uidynamics" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2014/03/ios7-dynamics-opt.jpg" alt="Sample Video of Dynamics in action" width="500" style="max-width: 100%; height: auto;"></a><br><em><a rel="nofollow external" class="bo">Video demo</a> of <code>UIDynamics</code> in action.</em></p>
    <p>The second part is similar but is done with the Dynamics physics engine. We’re still making a pan gesture, but we attach it to the view with a spring. Then, we make the bottom of the screen a solid barrier to collide against and add gravity. Now, when we grab the view, it follows our finger as before (but with a springy connection), and when we let go, the view falls with an acceleration determined by the gravity field. When it lands, it bounces. We can also throw the view by letting go while our finger is moving, and the velocity of our finger will be imparted to the view.</p>
    <p>You can get the project by cloning <a href="https://github.com/loufranco/DynamicUtility" rel="nofollow external" class="bo">DynamicUtility on GitHub</a>. If you don’t have Xcode, you can install it on your machine through the Mac App Store. In Xcode, open <code>DynamicUtility.xcodeproj</code>, and run it in the simulator (<code>Command + R</code>). If you have a developer account with Apple, the effect is even better on a phone.</p>
    <h3>Piecing It Together With Core Animation Before iOS 7</h3>
    <p>Core Animation is a powerful system, and you can absolutely get exactly the same results using it (with a lot of work). The advantage of the Dynamics system is that <strong>you are able to express what you want in terms of physical attributes</strong>, and layering more and more complex behavior and playing around with it are much easier. In an equivalent Core Animation set-up, the variables that govern the behavior aren’t as clear. Let’s look at a simple example.</p>
    <p>In the Xcode Utility Application template, we start with two views, the main and flip side of an application. Let’s add a way for the user to pan the main view up to get to the flip side view using gestures and Core Animation.</p>
    <p>To start, all we need to do is add a <code>pan</code> gesture to the storyboard and attach it to our view. Then, we can set up its <code>selector</code> action to send this message:</p>
    <pre><code>&#x000A;    - (IBAction)onPan:(UIPanGestureRecognizer*)pan {&#x000A;        static CGFloat startY;&#x000A;        CGPoint delta = [pan translationInView:self.view.superview];&#x000A;       &#x000A;        if (pan.state == UIGestureRecognizerStateBegan) {&#x000A;            startY = self.view.center.y;&#x000A;            [pan setTranslation:CGPointZero inView:pan.view.superview];&#x000A;        }&#x000A;        else if (pan.state == UIGestureRecognizerStateChanged) {&#x000A;            CGFloat newY = self.view.center.y + delta.y;&#x000A;           &#x000A;            // detect a collision with the bottom&#x000A;            if (newY &gt; startY) {&#x000A;                newY = startY;&#x000A;            }&#x000A;            // attach the pan to the view&#x000A;            self.view.center = CGPointMake(self.view.center.x, newY);&#x000A;           &#x000A;            [pan setTranslation:CGPointZero inView:pan.view.superview];&#x000A;        } else if (pan.state == UIGestureRecognizerStateEnded) {&#x000A;            // gravity?&#x000A;            [UIView animateWithDuration:.3 animations:^{&#x000A;                self.view.center = CGPointMake(self.view.center.x, startY);&#x000A;            }];&#x000A;        }&#x000A;    }&#x000A;    </code></pre>
    <p>This is a simple implementation of an interaction that enables you to drag a view that drops back into place when let go. The first comment shows where we stop the user from dragging it down below the screen’s edge. The second one shows how we’re attaching it to the finger. The final comment shows where we animate it back into place.</p>
    <p>This is a great start, but consider how you’d implement the following features:</p>
    <ol>
    <li>imparting your finger’s velocity to the view when you let it go,</li>
    <li>attaching the view to your finger with a spring,</li>
    <li>accelerating the drop based on a gravitational force,</li>
    <li>detecting collisions against the boundaries and bouncing the view against them.</li>
    </ol>
    <p>Even after you did this, changing the animation so that gravity is stronger, the springs are springier, and every variable is exactly right would leave you with a code mess, or, to paraphrase Philip Greenspun, you’d end up with a poorly specified, half-implemented physics engine. We can use the Dynamics system instead.</p>
    <h3>iOS 7’s New Dynamics System Makes This Much Easier</h3>
    <p>The Dynamics system enables us to define a complex system of behavior by combining a few simple concepts. Let’s use a few to recreate the sliding effect in a more lifelike way.</p>
    <h4>Setting It Up</h4>
    <p>The Dynamics system is made up of three basic parts. <code>UIDynamicAnimator</code> controls the whole system by running the physics simulation and moving and rotating the objects. Each body in the simulation is represented by <code>UIDynamicItem</code>, a protocol implemented by <code>UIView</code>. Finally, we specify what we want to happen by creating and adding <code>UIDynamicBehavior</code> objects to the animator.</p>
    <p>We’ll combine a few behaviors to get the effect we want:</p>
    <ul>
    <li>
    <code>UIAttachmentBehavior</code><br>This lets us attach items to each other or to an anchor point. The attachment may be either a stiff strut or springy.</li>
    <li>
    <code>UICollisionBehavior</code><br>This adds a boundary that contains the views. If we had more than one view, we could use this to make them bounce against each other.</li>
    <li>
    <code>UIGravityBehavior</code><br>This specifies a gravitational field. If a view isn’t attached to something and isn’t up against a boundary, then gravity will draw it down (or in whatever direction we want).</li>
    <li>
    <code>UIDynamicItemBehavior</code><br>This describes attributes of the item it’s attached to. It controls whether the item may be rotated, how elastic it is and how much it resists movement.</li>
    </ul>
    <p>To use the Dynamics system, we construct the behaviors we want and attach them to the items that they will affect. Then, we add them to the animator.</p>
    <h4>A Simple Gravity Demo</h4>
    <p>Let’s build a simple demo so that you get the hang of it before we jump into a view transition. First, you’ll need these properties in your header:</p>
    <pre><code>&#x000A;    @property (strong, nonatomic) UIView *body;&#x000A;    @property (strong, nonatomic) UIDynamicAnimator *gravityAnimator;&#x000A;    </code></pre>
    <p>Next, in your <code>viewDidLoad</code> message, add a call to this message:</p>
    <pre><code>&#x000A;    -(void)addBodyView&#x000A;    {&#x000A;      self.body = [[UIView alloc] initWithFrame:CGRectMake(155, 40, 10, 10)];&#x000A;      self.body.backgroundColor = [UIColor blackColor];&#x000A;      [self.view addSubview:self.body];&#x000A;    }&#x000A;    </code></pre>
    <p>This will put a black square at the top of the view. In your storyboard, add a “Demo Gravity” button, and connect it to this action:</p>
    <pre><code>&#x000A;    - (IBAction)onDemoGravity:(id)sender {&#x000A;      self.body.center = CGPointMake(160, 50);&#x000A;      self.gravityAnimator = [[UIDynamicAnimator alloc]&#x000A;        initWithReferenceView:self.view];&#x000A;      UIGravityBehavior *gravityBehavior = [[UIGravityBehavior alloc]&#x000A;        initWithItems:@[self.body]];&#x000A;      [self.gravityAnimator addBehavior:gravityBehavior];&#x000A;    }&#x000A;    </code></pre>
    <p>The first line repositions the view at the top. The second line creates the animator, with your view as its reference. The next two lines just say that the body view we added is affected by gravity. Now, run it in the simulator, and tap your “Demo Gravity” button. The black square will drop to the bottom of the screen (and then keep going).</p>
    <p>The Dynamics system also support collisions against objects and boundaries. A common boundary is the view that contains the animation (also called the reference view). To designate the reference view as a boundary, just add these three lines to the end of <code>onDemoGravity:</code></p>
    <pre><code>&#x000A;      UICollisionBehavior *viewIsBoundary = [[UICollisionBehavior alloc]&#x000A;        initWithItems:@[self.body]];&#x000A;      viewIsBoundary.translatesReferenceBoundsIntoBoundary = YES;&#x000A;      [self.gravityAnimator addBehavior:viewIsBoundary];&#x000A;    </code></pre>
    <p>Now, when you run it, the box will bounce at the bottom of the view.</p>
    <p>Our next step is to see how to control the parameters of the animation. To do this, the Dynamics system has a special behavior named <code>UIDynamicItemBehavior</code>, which is a collection of attributes that affect a given item. Let’s alter the elasticity of the box so that it bounces higher. Just add these lines to <code>onDemoGravity:</code></p>
    <pre><code>&#x000A;      UIDynamicItemBehavior *itemBehavior = [[UIDynamicItemBehavior alloc]&#x000A;        initWithItems:@[self.body]];&#x000A;      itemBehavior.elasticity = .8;&#x000A;      [self.gravityAnimator addBehavior:itemBehavior];&#x000A;    </code></pre>
    <p>The elasticity defaults to <code>0</code> and can be set to any number between <code>0</code> and <code>1</code>, where <code>1</code> represents complete elasticity — and a very long animation if we had used it in this case.</p>
    <p>If you want to get a feel for how realistic this simulation is, try rotating the body view with this line (right after you’ve set its center):</p>
    <pre><code>&#x000A;      self.body.transform = CGAffineTransformMakeRotation(M_PI/5.0);&#x000A;    </code></pre>
    <p>When you run this, you’ll see that the simulation takes shape into account as well and bounces the object off its edges, not just up and down.</p>
    <h4>Making A Custom Behavior</h4>
    <p>For our simple demo, creating the behaviors right in an action message was fine, but for real apps, this would get complex very quickly. One nice thing about <code>UIBehavior</code> is that you can create composite behaviors by inheriting an object from <code>UIDynamicBehavior</code> and then adding child behaviors inside of its <code>init</code> message. This lets us package a set of related behaviors in a reusable class. Let’s replace our original iOS 6 gesture-based animation with a dynamic one by creating a new behavior class named <code>LDUSlideBehavior</code>.</p>
    <p>Here’s a header file for our sliding behavior:</p>
    <pre><code>&#x000A;    #import &#x000A;    &#x000A;    @interface LDUSlideBehavior : UIDynamicBehavior&#x000A;    &#x000A;    -(instancetype) initWithItem:(UIView*) item;&#x000A;    &#x000A;    @property (strong, nonatomic) UIPanGestureRecognizer* pan;&#x000A;    @property (strong, nonatomic) UIAttachmentBehavior *attachment;&#x000A;    @property (strong, nonatomic) UIDynamicItemBehavior *behavior;&#x000A;    &#x000A;    @end&#x000A;    </code></pre>
    <p>Our <code>init</code> takes the view that we’re going to slide. It looks like this:</p>
    <pre><code>&#x000A;    -(instancetype) initWithItem:(UIView*)item&#x000A;    {&#x000A;        if (self = [super init]) {&#x000A;            // create a pan gesture&#x000A;            self.pan = [[UIPanGestureRecognizer alloc]&#x000A;               initWithTarget:self action:@selector(onPan:)];&#x000A;            [item addGestureRecognizer:self.pan];&#x000A;           &#x000A;            // attach the view to a spring&#x000A;            self.attachment = [[UIAttachmentBehavior alloc] initWithItem:item&#x000A;                attachedToAnchor:CGPointMake(item.center.x, item.center.y)];&#x000A;            self.attachment.damping = .1;&#x000A;            self.attachment.frequency = 5.0;&#x000A;           &#x000A;            // make a boundary&#x000A;            UICollisionBehavior * collision =&#x000A;               [[UICollisionBehavior alloc] initWithItems:@[item]];&#x000A;            [collision setTranslatesReferenceBoundsIntoBoundaryWithInsets:&#x000A;                UIEdgeInsetsMake(-item.superview.bounds.size.height, 0, 0, 0)];&#x000A;            collision.collisionMode = UICollisionBehaviorModeBoundaries;&#x000A;            [self addChildBehavior:collision];&#x000A;    &#x000A;            // add a gravitational field&#x000A;            UIGravityBehavior *gravity =&#x000A;               [[UIGravityBehavior alloc] initWithItems:@[item]];&#x000A;            [self addChildBehavior:gravity];&#x000A;           &#x000A;            // behavior parameters for the view&#x000A;            self.behavior = [[UIDynamicItemBehavior alloc] initWithItems:@[item]];&#x000A;            self.behavior.allowsRotation = NO;&#x000A;            self.behavior.elasticity = .4;&#x000A;            self.behavior.resistance = .7;&#x000A;            [self addChildBehavior:self.behavior];&#x000A;        }&#x000A;        return self;&#x000A;    }&#x000A;    </code></pre>
    <p>Breaking this down, we can see that all we’re doing is creating standard behaviors and adding them to our custom behavior. We don’t add <code>UIAttachmentBehavior</code> immediately because we want that to be active only when the pan gesture is active, so we’ll add and remove it in the <code>onPan:</code> message.</p>
    <p><code>UICollisionBehavior</code> uses insets on our parent’s bounds to set up a barrier around our simulation that has its top side set to be offset by the height of the view. The left, right and bottom boundaries are left in place, so that the view can slide up but not left, right or below the screen’s bounds.</p>
    <p>One thing to notice is that we’ve set <code>allowsRotation</code> to <code>NO</code>. Strictly speaking, this shouldn’t be necessary because all of our motion is vertical and confined to a view with 0 horizontal space and all of the view’s edges are perfectly flat. There is simply no room for the view to rotate. However, <code>UIDynamics</code> sometimes have floating point errors, and if you don’t do this, then the view will sometimes rotate as you drag it. It’s impossible in the real world, but, as we know, <strong>computers can only simulate the real world</strong>. Another issue you might run into with dynamics and rounding is that a simulation could go on forever if the floating point error causes tiny movements. If you see this, you can monitor the animator’s <code>elapsedTime</code> and then call <code>removeAllBehaviors</code> to stop it.</p>
    <p>We still need to implement a pan gesture handler, and we’ll do that right in the custom behavior class. Here it is:</p>
    <pre><code>&#x000A;    -(void)onPan:(UIPanGestureRecognizer*)pan&#x000A;    {&#x000A;        if (pan.state == UIGestureRecognizerStateBegan) {&#x000A;            [self addChildBehavior:self.attachment];&#x000A;        }&#x000A;        else if (pan.state == UIGestureRecognizerStateChanged) {&#x000A;            CGPoint delta = [pan translationInView:pan.view.superview];&#x000A;            self.attachment.anchorPoint =&#x000A;                CGPointMake(self.attachment.anchorPoint.x,&#x000A;                            self.attachment.anchorPoint.y + delta.y);&#x000A;            [pan setTranslation:CGPointZero inView:pan.view.superview];&#x000A;        }&#x000A;        else if (pan.state == UIGestureRecognizerStateEnded ||&#x000A;                 pan.state == UIGestureRecognizerStateCancelled ||&#x000A;                 pan.state == UIGestureRecognizerStateFailed) {&#x000A;            [self removeChildBehavior:self.attachment];&#x000A;            // impart the velocity to the view when we let it go&#x000A;            [self.behavior addLinearVelocity:&#x000A;                [pan velocityInView:pan.view.superview] forItem:pan.view];&#x000A;        }&#x000A;    }&#x000A;    </code></pre>
    <p>When the gesture begins, we add the <code>UIAttachmentBehavior</code>, and we remove it once the gesture is over. While it’s changing, we just need to move the attachment’s anchor point to stay under the user’s finger, and the behavior object will move the view that we attached to it as if it were attached with a spring.</p>
    <p>Note the last line of function, where we take the velocity of the pan and add it to the item that’s being dragged. This enables the animation to transition very smoothly from panning to what happens after we let it go.</p>
    <p>Finally, we need to clean up our pan gesture when we are deallocated.</p>
    <pre><code>&#x000A;    -(void) dealloc&#x000A;    {&#x000A;        [self.pan removeTarget:self action:@selector(onPan:)];&#x000A;        [self.pan.view removeGestureRecognizer:self.pan];&#x000A;    }&#x000A;    </code></pre>
    <p>This class may be infinitely customized. For example, the damping and frequency of the spring may be changed using the attachment, and the gravitational constant may be set in the gravity behavior. The <code>UIDynamicItemBehavior</code> class has a few more properties to play with. And we’ve only scratched the surface, because other behavior classes can simulate magnets, constant and impulse forces and a few other things.</p>
    <h4>Adding the Behavior to an Animator</h4>
    <p>Now that we have a custom behavior class, adding it to the animator is easy. The <code>UIDynamicAnimator</code> class must be instantiated and retained throughout the life of the simulation, so the easiest thing to do is use a property on your view controller.</p>
    <p>Then, just allocate it and add in the behavior, like so:</p>
    <pre><code>&#x000A;    -(void)setUpDynamics&#x000A;    {&#x000A;        self.animator = [[UIDynamicAnimator alloc]&#x000A;          initWithReferenceView:self.view.superview];&#x000A;        [self.animator addBehavior:[[LDUSlideBehavior alloc]&#x000A;          initWithItem:self.view]];&#x000A;    }&#x000A;    </code></pre>
    <p>That’s all there is to it. To download the full project, just clone <a href="https://github.com/loufranco/DynamicUtility" rel="nofollow external" class="bo">DynamicUtility on GitHub</a></p>
    <h3>Where To Go From Here</h3>
    <p>Take a good look at your own apps. A good place to start with dynamics is when you transition from one screen to another. If you are using a swipe gesture, consider replacing it with a pan gesture attached to a view, and let the user directly manipulate it. For example, instead of swiping an object to bring up a menu to delete it, let them throw it away directly by tossing it.</p>
    <p>But <strong>be careful</strong>. Don’t add dynamics just to show off. Used correctly, dynamics add playfulness and immersion but, if overused, can make an app feel like a mishmash of fancy effects.</p>
    <p>To learn more, watch the WWDC 2013 video “<a href="https://developer.apple.com/wwdc/videos/?id=206" rel="nofollow external" class="bo">Getting Started With UIKit Dynamics</a>,” then download the <a href="https://developer.apple.com/library/IOs/samplecode/DynamicsCatalog/Introduction/Intro.html" rel="nofollow external" class="bo">Dynamics Catalog sample app</a>. This sample app is a comprehensive catalog of the various behaviors and their uses. And if you need details on any of the classes or messages, read Apple’s official documentation on <code>UIDynamics</code> in the <a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIKit_Framework/_index.html" rel="nofollow external" class="bo">“UIKit” section</a>.</p>
    <p><em>(al, il)</em></p>
    <hr>
    <p><small>© Lou Franco for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2014.</small></p>
    </div>
]]>
</Body>
<Summary>        There’s no need to bust out a physics textbook to make your iOS 7 app’s views animate like real-world objects. With iOS 7’s new Dynamics API, views can be influenced by gravity, attached...</Summary>
<Website>http://www.smashingmagazine.com/2014/03/17/getting-your-app-ready-for-ios-7s-new-dynamic-interactions/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42500/guest@my.umbc.edu/617fb60bc58f6ec326851d4cf8f47cb5/api/pixel</TrackingUrl>
<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>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>Mon, 17 Mar 2014 09:45:22 -0400</PostedAt>
</NewsItem>

</News>
