<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NTG Web Site</title>
	<atom:link href="http://www.newyyz.com/ntgsite/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.newyyz.com/ntgsite</link>
	<description>Application Development - HTML5, Android, PlayBook, Ipad, Video and Rich Internet Application Training</description>
	<lastBuildDate>Wed, 01 May 2013 17:42:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Up and running iOS development</title>
		<link>http://www.newyyz.com/ntgsite/2013/04/up-and-running-ios-development-with-open-source-components/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/04/up-and-running-ios-development-with-open-source-components/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 19:34:59 +0000</pubDate>
		<dc:creator>Ryan R</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[OSX Development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4453</guid>
		<description><![CDATA[Creating an iOS application can be a daunting task. From design and architecture to testing and deploying, there’s a lot to think about. Luckily, you don’t have to start from scratch, as most of the problems you’ll run into have already been solved by someone else. The internet is filled with a great selection of [...]]]></description>
			<content:encoded><![CDATA[<p>Creating an iOS application can be a daunting task. From design and architecture to testing and deploying, there’s a lot to think about. Luckily, you don’t have to start from scratch, as most of the problems you’ll run into have already been solved by someone else. The internet is filled with a great selection of reusable components and libraries which can be used to jump-start your next iOS project.</p>
<p>&nbsp;</p>
<p><strong>User Interface and Architecture</strong></p>
<p><strong><br />
</strong></p>
<p>Cocoa Controls (<a href="https://www.cocoacontrols.com/">https://www.cocoacontrols.com/</a>) is a directory of open source controls for Cocoa (OS X) and CocoaTouch (iOS) applications. A recent phenomenon you’ll discover on Cocoa Controls is that when a big app is released on the app store with a unique user interface control of some sort, there will be dozens of open source implementations within weeks. A great example of such a phenomenon is the parallax zooming effect ‘clones’, which imitate a visual effect implemented in some new apps like CNN and Tweetbot (<a href="https://www.cocoacontrols.com/search?utf8=%E2%9C%93&amp;q=parallax">https://www.cocoacontrols.com/search?utf8=✓&amp;q=parallax</a>).<strong></strong></p>
<p><strong><br />
</strong></p>
<p>One drop-in component that I want to make special mention of is InAppSettingsKit (<a href="https://github.com/futuretap/InAppSettingsKit">https://github.com/futuretap/InAppSettingsKit</a>). Many developers find the process of storing app settings in the official iOS settings app confusing, and simply implement their settings in their own application. InAppSettingsKit makes writing a settings screen *and* having those settings exposed to the iOS settings application a snap &#8211; huge time saver.<strong></strong></p>
<p><strong> </strong></p>
<p><strong>Networking</strong></p>
<p><strong><br />
</strong></p>
<p>A great user interface is not all that important without some data. If you’re integrating with a web service, downloading images, or just making simple GET requests, you definitely need to take a look at AFNetworking. AFNetworking (the AF stands for AlamoFire, the team behind Gowalla, now a part of the Facebook) is a very mature library for making network request. Its biggest draw is its powerful block-based syntax. If you’ve used anonymous functions, and observed their closure abilities, then you understand blocks. <strong></strong></p>
<p><strong><br />
</strong></p>
<p>What if you want to build a network connected app, but don’t have your back-end figured out yet? Well there are libraries (libraries as a service?) which not only handle the networking layer of your app, but generate a backend server based on the model objects you design for your application.<strong></strong></p>
<p><strong><br />
</strong></p>
<p>Check out Parse (<a href="http://www.parse.com">http://www.parse.com</a>). Parse, which coincidentally is now also owned by Facebook, is one such service. If you don’t mind locking yourself into the Parse-o-verse, then you may find yourself very impressed with how much time Parse can save you. Parse allows you to model your data online, import values from common formats (CSV, etc.), and provides an SDK for every platform under the sun to access the data. It can also take care of push notifications, login (including with Facebook or Twitter credentials) and supports what it calls “Cloud Code”: the ability to have your own custom JavaScript server code, run on the Parse servers.<strong></strong></p>
<p><strong> </strong></p>
<p><strong>Testing</strong></p>
<p><strong> </strong></p>
<p>So you have your beautiful Internet-connected app, and you’re almost ready to ship. Time to test. TestFlight (<a href="http://www.testflightapp.com">http://www.testflightapp.com</a>), is designed to make testing and, more importantly, organizing beta tests a breeze. TestFlight allows you to organize your testers, invite them to betas, inform them of new betas and even deliver beta applications over the air, completely bypassing the App Store.<strong></strong></p>
<p><strong><br />
</strong></p>
<p>While your testers are finding all the bugs in your app, Crashlytics (<a href="http://try.crashlytics.com">http://try.crashlytics.com</a>) can be used collecting detailed crash logs. When an app normally crashes, it stores a crash log (a blackbox recording of what went wrong) in the device. On the next iTunes sync, these logs are sent to Apple. Apple will eventually let you see these logs, which have to be downloaded and interpreted by analysing the code that generated it (so it can properly report line numbers, method names, etc.). It’s quite a process. This is where Crashlytics comes in.<strong></strong></p>
<p><strong><br />
</strong></p>
<p>Crashlytics simplifies all that by having your app communicate directly with its servers on a crash. Better yet, it caches unsent crash logs to be sent on the next launch, to ensure it’s been sent. You can also inject custom Crashlytics flags, to help debug the state of an application on crash.<strong></strong></p>
<p><strong><br />
</strong></p>
<p><strong>Production</strong><strong></strong></p>
<p><strong><br />
</strong></p>
<p>Finally, your app is approved and in the store. You may want to make tweaks but the app update process is lengthy. GroundControl (<a href="https://github.com/mattt/GroundControl#readme">https://github.com/mattt/GroundControl#readme</a>) is a library that allows you to store application configurations in the Cloud. Use GroundControl to tweak default values, or maybe have dynamic themes. You can now tweak your app to fit user trends without re-submitting a new version.<strong></strong></p>
<p><strong><br />
</strong></p>
<p><strong>Finally&#8230;</strong><strong></strong></p>
<p><strong><br />
</strong>This is just a small subset of what’s available. With new developers joining the community every day, there’s an ever-changing landscape of bits and pieces to be toyed with&#8230; but don’t be afraid to create something unique, and maybe your next piece of code may the next big thing.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F04%2Fup-and-running-ios-development-with-open-source-components%2F&amp;title=Up%20and%20running%20iOS%20development"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/04/up-and-running-ios-development-with-open-source-components/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Gist of Code Sharing</title>
		<link>http://www.newyyz.com/ntgsite/2013/04/the-gist-of-code-sharing/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/04/the-gist-of-code-sharing/#comments</comments>
		<pubDate>Wed, 17 Apr 2013 19:35:01 +0000</pubDate>
		<dc:creator>oliverm</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[ANT]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[General Knowledge]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WebWorks]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4434</guid>
		<description><![CDATA[Agile development teams often need to share code while in the heat of battle. At the high end of the scale, there are publicly-accessible repositories, such as GitHub. Creating a GitHub project is obviously overkill for those wishing to simply pass a few key lines of code to their buddy in the next seat. For [...]]]></description>
			<content:encoded><![CDATA[<p>Agile development teams often need to share code while in the heat of battle.</p>
<p>At the high end of the scale, there are publicly-accessible repositories, such as GitHub. Creating a GitHub project is obviously overkill for those wishing to simply pass a few key lines of code to their buddy in the next seat.</p>
<p>For stand-alone, runnable demo code, sites like <a title="Plunker" href="http://plnkr.co/" target="_blank">Plunker</a> and <a title="JSFiddle" href="http://jsfiddle.net/" target="_blank">JSFiddle</a>  are great. You will see references to these sites wherever HTML, CSS and JavaScript bugs are reported; for example <a title="stackoverflow.com" href=" http://stackoverflow.com/" target="_blank">stackoverflow</a> and the <a title="angular group" href="https://groups.google.com/forum/?fromgroups=#!forum/angular" target="_blank">AngularJS Google Group</a>.</p>
<p>But again, maybe overkill for just a few lines.</p>
<p>So what are the other options for code sharing?</p>
<ul>
<li>Email &#8211; I suppose, but there may be delays in receiving the email if your server is slow.</li>
<li>Skype or other messaging service &#8211; Alright, but you lose history eventually.</li>
<li>USB Key (sneaker-net) &#8211; It works, but it is hard to share it with a lot of people and history is also an issue.</li>
<li>Gist &#8211; This has been around a couple of years but I&#8217;ve only just discovered it since it is baked into <a title="webstorm" href="http://www.jetbrains.com/webstorm/" target="_blank">IntelliJ/WebStorm</a>. Gist is a GitHub sub-project and is associated with your GitHub account. For example, my GitHub account is at <a title="github" href="https://github.com/oliverm2112" target="_blank">https://github.com/oliverm2112</a> and my Gists are at <a title="gists" href="https://gist.github.com/oliverm2112" target="_blank">https://gist.github.com/oliverm2112</a>. Gist allows developers to post snippets of code in various languages and features in-place editing and syntax highlighting.</li>
</ul>
<p>Here is a Gist home page and a code sample:</p>
<p>&nbsp;</p>
<p><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/04/TheGistOfIt_11.png"><img class="alignnone size-full wp-image-4443" title="TheGistOfIt_1" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/04/TheGistOfIt_11.png" alt="" width="543" height="269" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/04/TheGistOfIt_21.png"><img class="alignnone size-full wp-image-4444" title="TheGistOfIt_2" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/04/TheGistOfIt_21.png" alt="" width="543" height="269" /></a></p>
<p>Here is a shot of IntelliJ/WebStorm&#8217;s abilitity to create a Gist from within the IDE:</p>
<p><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/04/TheGistOfIt_13.png"><img class="alignnone size-full wp-image-4441" title="TheGistOfIt_13" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/04/TheGistOfIt_13.png" alt="" width="543" height="433" /></a></p>
<p>Hopefully you will find this a useful way to share information.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F04%2Fthe-gist-of-code-sharing%2F&amp;title=The%20Gist%20of%20Code%20Sharing"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/04/the-gist-of-code-sharing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AngularJS &#8211; Promises</title>
		<link>http://www.newyyz.com/ntgsite/2013/04/angularjs-promises/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/04/angularjs-promises/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 17:45:03 +0000</pubDate>
		<dc:creator>alaint</dc:creator>
				<category><![CDATA[AngularJS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4403</guid>
		<description><![CDATA[AngularJS comes with promise/deferred APIs that are simple to set up and are also built into the $http API. The Angular promise is basically a guarantee that some code will be fulfilled after other parts are done. Single Promise: 1234567891011myApp.controller('myController', ['$scope', '$q', function ($scope, $q) { &#160; &#160; var defer = $q.defer(); &#160; &#160; defer.promise.then(function [...]]]></description>
			<content:encoded><![CDATA[<p>AngularJS comes with promise/deferred APIs that are simple to set up and are also built into the <a href="http://docs.angularjs.org/api/ng.$http" target="_blank">$http</a> API. The Angular promise is basically a guarantee that some code will be fulfilled after other parts are done.</p>
<p><strong>Single Promise:</strong></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">myApp.controller('myController', ['$scope', '$q', function ($scope, $q) {<br />
&nbsp; &nbsp; var defer = $q.defer();<br />
<br />
&nbsp; &nbsp; defer.promise.then(function () {<br />
&nbsp; &nbsp; &nbsp; &nbsp; $scope.$emit('shoutEvent', {'message' : 'I kept my promise!'});<br />
&nbsp; &nbsp; });<br />
<br />
&nbsp; &nbsp; $scope.$on('someEvent', function (event, data) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; defer.resolve();<br />
&nbsp; &nbsp; });<br />
}]);</div></td></tr></tbody></table></div>
<p>In the above example we create a new instance of a deferred object which exposes a promise. Next, we access the promise and add the callback that we need. We can now resolve the promise when the ‘someEvent’ is received.</p>
<p><strong>Multiple Promises:</strong></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">myApp.controller('myController', ['$scope', '$q', function ($scope, $q) {<br />
&nbsp; &nbsp; var defer1 = $q.defer(),<br />
&nbsp; &nbsp; &nbsp; &nbsp; defer2 = $q.defer();<br />
<br />
&nbsp; &nbsp; $scope.$on('someEvent', function (event, data) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; defer1.resolve();<br />
&nbsp; &nbsp; });<br />
<br />
&nbsp; &nbsp; $scope.$on('someOtherEvent', function (event, data) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; defer2.resolve();<br />
&nbsp; &nbsp; });<br />
<br />
&nbsp; &nbsp; $q.all([defer1.promise, defer2.promise]).then(function () {<br />
&nbsp; &nbsp; &nbsp; &nbsp; $scope.$emit('shoutEvent', {'message' : 'I kept my promise to all of you'});<br />
&nbsp; &nbsp; });<br />
}]);</div></td></tr></tbody></table></div>
<p>As shown above, when we need to wait for multiple promises to resolve and take action, we can use the $q.all() method to combine them into one promise.</p>
<p>These examples show how AngularJS promises are powerful. But, this post just touches a few of their features. There are other features you might be interested in such as chaining promises with return values, using them in templates and rejecting promises.</p>
<p>You can read more about them in the <a href="http://docs.angularjs.org/api/ng.$q" target="_blank">AngularJS documentation</a>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F04%2Fangularjs-promises%2F&amp;title=AngularJS%20%26%238211%3B%20Promises"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/04/angularjs-promises/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlackBerry 10/Qt Libraries and Namespaces</title>
		<link>http://www.newyyz.com/ntgsite/2013/04/blackberry-10qt-libraries-and-namespaces/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/04/blackberry-10qt-libraries-and-namespaces/#comments</comments>
		<pubDate>Tue, 02 Apr 2013 18:25:37 +0000</pubDate>
		<dc:creator>bslack</dc:creator>
				<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4393</guid>
		<description><![CDATA[A quick note for those developing C++ libraries with Qt (hopefully for BlackBerry 10). You should use a namespace(s) to group your library code together and to avoid conflict with other libraries and the users&#8217; code. When working with Qt however, some extra considerations need to be taken into account if you plan on using [...]]]></description>
			<content:encoded><![CDATA[<p>A quick note for those developing C++ libraries with Qt (hopefully for BlackBerry 10). You should use a namespace(s) to group your library code together and to avoid conflict with other libraries and the users&#8217; code. When working with Qt however, some extra considerations need to be taken into account if you plan on using Qt&#8217;s signal/slot mechanisms. In Qt 4.x (the latest version of Qt available for BlackBerry 10), your function signal/slot prototype declarations must match exactly. This can cause issues for users of your library if you assume that your namespace is global within your header definition. Take for instance the following code sample:</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">namespace</span> mycompany <span style="color: #008000;">&#123;</span><br />
<span style="color: #0000ff;">namespace</span> mylibrary <span style="color: #008000;">&#123;</span><br />
<br />
<span style="color: #0000ff;">class</span> LibData<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">class</span> LibraryManager <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> QObject <span style="color: #008000;">&#123;</span><br />
Q_OBJECT<br />
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span><br />
LibraryManager<span style="color: #008000;">&#40;</span>QObject <span style="color: #000040;">*</span>parent <span style="color: #000080;">=</span> <span style="color: #0000ff;">NULL</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">virtual</span> ~LibraryManager<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
Q_SIGNAL <span style="color: #0000ff;">void</span> dataRead<span style="color: #008000;">&#40;</span>LibData <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span>d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>In the above sample, the &#8216;dataRead&#8217; signal provides one parameter when emitted, the LibData pointer. The LibData object is part of the mycompany::mylibrary namespace. While this will work, it potentially causes an issue for a user of your library. It forces the library user to make your namespace global within their own header file (which may or may not be intended). As an example:</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339900;">#include</span><br />
<span style="color: #339900;">#include</span><br />
<br />
<span style="color: #0000ff;">using</span> <span style="color: #0000ff;">namespace</span> mycompany<span style="color: #008080;">::</span><span style="color: #007788;">mylibrary</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">class</span> MyClientClass <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> QObject <span style="color: #008000;">&#123;</span><br />
Q_OBJECT<br />
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span><br />
MyClientClass<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">virtual</span> ~MyClientClass<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
Q_SLOT <span style="color: #0000ff;">void</span> onDataRead<span style="color: #008000;">&#40;</span>LibData <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span>d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>In the above case, the MyClientClass onDataRead slot must match the LibraryManager classes &#8216;dataRead&#8217; signal signature, exactly. This forces the user to make the namespace global within the header file, which can somewhat defeat the purposes of namespaces. A better implementation would be to always explicitly set your namespace in your signal prototype declarations. The below snippet shows a better implementation of both the library and client code:</p>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0000ff;">namespace</span> mycompany <span style="color: #008000;">&#123;</span><br />
<span style="color: #0000ff;">namespace</span> mylibrary <span style="color: #008000;">&#123;</span><br />
<br />
<span style="color: #0000ff;">class</span> LibData<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">class</span> LibraryManager <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> QObject <span style="color: #008000;">&#123;</span><br />
Q_OBJECT<br />
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span><br />
LibraryManager<span style="color: #008000;">&#40;</span>QObject <span style="color: #000040;">*</span>parent <span style="color: #000080;">=</span> <span style="color: #0000ff;">NULL</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">virtual</span> ~LibraryManager<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
Q_SIGNAL <span style="color: #0000ff;">void</span> dataRead<span style="color: #008000;">&#40;</span>mycompany<span style="color: #008080;">::</span><span style="color: #007788;">mylibrary</span><span style="color: #008080;">::</span><span style="color: #007788;">LibData</span> <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span>d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<div class="codecolorer-container cpp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339900;">#include</span><br />
<span style="color: #339900;">#include</span><br />
<br />
<span style="color: #0000ff;">class</span> MyClientClass <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> QObject <span style="color: #008000;">&#123;</span><br />
Q_OBJECT<br />
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span><br />
MyClientClass<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">virtual</span> ~MyClientClass<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<br />
Q_SLOT <span style="color: #0000ff;">void</span> onDataRead<span style="color: #008000;">&#40;</span>mycompany<span style="color: #008080;">::</span><span style="color: #007788;">mylibrary</span><span style="color: #008080;">::</span><span style="color: #007788;">LibData</span> <span style="color: #000040;">&amp;</span>amp<span style="color: #008080;">;</span>d<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Note how in the above example, the LibData objects namespace is explicitly declared. This eliminates the need to have the &#8216;using namespace mycompany::mylibrary&#8217; definition.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F04%2Fblackberry-10qt-libraries-and-namespaces%2F&amp;title=BlackBerry%2010%2FQt%20Libraries%20and%20Namespaces"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/04/blackberry-10qt-libraries-and-namespaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting repetitive tasks done quickly and efficiently</title>
		<link>http://www.newyyz.com/ntgsite/2013/02/getting-repetitive-tasks-done-quickly-and-efficiently/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/02/getting-repetitive-tasks-done-quickly-and-efficiently/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 17:51:52 +0000</pubDate>
		<dc:creator>Rod Nolan</dc:creator>
				<category><![CDATA[ANT]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[WebWorks]]></category>
		<category><![CDATA[.bat]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[build.xml]]></category>
		<category><![CDATA[context menu]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[windows7]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4298</guid>
		<description><![CDATA[I&#8217;m working on a project right now where I often have to grab a master copy of a single file, paste it into my current working directory and open it for editing. My environment is Windows 7. Since the master file exists in a static location, I wrote a batch script to copy the file [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a project right now where I often have to grab a master copy of a single file, paste it into my current working directory and open it for editing. My environment is Windows 7.</p>
<p>Since the master file exists in a static location, I wrote a batch script to copy the file into my current directory and open it.</p>
<pre>  copy %ANT_HOME%\..\..\build.xml . /-Y
  build.xml</pre>
<p>The first line of this script will copy the master version of build.xml into whatever directory I run it from from. The -Y option prompts me to overwrite if a file named build.xml happens to be present. The second line will open the local file in the system default editor for .xml files (if you have one configured). So it&#8217;s just two lines. Nice and simple and it sure beats doing this manually.</p>
<p>To make this script callable from anywhere on my file system, I placed it in a directory that is included in my PATH and I called it getBuild.bat.</p>
<p>At this stage, calling the script requires me to SHIFT+right-click &gt; Open Command Prompt Here and type the name of the batch file. Too many clicks and keystrokes for my liking.</p>
<p>Ideally, I&#8217;d like to be able to access this functionality from the context menu and bypass the need to open the command window at all. Here&#8217;s how I did it.</p>
<ul>
<li>Open regedit.exe</li>
<li>Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell</li>
<li>Add a new key called getBuild</li>
<li>Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\getBuild</li>
<li>Add a new key called command</li>
<li>Modify the (Default) value and set it to C:\Windows\System32\cmd.exe /c getBuild.bat</li>
</ul>
<div id="attachment_4301" class="wp-caption alignnone" style="width: 310px"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog1.png"><img class="size-medium wp-image-4301" title="editing the registry to add an item to the Windows Explorer context menu" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog1-300x100.png" alt="editing the registry to add an item to the Windows Explorer context menu" width="300" height="100" /></a><p class="wp-caption-text">editing the registry to add an item to the Windows Explorer context menu</p></div>
<ul>
<li>Save and close the registry editor</li>
<li>Open Windows Explorer and right click <strong>on a file in any directory</strong> to see the new context menu item. I haven&#8217;t bothered to try to make it work by right clicking anywhere so as it stands, you have to right click a file.</li>
</ul>
<div id="attachment_4302" class="wp-caption alignnone" style="width: 310px"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog2.png"><img class="size-medium wp-image-4302" title="using the new context menu" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog2-300x223.png" alt="using the new context menu" width="300" height="223" /></a><p class="wp-caption-text">using the new context menu</p></div>
<ul>
<li>Next, you&#8217;ll see the prompt to overwrite the .existing file.</li>
</ul>
<div id="attachment_4303" class="wp-caption alignnone" style="width: 310px"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog3.png"><img class="size-medium wp-image-4303" title="the batch file doing its job" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog3-300x38.png" alt="the batch file doing its job" width="300" height="38" /></a><p class="wp-caption-text">the batch file doing its job</p></div>
<ul>
<li>Answering &#8216;y&#8217; opens the file in my editor.</li>
</ul>
<div id="attachment_4304" class="wp-caption alignnone" style="width: 310px"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog4.png"><img class="size-medium wp-image-4304" title="so I can do my job" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/blog4-300x105.png" alt="so I can do my job" width="300" height="105" /></a><p class="wp-caption-text">so I can do my job</p></div>
<p>&nbsp;</p>
<p>If you&#8217;re wondering why I need to copy build.xml so often, keep an eye on this space for my next blog post. I&#8217;ll be talking about the ANT build script I wrote  to package and deploy WebWorks apps to the upcoming BB10 smartphone. But until then, happy copying. <img src='http://www.newyyz.com/ntgsite/wp/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F02%2Fgetting-repetitive-tasks-done-quickly-and-efficiently%2F&amp;title=Getting%20repetitive%20tasks%20done%20quickly%20and%20efficiently"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/02/getting-repetitive-tasks-done-quickly-and-efficiently/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NTG at Upcoming BlackBerry Experience Forums: NYC, March 4 and Chicago, March 6</title>
		<link>http://www.newyyz.com/ntgsite/2013/02/ntg-at-upcoming-blackberry-experience-forums-nyc-march-4-and-chicago-march-6-4/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/02/ntg-at-upcoming-blackberry-experience-forums-nyc-march-4-and-chicago-march-6-4/#comments</comments>
		<pubDate>Wed, 06 Feb 2013 20:44:55 +0000</pubDate>
		<dc:creator>aaronv</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4365</guid>
		<description><![CDATA[New Toronto Group will have a booth at the BlackBerry Experience Forum on March 4 in New York City at the Marriott Marquis Hotel.  http://www.blackberryexperienceforum.com/about/index/event/13. We will also be in Chicago on March 6 at The Sheraton Chicago Hotel. http://www.blackberryexperienceforum.com/about/index/event/17 Come and see our sample BB10 apps we’ve been working on and we can tell you [...]]]></description>
			<content:encoded><![CDATA[<p>New Toronto Group will have a booth at the BlackBerry Experience Forum on March 4 in New York City at the Marriott Marquis Hotel.  <a href="http://www.blackberryexperienceforum.com/about/index/event/13">http://www.blackberryexperienceforum.com/about/index/event/13.</a></p>
<p>We will also be in Chicago on March 6 at The Sheraton Chicago Hotel.<a href="http://www.blackberryexperienceforum.com/about/index/event/17"> http://www.blackberryexperienceforum.com/about/index/event/17</a></p>
<p>Come and see our sample BB10 apps we’ve been working on and we can tell you about all of the BB10 app dev services we currently provide.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F02%2Fntg-at-upcoming-blackberry-experience-forums-nyc-march-4-and-chicago-march-6-4%2F&amp;title=NTG%20at%20Upcoming%20BlackBerry%20Experience%20Forums%3A%20NYC%2C%20March%204%20and%20Chicago%2C%20March%206"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/02/ntg-at-upcoming-blackberry-experience-forums-nyc-march-4-and-chicago-march-6-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Love You Implicitly</title>
		<link>http://www.newyyz.com/ntgsite/2013/02/i-love-you-implicitly/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/02/i-love-you-implicitly/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 16:43:39 +0000</pubDate>
		<dc:creator>seanh</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[implicity]]></category>
		<category><![CDATA[Sean Hopen]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4350</guid>
		<description><![CDATA[I can see that learning to develop with C++ and Qt can be daunting at first. &#160; Here&#8217;s my tip: If you&#8217;re learning Cascades, make sure you don&#8217;t skim over &#8220;Implicit Sharing&#8221;. It&#8217;s a very cool feature of Qt/Cascades, that lets  you relax about memory management, and stay efficient at the same time. &#160; Briefly, [...]]]></description>
			<content:encoded><![CDATA[<p>I can see that learning to develop with C++ and Qt can be <a href="http://devblog.blackberry.com/2012/07/cascades-development/">daunting at first</a>.</p>
<p>&nbsp;</p>
<p>Here&#8217;s my tip: If you&#8217;re learning Cascades, make sure you don&#8217;t skim over &#8220;Implicit Sharing&#8221;. It&#8217;s a very cool feature of Qt/Cascades, that lets  you relax about memory management, and stay efficient at the same time.</p>
<p>&nbsp;</p>
<p>Briefly, implicit sharing allows you to pass objects around in arguments and return values without making copies, unless you write to them. i.e. copy-on-write</p>
<p>&nbsp;</p>
<p>Underlying that is a smart pointer called <a href="https://developer.blackberry.com/cascades/reference/qshareddatapointer.html">QSharedDataPointer</a>. If you don&#8217;t want to make your own implicitly shared classes, you still need to know about it because all of Qt&#8217;s basic types (QString, QImage, QList, etc.) all use it.  If you ignore that, you&#8217;ll be doing a lot of redundant memory management.</p>
<p>&nbsp;</p>
<p>Now you can pass arbitrarily big objects around as if they were values instead of pointers.  When no one uses the object anymore, it gets deleted. You don&#8217;t have to trace an object&#8217;s whole life span to make sure it gets deleted. &#8220;This Class is implicitly shared&#8221; is all you have to document for your clients. They don&#8217;t have to sweat where to delete it either.  Very nice.</p>
<p>&nbsp;</p>
<p>As soon as I figured this out, my code and I both got faster and my blood pressure went down a couple of kilopascals.</p>
<p>&nbsp;</p>
<p>If you don&#8217;t know about the other Qt smart pointers (<a href="https://developer.blackberry.com/cascades/reference/qscopedpointer.html">QScopedPointer</a>, <a href="https://developer.blackberry.com/cascades/reference/qsharedpointer.html">QSharedPointer</a>) and their C++ equivalents (<a href="auto_ptr">auto_ptr</a>, and <a href="https://anteru.net/2008/09/01/260/">shared_ptr</a>) you need to check them out too. And if you don&#8217;t know how to use those, then you probably don&#8217;t know C++ as well as you think you do. When I started cascades programming, I was comfortable with C++&#8217;s syntax &#8212; I knew C really well, and had done a small project many years ago in C++. But lots of very smart people have figured out a ton about how to <em>really</em> use C++ since then. You can still shoot yourself in the foot, but it is a lot safer, <em>when you know how</em>. I think that&#8217;s contributed to a big resurgence of C++ (seemingly backed  by even <a href="http://www.infoworld.com/d/application-development/hail-the-return-native-code-and-the-resurgence-c-170142">Google</a> and <a href="http://www.i-programmer.info/news/98-languages/2436-c-resurgence-at-microsoft-c-weekly.html">Microsoft</a>. See a bunch of <a href="https://www.google.ca/search?q=resurgence+of+C%2B%2B&amp;aq=f&amp;oq=resurgence+of+C%2B%2B&amp;aqs=chrome.0.57j61j60l2j0j61.3229&amp;sourceid=chrome&amp;ie=UTF-8">articles on this</a>, and a good counterpoint <a href="http://simpleprogrammer.com/2012/12/01/why-c-is-not-back/">here</a>.)</p>
<p>&nbsp;</p>
<p>To embrace the modern practice of C++ read <a href="http://news.slashdot.org/story/05/06/07/1531214/effective-c-third-edition">Effective C++</a> , an essential resource. Seriously, you <em>have</em> to read it. The third edition.</p>
<p>&nbsp;</p>
<p>Cascades&#8217; documentation on <a href="https://developer.blackberry.com/cascades/reference/implicit-sharing.html">Implicit Sharing</a> is pretty clear. Play with it a bit to make sure it works the way you think it does, and you&#8217;ll be glad you did.</p>
<p>&nbsp;</p>
<p>P.S. All this stuff about smart pointers is generally called <a href="http://en.wikipedia.org/wiki/RAII">RAII</a> (Resource Allocation Is Initialization). It works for mutexes, and file handles and other resources as well as memory and is key to making your code exception-safe as well.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F02%2Fi-love-you-implicitly%2F&amp;title=I%20Love%20You%20Implicitly"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/02/i-love-you-implicitly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding an X to Close a noty.js Notification</title>
		<link>http://www.newyyz.com/ntgsite/2013/02/adding-an-x-to-close-a-noty-js-notification/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/02/adding-an-x-to-close-a-noty-js-notification/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 15:10:13 +0000</pubDate>
		<dc:creator>Chad Upton</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[Chad Upton]]></category>
		<category><![CDATA[close]]></category>
		<category><![CDATA[noty]]></category>
		<category><![CDATA[x]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4329</guid>
		<description><![CDATA[By Chad Upton &#8211; senior consultant Noty is a jQuery plugin for doing popup notifications in a browser. They&#8217;re simple, pretty, and they slide in like toast style notifications on the desktop. They can be positioned at the top, side, bottom or even in a custom container. Here&#8217;s a screen capture of one that slides [...]]]></description>
			<content:encoded><![CDATA[<p>By Chad Upton &#8211; <em>senior consultant</em></p>
<p>Noty is a jQuery plugin for doing popup notifications in a browser. They&#8217;re simple, pretty, and they slide in like toast style notifications on the desktop.</p>
<p>They can be positioned at the top, side, bottom or even in a custom container. Here&#8217;s a screen capture of one that slides in from the top:</p>
<p><img class="aligncenter size-full wp-image-4331" title="noty" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/02/noty.png" alt="" width="448" height="289" /></p>
<p>Noty does have a built in way to do confirmation buttons, but it adds an additional line to the popup, which isn&#8217;t as clean as the example above. Here&#8217;s what the built in method looks like:</p>
<p><img class="aligncenter size-full wp-image-4332" title="noty-confirm" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/02/noty-confirm.png" alt="" width="464" height="274" />I think it looks a lot cleaner with just the &#8220;x&#8221; to close. My example just shows one button (the &#8220;x&#8221;) but you modify my example and put &#8220;ok&#8221; and &#8220;cancel&#8221; buttons where I have the &#8220;x&#8221; if you need more than just close functionality.</p>
<p>Adding custom html to noty is very easy, and my example also includes a callback to handle a user click on the &#8220;x&#8221; (or your substitute buttons).</p>
<p><strong>Source Code:</strong></p>
<p>You can<strong> <a href="http://jsfiddle.net/bxHHD/4/" target="_blank">run and view the working source code on jsfiddle here</a></strong> and an explanation of the code follows:</p>
<p>1. I&#8217;ve added some css to float the div containing the button (&#8220;x&#8221;) to the right:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;style<span style="color: #00AA00;">&gt;</span><br />
<span style="color: #6666ff;">.notyCloseButton</span> <span style="color: #00AA00;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span><br />
<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
&lt;/style<span style="color: #00AA00;">&gt;</span></div></div>
<p>2. Import the necessary javascript files for jQuery and noty. These can be found in the side panel of jsfiddle, but should be added above the existing script tag in the document if you copy the code from jsfiddle and try it elsewhere:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;script src<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;lib/jquery-1.7.2.min.js&quot;</span><span style="color: #00AA00;">&gt;</span>&lt;/script<span style="color: #00AA00;">&gt;</span><br />
&lt;script src<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;lib/noty/jquery.noty.js&quot;</span><span style="color: #00AA00;">&gt;</span>&lt;/script<span style="color: #00AA00;">&gt;</span><br />
&lt;script src<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;lib/noty/layouts/top.js&quot;</span><span style="color: #00AA00;">&gt;</span>&lt;/script<span style="color: #00AA00;">&gt;</span><br />
&lt;script src<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;lib/noty/themes/default.js&quot;</span><span style="color: #00AA00;">&gt;</span>&lt;/script<span style="color: #00AA00;">&gt;</span></div></div>
<p>3. On document ready, create the noty notification:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">var n <span style="color: #00AA00;">=</span> noty<span style="color: #00AA00;">&#40;</span><span style="color: #00AA00;">&#123;</span><br />
type <span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'warning'</span><span style="color: #00AA00;">,</span><br />
<span style="color: #993333;">text</span> <span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'<br />
&lt;div&gt;This is a notification&lt;img id=&quot;notyCloseButton&quot; class=&quot;notyCloseButton&quot; src=&quot;http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/02/x.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;<br />
'</span><span style="color: #00AA00;">,</span><br />
layout <span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'top'</span><span style="color: #00AA00;">,</span><br />
dismissQueue <span style="color: #00AA00;">:</span> true<span style="color: #00AA00;">,</span><br />
callback <span style="color: #00AA00;">:</span> <span style="color: #00AA00;">&#123;</span><br />
afterShow <span style="color: #00AA00;">:</span> function <span style="color: #00AA00;">&#40;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span><br />
$<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'#notyCloseButton'</span><span style="color: #00AA00;">&#41;</span>.one<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">'click'</span><span style="color: #00AA00;">,</span> function<span style="color: #00AA00;">&#40;</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">&#123;</span><br />
alert<span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;You closed the noty&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #00AA00;">&#125;</span><span style="color: #00AA00;">,</span><br />
timeout <span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">5000</span><br />
<span style="color: #00AA00;">&#125;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span></div></div>
<p>You&#8217;ll notice I&#8217;ve added an id to the img tag (notyCloseButton) and then added a click event listener to that tag so you have a callback to execute code if the user closes the noty. If you don&#8217;t need to respond to the user closing the noty, then you can leave this out of course.</p>
<p>Hopefully that helps you make cleaner notifications with a close (or other) buttons.</p>
<p>If you need help specific to your application, <a href="http://www.newyyz.com/ntgsite/contact_us/">contact us</a> for consulting on your project.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F02%2Fadding-an-x-to-close-a-noty-js-notification%2F&amp;title=Adding%20an%20X%20to%20Close%20a%20noty.js%20Notification"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/02/adding-an-x-to-close-a-noty-js-notification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlackBerry Experience Forum February 4, 2013</title>
		<link>http://www.newyyz.com/ntgsite/2013/01/blackberry-experience-forum-february-4-2013/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/01/blackberry-experience-forum-february-4-2013/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 20:59:59 +0000</pubDate>
		<dc:creator>edv</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4319</guid>
		<description><![CDATA[New Toronto Group will have a booth at the BlackBerry Experience Forum this Monday http://mobilesyrup.com/2013/01/08/blackberry-experience-forum-starts-february-4th-in-toronto/. Be sure to come and check us out.  We’d love to show you some of the sample BB10 apps we’ve been working on and talk to you about all of the BB10 app dev services we currently provide.]]></description>
			<content:encoded><![CDATA[<p>New Toronto Group will have a booth at the BlackBerry Experience Forum this Monday <a href="http://mobilesyrup.com/2013/01/08/blackberry-experience-forum-starts-february-4th-in-toronto/">http://mobilesyrup.com/2013/01/08/blackberry-experience-forum-starts-february-4th-in-toronto/</a>.</p>
<p>Be sure to come and check us out.  We’d love to show you some of the sample BB10 apps we’ve been working on and talk to you about all of the BB10 app dev services we currently provide.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F01%2Fblackberry-experience-forum-february-4-2013%2F&amp;title=BlackBerry%20Experience%20Forum%20February%204%2C%202013"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/01/blackberry-experience-forum-february-4-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Tools for OS X</title>
		<link>http://www.newyyz.com/ntgsite/2013/01/developer-tools-for-os-x/</link>
		<comments>http://www.newyyz.com/ntgsite/2013/01/developer-tools-for-os-x/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 22:06:48 +0000</pubDate>
		<dc:creator>Ryan R</dc:creator>
				<category><![CDATA[OSX Development]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[code runner]]></category>
		<category><![CDATA[dash]]></category>
		<category><![CDATA[go2shell]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[rested]]></category>
		<category><![CDATA[sip]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.newyyz.com/ntgsite/?p=4242</guid>
		<description><![CDATA[Web developers have been embracing Macs as development boxes for many years, but with the recent prevalence of mobile development there has been a big influx of OS X development machines in development shops. Wether you are a long time Mac addict, or are just now using a Mac for pragmatic reasons, such as  iOS [...]]]></description>
			<content:encoded><![CDATA[<p>Web developers have been embracing Macs as development boxes for many years, but with the recent prevalence of mobile development there has been a big influx of OS X development machines in development shops.</p>
<p>Wether you are a long time Mac addict, or are just now using a Mac for pragmatic reasons, such as  iOS development, here are some development tools you may find you can&#8217;t live or at least work without:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/coderunner/id433335799?mt=12"><img src="http://a1.mzstatic.com/us/r1000/091/Purple/v4/05/ec/63/05ec638e-65e9-f0a7-f6a5-98e3818c36b2/CodeRunner.175x175-75.png" alt="" width="105" height="105" /></a></p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/coderunner/id433335799?mt=12" target="_blank">Code Runner</a></p>
<p>Code Runner is a neat application which allows you to quickly run snippets of code in various programming languages, including but not limited to, AppleScript C, C++, C# , Objective-C, Java, JavaScript (Node.js), Lua, Perl, PHP, Python and Ruby. Code Runner is wonderful if you want to simply evaluate a snippet of code, which can be as simple as pasting code into a pre-generated, language specific, entry point.</p>
<p>Want to write some C?</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_05_AM.png"><img class="size-medium wp-image-4254 aligncenter" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_05_AM-300x135.png" alt="" width="300" height="135" /></a></p>
<p>&nbsp;</p>
<p>Or maybe you want to evaluate a snippet of PHP?</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_06_AM.png"><img class="size-medium wp-image-4255 aligncenter" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_06_AM-300x111.png" alt="" width="300" height="111" /></a></p>
<p>&nbsp;</p>
<p>Code Runner isn&#8217;t going to replace Eclipse or Xcode, nor is it trying to be, give it a try and see if it finds a place in your workflow.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/rested-simple-http-requests/id421879749?mt=12"><img class="aligncenter" src="http://a4.mzstatic.com/us/r1000/093/Purple/v4/af/9b/5a/af9b5a1f-1f19-e7da-b09f-c9d39c141d4d/New_icon.175x175-75.png" alt="" width="105" height="105" /></a></p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/rested-simple-http-requests/id421879749?mt=12" target="_blank">Rested</a></p>
<p>Rested allows you to quickly create mock HTTP requests and view the returned response. Designed for testing REST based web-services, this tool can be a great sanity-check to ensure you&#8217;re application is actually getting the data it should be.</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_27_AM-2.png"><img class="size-medium wp-image-4256 aligncenter" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_27_AM-2-300x236.png" alt="" width="300" height="236" /></a></p>
<p>Rested supports authentication using HTTP Basic Auth or OAuth, and can set custom headers, parameters or an entire HTTP body. Even better, the requests you create with Rested (along with their responses) can be saved, to be logged or re-used.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/dash-docs-snippets/id458034879?mt=12"><img class="aligncenter" src="http://a1.mzstatic.com/us/r1000/093/Purple/v4/08/03/8a/08038a48-39ec-93f1-333d-1666d4556679/icon.175x175-75.png" alt="Dash Icon" width="105" height="105" /></a></p>
<p style="text-align: center;"><strong><a title="Dash" href="https://itunes.apple.com/ca/app/dash-docs-snippets/id458034879?mt=12" target="_blank">Dash</a></strong></p>
<p>If you&#8217;re like most developers, you don&#8217;t work exclusively in a single programming language, or platform. Dash is designed for the jack-of-all-trades developer in all of us, by providing quick access to the API documentation to almost every API under the sun. Mobile platforms, JavaScript libraries, server technologies and even game engines are all represented in Dash&#8217;s impressive list of available documentation.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_44_AM.png"><img class="aligncenter size-medium wp-image-4264" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_44_AM-300x139.png" alt="" width="300" height="139" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>One of the best reasons to have all your documentation in one place is language-agnostic searching. I know printf() is a function in some language, but which is it again? Dash will tell you.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_46_AM.png"><img class="aligncenter size-medium wp-image-4265" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_46_AM-300x173.png" alt="" width="300" height="173" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Dash also can be used to build up a universal collection of code snippets, and even directly integrate into Xcode.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><strong><a href="https://itunes.apple.com/ca/app/base/id402383384?mt=12"><img class="aligncenter" src="http://a1.mzstatic.com/us/r1000/109/Purple/v4/83/f5/04/83f50466-86d7-9f27-91ef-aa854caf6e1b/Base.175x175-75.png" alt="" width="105" height="105" /></a></strong></p>
<p style="text-align: center;"><strong><a href="https://itunes.apple.com/ca/app/base/id402383384?mt=12">Base</a></strong></p>
<p style="text-align: left;">SQLite is the embedded database of choice for most mobile platforms. BlackBerry developers may also be familiar with SQLite as both WebWorks (BlackBerry 7+) and Cascades (Blackberry 10) can take advantage of it.  iOS developers who&#8217;ve implemented Core Data will know that underneath (by default) is an SQLite database powering all your app&#8217;s data.  Ever want to peek inside? Take Base for a spin.</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_40_AM.png"><img class="aligncenter size-medium wp-image-4262" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_40_AM-300x176.png" alt="" width="300" height="176" /></a></p>
<p style="text-align: left;">Base is a simple SQLite database browser, just open a file and start digging.</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_41_AM.png"><img class="aligncenter size-medium wp-image-4263" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_11_41_AM-300x188.png" alt="" width="300" height="188" /></a></p>
<p style="text-align: left;">Along with visually observing the table makeup of the database, Base allows you to view and edit table data, and even run your own SQL queries.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/go2shell/id445770608?mt=12"><img class="aligncenter" src="http://a3.mzstatic.com/us/r1000/065/Purple/1a/ba/6c/mzi.xfehyfbk.175x175-75.png" alt="" width="105" height="105" /></a></p>
<p style="text-align: center;"><strong> <a title="Go2Shell" href="https://itunes.apple.com/ca/app/go2shell/id445770608?mt=12" target="_blank">Go2Shell</a></strong></p>
<p>&nbsp;</p>
<p>Go2Shell is a very simple Finder extension that does one thing, and one thing well : opens the terminal at your current Finder location.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_1_59_PM.png"><img class="aligncenter size-medium wp-image-4267" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_1_59_PM-300x153.png" alt="" width="300" height="153" /></a></p>
<p>&nbsp;</p>
<p>Go2Shell can be added as a shortcut in the Finder window, jump to the directory you need, press your handy new Go2Shell button and enjoy the 15 seconds of typing you just saved as an OSX Terminal is opened and directed to the above directory&#8217;s location.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/bettersnaptool/id417375580?mt=12"><img class="aligncenter" src="http://a3.mzstatic.com/us/r1000/088/Purple/v4/c1/69/7b/c1697b44-b2df-5ff8-e87f-809002a32d72/icon.175x175-75.png" alt="" width="105" height="105" /></a></p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/bettersnaptool/id417375580?mt=12" target="_blank">BetterSnapTool</a></p>
<p>BetterSnapTool is a simple utility which adds the window 7 &#8220;snap&#8221; effect to OS X. The window &#8220;snap&#8221; is the ability to resize and re-position a window by dragging it into one of the screen&#8217;s sides or corners. BetterSnapTool takes the basic &#8220;window snapping&#8221; concept introduced in Windows 7 and adds a whole bucket of customizability</p>
<p>With the customizability options you can add Keyboard shortcuts, a right-click menu to every finder window, add padding, or even create custom &#8220;snap areas&#8221;. Is BetterSnapTool interfering with the window management of your IDE? No problem, you can enable snapping on a per-application basis.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/sip/id507257563?mt=12"><img class="aligncenter" src="http://a2.mzstatic.com/us/r1000/075/Purple/v4/f6/08/67/f608676e-a0b0-4b2c-d2d6-1d4f6f5d6398/Icon.175x175-75.png" alt="" width="105" height="105" /></a></p>
<p style="text-align: center;"><a href="https://itunes.apple.com/ca/app/sip/id507257563?mt=12" target="_blank">Sip</a></p>
<p style="text-align: left;">Sip is one of many tools I&#8217;ve found to combat a very common situation when implementing a user interface: dealing with colours. Maybe you are dealing with a series of designs from a designer, or trying to get a custom button to have *just the right* tone to nicely fit in with a toolbar, the first step is probably going to involve you becoming a colour detective. This is where you use all sorts of tricks to extract some sort of RGB value from what you&#8217;re looking at.</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_4_49_PM.png"><img class="aligncenter size-medium wp-image-4269" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_4_49_PM-298x300.png" alt="" width="298" height="300" /></a></p>
<p style="text-align: left;">Sip provides a system wide colour picker, and maintains a stack of previously &#8220;pick&#8221;ed colours.</p>
<p style="text-align: center;"><a href="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_4_51_PM.png"><img class="aligncenter size-medium wp-image-4270" src="http://www.newyyz.com/ntgsite/wp/wp-content/uploads/2013/01/Screenshot_2013-01-04_4_51_PM-250x300.png" alt="" width="250" height="300" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The final (and most important) feature of Sip is that a colour will be copied to Clipboard to be pasted into the appropriate piece of code. This is where Sip really becomes powerful as it can generate the appropriate code or colour string for numerous formats.</p>
<p>Working in CSS? Sip can output in one of five valid CSS colour syntaxes, like CSS3 HSL :</p>
<pre style="padding-left: 30px;"><strong>HSL(145.54, 73.72%, 26.86%)</strong></pre>
<p><strong></strong>or CSS HEX:</p>
<pre style="padding-left: 30px;"><strong>#12773D</strong></pre>
<p>Working in the Apple-world? Sip can output CoreGraphics, Cocoa or Cocoa Touch based Colours:</p>
<pre style="padding-left: 30px;"><strong>[UIColor colorWithRed:0.07f green:0.47f blue:0.24f alpha:1.00f];</strong></pre>
<p><strong></strong>Sip can also output in platform agnostic formats like comma delimited RGB:</p>
<pre style="padding-left: 30px;"><strong>18.00, 119.00, 61.00</strong></pre>
<p>or Decimal:</p>
<pre style="padding-left: 30px;"><strong>0.07, 0.47, 0.24</strong></pre>
<p>Take Sip for a test-drive, it&#8217;s just one of many solutions in the tool belt of an experienced colour detective.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.newyyz.com%2Fntgsite%2F2013%2F01%2Fdeveloper-tools-for-os-x%2F&amp;title=Developer%20Tools%20for%20OS%20X"><img src="http://www.newyyz.com/ntgsite/wp/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.newyyz.com/ntgsite/2013/01/developer-tools-for-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
