<?xml version="1.0"?>
<News hasArchived="true" page="7852" pageCount="10924" pageSize="10" timestamp="Wed, 04 Nov 2026 11:25:22 -0500" url="https://my3.my.umbc.edu/posts.xml?page=7852">
<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://assets2-my.umbc.edu/images/avatars/group/8/xsmall.png?1793799445</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/images/avatars/group/8/original.png?1793799445</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/images/avatars/group/8/xxlarge.png?1793799445</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/images/avatars/group/8/xlarge.png?1793799445</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/images/avatars/group/8/large.png?1793799445</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/images/avatars/group/8/medium.png?1793799445</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/images/avatars/group/8/small.png?1793799445</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/images/avatars/group/8/xsmall.png?1793799445</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/images/avatars/group/8/xxsmall.png?1793799445</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>

<NewsItem contentIssues="true" id="42498" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42498">
<Title>Bits Blog: Searching for Profits in Mobile</Title>
<Body>
<![CDATA[
    <div class="html-content">Companies are offering new ways to gauge what makes money on mobile, including A/B testing, a popular method of making design and content choices on the web.<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%2Fsearching-for-profits-in-mobile%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Searching+for+Profits+in+Mobile" 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%2Fsearching-for-profits-in-mobile%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Searching+for+Profits+in+Mobile" 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%2Fsearching-for-profits-in-mobile%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Searching+for+Profits+in+Mobile" 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%2Fsearching-for-profits-in-mobile%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Searching+for+Profits+in+Mobile" 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%2Fsearching-for-profits-in-mobile%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Searching+for+Profits+in+Mobile" 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/191801404143/u/0/f/640387/c/34625/s/38459d14/sc/4/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801404143/u/0/f/640387/c/34625/s/38459d14/sc/4/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801404143/u/0/f/640387/c/34625/s/38459d14/sc/4/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801404143/u/0/f/640387/c/34625/s/38459d14/sc/4/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801404143/u/0/f/640387/c/34625/s/38459d14/sc/4/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801404143/u/0/f/640387/c/34625/s/38459d14/sc/4/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801404143/u/0/f/640387/c/34625/s/38459d14/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801404143/u/0/f/640387/c/34625/s/38459d14/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Companies are offering new ways to gauge what makes money on mobile, including A/B testing, a popular method of making design and content choices on the web.      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38459d14/sc/4/l/0Lbits0Bblogs0Bnytimes0N0C20A140C0A30C170Csearching0Efor0Eprofits0Ein0Emobile0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42498/guest@my.umbc.edu/d67bcea2a47e2be8b5bf7cd504b7a5bf/api/pixel</TrackingUrl>
<Tag>computers-and-the-internet</Tag>
<Tag>mobile</Tag>
<Tag>mobile-applications</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 09:06:21 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42492" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42492">
<Title>5 Modern WordPress Alternatives to Keep an Eye On</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>WordPress is the most dominant CMS on the market.</p>
    <p>18.9% of websites run on WordPress and, just last year alone, it’s been downloaded 46 million times <a href="http://thenextweb.com/insider/2013/07/27/wordpress-now-powers-18-9-of-the-web-has-over-46m-downloads-according-to-founder-matt-mullenweg/#!z4e9X" title="WordPress now powers 18.9% of the Web - thenextweb.com" rel="nofollow external" class="bo">according Matt Mullenweg</a>, the publishing platform’s creator.</p>
    <p></p>
    <p>WordPress.com — a service that hosts WordPress sites — is <a href="http://en.wordpress.com/stats/" title="Stats - wordpress.com" rel="nofollow external" class="bo">reportedly</a> home to over 76 million sites, serves 13.1 billion pages a month, and is the platform of top, high-traffic web properties like TechCrunch and CNN.</p>
    <p><img src="http://cdn.sixrevisions.com/406-01_wordpress_alternative_wphome.jpg" width="550" height="393" alt="Wordpress.com home page" style="max-width: 100%; height: auto;"></p>
    <p><a href="http://sixrevisions.com/category/wordpress/" title="WordPress – Six Revisions" rel="nofollow external" class="bo">WordPress</a> isn’t going away any time soon, and will most likely remain to be the most popular CMS for years to come.</p>
    <p>The community and support behind WordPress is massive, as evidenced by the 26,000 user-contributed plugins listed in the official WordPress plugins directory (and the figure doesn’t include the countless other plugins that aren’t listed).</p>
    <h3>Why Look Beyond WordPress?</h3>
    <p>There’s been a lot of buzz in the web design community lately about other options besides WordPress.</p>
    <p>There is a lot of talk about <a href="http://www.typeandgrids.com/blog/goodbye-wordpress-2014-will-be-the-year-of-flat-file-cmses" title="Goodbye WordPress: 2014 Will Be the Year of the Flat-File CMS - www.typeandgrids.com" rel="nofollow external" class="bo">flat-file CMSs</a>, micro CMSs, and static site generators — fresh takes on the age-old content management problem.</p>
    <p>For some, WordPress has become bloated and overly complicated, especially for small-scale sites that might be better served by simpler CMS options.</p>
    <p>If you’re looking for the latest WordPress alternatives, the following options are the ones to consider in my opinion.</p>
    <h3><a href="https://ghost.org/" rel="nofollow external" class="bo">Ghost</a></h3>
    <p><img src="http://cdn.sixrevisions.com/406-02_wordpress_alternative_ghost.jpg" width="550" height="393" alt="Ghost" style="max-width: 100%; height: auto;"></p>
    <p>Ghost is probably the most talked about WordPress alternative right now.</p>
    <p>Historically, WordPress started out as blogging software. Now, it’s grown into a full-fledged CMS that can run any type of site — it’s capable of being the publishing platform of online stores, photo galleries, online directories, and any other variety of sites you can think of — which, for software, spells bloat, complexity and excess features you don’t need if you simply want to run a blog.</p>
    <p>This is where Ghost comes into the picture.</p>
    <p>As described in <a href="https://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform" rel="nofollow external" class="bo">its Kickstarter video</a>, Ghost is straight-up positioning itself as a WordPress alternative for people interested in just blogging.</p>
    <p>Ghost doesn’t want to be a CMS that does everything for everyone. Ghost only wants to excel at being a blogging platform.</p>
    <p>Its beautifully simple UI allows bloggers to compose their posts without being distracted by menus, widgets, settings and tools not related to writing.</p>
    <p><img src="http://cdn.sixrevisions.com/406-07_wordpress_alternative_ghost_dashboard.jpg" width="550" height="344" alt="Ghost dashboard" style="max-width: 100%; height: auto;"></p>
    <p>Ghost is built with JavaScript using Node.js, a web development platform optimized for performance and scalability due to its non-blocking I/O model. This could offer Ghost huge speed improvements over the PHP-based WordPress, with <a href="http://www.appdynamics.com/blog/nodejs/an-example-of-how-node-js-is-faster-than-php/" title="An example of how Node.js is faster than PHP - appdynamics.com" rel="nofollow external" class="bo">one case revealing</a> Ghost to be <strong>678% faster</strong> than WordPress.</p>
    <p>Compared to WordPress, however, it’s much harder to find a budget shared hosting service that can run Ghost due to its Node.js dependence. In contrast, WordPress and its required web server technologies PHP and MySQL are commonly available on a vast majority of web hosts.</p>
    <p>But if you’re using a <a href="http://sixrevisions.com/website-management/guide-vps-hosting/" title="A Complete Guide to VPS Hosting" rel="nofollow external" class="bo">VPS</a>, dedicated server, or shared hosting  that has Node.js installed, then you’re good to go. Also, keep in mind that Ghost is still new, and if it takes off, it will only be a matter of time before one-click installs for Ghost on web hosts become the norm.</p>
    <h3><a href="http://jekyllrb.com/" rel="nofollow external" class="bo">Jekyll</a></h3>
    <p><img src="http://cdn.sixrevisions.com/406-03_wordpress_alternative_jekyll.jpg" width="550" height="393" alt="Jekyll home page." style="max-width: 100%; height: auto;"></p>
    <p>If you want a <a href="http://sixrevisions.com/web-development/site-speed-performance/" title="10 Tips for Optimizing Your Website's Speed" rel="nofollow external" class="bo">fast-loading site</a> then you can’t do any better than serving plain static HTML documents. And if you want to do this more easily for content publishing, then Jekyll is the answer.</p>
    <p>Jekyll is a static site generator — a system that takes text files and stitches them together to create a static HTML site.</p>
    <p>Jekyll was created by Tom Preston-Werner, co-founder of GitHub.</p>
    <p>To use Jekyll, you must be unafraid to get your hands dirty using the command line, so it’s best suited as a WordPress alternative for hackers.</p>
    <p><img src="http://cdn.sixrevisions.com/406-08_wordpress_alternative_jekyll_cmd.jpg" width="550" height="231" alt="Jekyll command line" style="max-width: 100%; height: auto;"></p>
    <p>You can host your Jekyll site for free using <a href="http://pages.github.com/" rel="nofollow external" class="bo">GitHub Pages</a>, since Jekyll is static and doesn’t require server-side programming, unlike WordPress.</p>
    <p>If you’re a developer who would rather work with pure code than mess around with a UI, if you want an extremely high-performance publishing solution and the option to host your site for free, Jekyll is definitely worth trying.</p>
    <h3><a href="http://www.statamic.com/" rel="nofollow external" class="bo">Statamic</a></h3>
    <p><img src="http://cdn.sixrevisions.com/406-04_wordpress_alternative_statamic.jpg" width="550" height="393" alt="Statamic home" style="max-width: 100%; height: auto;"></p>
    <p>Statamic isn’t a static site generator like many people mistakenly refer to it as. It’s a flat-file CMS that mixes static and dynamic elements. (The name Statamic comes from the words <em>stat</em>ic and dyn<em>amic</em>).</p>
    <p><img src="http://cdn.sixrevisions.com/406-09_wordpress_alternative_statamic_showcase.jpg" width="550" height="498" alt="Statamic examples" style="max-width: 100%; height: auto;"></p>
    <p>With Statamic, your pages are rendered on-the-fly just like WordPress, but it does so without a relational database management system (e.g. MySQL) by storing content in a simple directory structure using flat files.</p>
    <p>Just because a site uses flat files doesn’t mean it can’t do dynamic things.</p>
    <p>People are surprised when I tell them my content-centered web typography side project, <a href="http://www.typewolf.com/" rel="nofollow external" class="bo">Typewolf</a>, doesn’t use a database-driven content management system. Instead it runs on just flat files. It does lots of dynamic things like a WordPress site. For example, clicking on a font’s name will generate pages showing sites using that font but there’s no querying of a database to slow things down.</p>
    <p><img src="http://cdn.sixrevisions.com/406-08_wordpress_alternative_statamic_typewolf.jpg" width="550" height="291" alt="Typewolf" style="max-width: 100%; height: auto;"></p>
    <p>My opinion on Statamic may be biased because it is my CMS of choice. Because I’m such a fan of this content management system, I even launched <a href="http://www.typeandgrids.com/" rel="nofollow external" class="bo">a site that sells Statamic themes</a> — which might further add to my partiality to this CMS.</p>
    <p>Besides Statamic, <a href="http://getkirby.com/" rel="nofollow external" class="bo">Kirby</a> and <a href="http://pico.dev7studios.com/" rel="nofollow external" class="bo">Pico</a> are worth checking out as well if you want to give flat-file publishing platforms a try.</p>
    <h3><a href="https://buildwithcraft.com/" rel="nofollow external" class="bo">Craft</a></h3>
    <p><img src="http://cdn.sixrevisions.com/406-05_wordpress_alternative_craft.jpg" width="550" height="393" alt="Craft" style="max-width: 100%; height: auto;"></p>
    <p>Created by well-known ExpressionEngine add-on developers, Pixel &amp; Tonic, Craft is a new CMS that aims to bring simplicity to managing  content.</p>
    <p>Craft was built from the ground up to focus only on the core features that a CMS truly needs. The software’s goal is to avoid the bloat that comes with trying to include every possible feature and fulfill every single use-case.</p>
    <p><img src="http://cdn.sixrevisions.com/406-10_wordpress_alternative_craft_ui.jpg" width="550" height="392" alt="Craft UI" style="max-width: 100%; height: auto;"></p>
    <p>Craft has a unique business model where the core features are free, so you can get a basic site set up without having to purchase anything.</p>
    <p>However, if you need additional functionality for your site, you can buy packages. An example of this is the Localize package, which you can purchase if your site needs multi-language capabilities. Another package you can add to your Craft site is the Cloud package, which provides support for popular cloud services like Amazon S3 and Google Cloud.</p>
    <p><img src="http://cdn.sixrevisions.com/406-11_wordpress_alternative_craft_packages.jpg" width="550" height="623" alt="Craft packages" style="max-width: 100%; height: auto;"></p>
    <p>Craft has a growing community behind it, which is essential for any new CMS wanting to be a viable alternative to WordPress.</p>
    <h3><a href="https://grabaperch.com/" rel="nofollow external" class="bo">Perch</a></h3>
    <p><img src="http://cdn.sixrevisions.com/406-06_wordpress_alternative_perch.jpg" width="550" height="393" alt="Perch home" style="max-width: 100%; height: auto;"></p>
    <p>When I first heard about Perch, I assumed it was named after the type of fish I’d catch in ponds near my house as a kid. Now, from their website, I’m realizing it’s "perch" as in the things birds stand on.</p>
    <p>Perch describes itself as a "really little CMS". With this publishing platform, you can build your site however you want and then add in CMS functionality and dynamic components later on. So you don’t need to build your site around Perch from the beginning, which is great for existing sites that just want a few pages to be editable and dynamic.</p>
    <p>Perch has a control panel with a clean and simple UI that makes it an excellent CMS to hand off to your non-technical clients.</p>
    <p><img src="http://cdn.sixrevisions.com/406-12_wordpress_alternative_perch_ui.jpg" width="550" height="339" alt="Perch UI" style="max-width: 100%; height: auto;"></p>
    <p>Company sites and "brochureware" sites managed by non-tech site owners seem to be the market for Perch. The platform has add-ons available that could make it a nice solution for larger sites as well.</p>
    <h3>Looking Forward</h3>
    <p>I’m excited to see which of the above online publishing platforms become successful in the next few years, and which ones will fall out of fashion.</p>
    <p>If you’re already committed to WordPress and have no major issues with it, then it might not be a good idea to just dive into one of the above alternatives for your next big web project.</p>
    <p>There’s no sign WordPress is on the decline, and in fact it’s showing <a href="http://www.sfgate.com/business/ontherecord/article/WordPress-celebrates-10-years-of-growth-4687933.php" title="WordPress celebrates 10 years of growth - sfgate.com" rel="nofollow external" class="bo">growth year over year</a>.</p>
    <p>But if you have a small web project, if you have qualms with WordPress’s development direction out of being just a blogging platform, if you want a different approach to content management, or if you simply want to explore what else is out there, then spend a little bit of time playing around with Ghost, Jekyll, Statamic, Craft or Perch. </p>
    <p>You might just discover your new favorite CMS in the process.</p>
    <h3>Related Content</h3>
    <ul>
    <li><a href="http://sixrevisions.com/wordpress/improve-wordpress-themes-tips/" rel="nofollow external" class="bo">10 Basic Tips for Improving WordPress Themes</a></li>
    <li><a href="http://sixrevisions.com/wordpress/free-resources-wordpress/" rel="nofollow external" class="bo">Free Resources to Help You Build Your Next WordPress Site</a></li>
    <li><a href="http://sixrevisions.com/wordpress/saas-wordpress/" rel="nofollow external" class="bo">6 Questions To Ask Before You Install A WordPress Plugin</a></li>
    <li>
    <em>Related categories:</em> <a href="http://sixrevisions.com/category/wordpress/" rel="nofollow external" class="bo">WordPress</a> and <a href="http://sixrevisions.com/category/tools/" rel="nofollow external" class="bo">Tools</a>
    </li>
    </ul>
    <h3>About the Author</h3>
    <p><img src="http://cdn.sixrevisions.com/authors/jeremiah_shoaf_small.jpg" alt="" width="80" height="80" style="max-width: 100%; height: auto;"><strong>Jeremiah Shoaf</strong> is a freelance designer from Colorado. His side projects include a web typography gallery called <a href="http://www.typewolf.com/" rel="nofollow external" class="bo">Typewolf</a> and <a href="http://www.typeandgrids.com/" rel="nofollow external" class="bo">Type &amp; Grids</a>, a site offering HTML5 templates and flat-file CMS themes. He is <a href="https://twitter.com/typewolf" rel="nofollow external" class="bo">@typewolf</a> on Twitter.</p>
    <p>The post <a href="http://sixrevisions.com/wordpress/wordpress-alternatives/" rel="nofollow external" class="bo">5 Modern WordPress Alternatives to Keep an Eye On</a> appeared first on <a href="http://sixrevisions.com" rel="nofollow external" class="bo">Six Revisions</a>.</p>
    </div>
]]>
</Body>
<Summary>WordPress is the most dominant CMS on the market.   18.9% of websites run on WordPress and, just last year alone, it’s been downloaded 46 million times according Matt Mullenweg, the publishing...</Summary>
<Website>http://feedproxy.google.com/~r/SixRevisions/~3/7C7y2lJg9_A/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42492/guest@my.umbc.edu/85055513ee5beaf20e02c1215d16e89b/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>database</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Tag>wordpress</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 06:00:36 -0400</PostedAt>
</NewsItem>

</News>
