<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>BlackBerry Developer Blog &#187; robwilliamsjnrrim</title>
	<atom:link href="http://devblog.blackberry.com/author/robwilliamsjnrrim/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Tue, 21 May 2013 15:28:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devblog.blackberry.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/9ef0a66c09615fa946c4179662398878?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>BlackBerry Developer Blog &#187; robwilliamsjnrrim</title>
		<link>http://devblog.blackberry.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://devblog.blackberry.com/osd.xml" title="BlackBerry Developer Blog" />
	<atom:link rel='hub' href='http://devblog.blackberry.com/?pushpress=hub'/>
		<item>
		<title>NFC, NFC, and more NFC at BlackBerry Jam Americas 2013</title>
		<link>http://devblog.blackberry.com/2013/05/nfc-blackberry-jam-2013/</link>
		<comments>http://devblog.blackberry.com/2013/05/nfc-blackberry-jam-2013/#comments</comments>
		<pubDate>Fri, 10 May 2013 19:07:16 +0000</pubDate>
		<dc:creator>robwilliamsjnrrim</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14964</guid>
		<description><![CDATA[I’m excited to share two NFC sessions with you in Orlando from May 14-16 for BlackBerry Jam Americas. One of them is an overview of what you can do with BlackBerry 10 and NFC, the other delves deep into making payments happen. JAM36 &#8211; NFC development for BlackBerry 10: A whirlwind tour Here we’ll look [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14964&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I’m excited to share two NFC sessions with you in Orlando from May 14-16 for BlackBerry Jam Americas. One of them is an overview of what you can do with BlackBerry 10 and NFC, the other delves deep into making payments happen.</p>
<p><a href="https://bblive.blackberryconferences.net/2013/connect/sessionDetail.ww?SESSION_ID=2716">JAM36 &#8211; NFC development for BlackBerry 10: A whirlwind tour</a></p>
<p>Here we’ll look at all the tech that is available from you to create solutions. We’ll cover tag reading and writing, P2P and more.  Great to keep in mind that NFC is more than just payment!!!</p>
<p><a href="https://bblive.blackberryconferences.net/2013/connect/sessionDetail.ww?SESSION_ID=2696">JAM26 &#8211; Demystifying NFC Payment</a></p>
<p>But – if you’re thinking about getting into payment (or loyalty programs) – this is the session for you.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/05/robbie.png"><img class="aligncenter size-full wp-image-14969" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/05/robbie-e1368212778768.png?w=550&#038;h=309" width="550" height="309" /></a></p>
<p>We’ll cover a few different approaches and talk about everything you need lined up. There are lots of moving pieces involved to make complete secure element / card emulation solution.</p>
<p>Send me an email or tweet <a href="http://twitter.com/robbieDubya" target="_blank">@robbieDubya</a> for all of your NFC needs.</p>
<p>Thinking of twitter &#8211; Martin <a href="http://twitter.com/mdwrim" target="_blank">@mdwrim</a> and John <a href="http://twitter.com/jcmrim" target="_blank">@jcmrim</a> are people you really should be following if you are into NFC and BlackBerry! #nfcguys</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14964/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14964&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/nfc-blackberry-jam-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3641573bfea7977bb68017a91c03b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">robwilliamsjnrrim</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/robbie-e1368212778768.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>New BlackBerry 10 WebWorks Crypto Extension</title>
		<link>http://devblog.blackberry.com/2013/03/blackberry10-webworks-crypto/</link>
		<comments>http://devblog.blackberry.com/2013/03/blackberry10-webworks-crypto/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 16:37:18 +0000</pubDate>
		<dc:creator>robwilliamsjnrrim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WebWorks]]></category>
		<category><![CDATA[aes]]></category>
		<category><![CDATA[crypto]]></category>
		<category><![CDATA[cryptographic]]></category>
		<category><![CDATA[decrypt]]></category>
		<category><![CDATA[encrypt]]></category>
		<category><![CDATA[FIPS]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[sha]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14277</guid>
		<description><![CDATA[You’ve found a need to perform some cryptographic operations in your WebWorks application? BlackBerry 10 has a FIPS 140-2 validated library built in…  Here’s the basis of a native extension to allow you to access Security Builder functionality. The extension is available on our Github repo . Fork it and have a look! It is [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14277&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<div id="attachment_14278" class="wp-caption aligncenter" style="width: 610px"><a href="http://www.flickr.com/photos/brewbooks/3317243295/"><img class="size-full wp-image-14278" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/03/crypto-e1363963230364.jpg?w=600&#038;h=245" width="600" height="245" /></a><p class="wp-caption-text">Modified version of “ENIGMA Rotor Set” by flickr user brewbooks.</p></div>
<p>You’ve found a need to perform some cryptographic operations in your WebWorks application? BlackBerry 10 has a FIPS 140-2 validated library built in…  Here’s the basis of a native extension to allow you to access Security Builder functionality.</p>
<p>The extension is available on <a href="https://github.com/blackberry/WebWorks-Community-APIs/tree/master/BB10/gseCrypto" target="_blank">our Github repo</a> . Fork it and have a look!</p>
<p>It is a basis – right now – it has SHA1,SHA224,SHA256,SHA384,SHA512 and AES/CBC (all key sizes).</p>
<p><span id="more-14277"></span></p>
<h1>Getting Started</h1>
<h2>Data</h2>
<p>Cryptographic data is binary. You need to be clear on which bytes you want to work with. For this reason the extension accepts data as any of hex, b64 or raw Strings.</p>
<p>Hex is a hexadecimal encoding of the bytes. It’s the safest to work with, and in some ways the easiest. Concatenating two values in hex is way easier than in b64…</p>
<p>Example: { input: { hex: &#8220;b0b5cafe&#8221; } }</p>
<p>Base 64 [b64] is the preferred encoding of MIME. Some features of the Invocation Framework expect b64 encoded data. Data URIs have their b64 encoded. If a crypto extension can work with b64 – that’s probably going to come in handy.</p>
<p>Example: {input: { b64: &#8220;aAz9&#8243; } }</p>
<p>Raw – is just passing the library your String. The big catch here is UTF-8 encoding happening out of your control. If some cipher text contains non-valid UTF-8 encodings – how are you going to marshal that string between JavaScript and c++? You can use it – but trying to use raw with binary data – or non low ASCII languages may bite you later!</p>
<p>Example: { input: { raw: &#8220;Montréal&#8221; } }</p>
<p>Binary data coming back from the extension is available as all 3 encodings, hex, b64 and raw. (Still not sure that raw is a good idea <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  )</p>
<h2>Errors</h2>
<p>Errors will be given as a member of the result object. You’ll see this in the sample application;</p>
<pre><b>if</b> ("error" <b>in</b> result) {
    alert(result.error);
<b>    return</b>;
}</pre>
<h1>Operations</h1>
<p>Current operations you can call are;</p>
<ul>
<li>hash</li>
<li>generateKey</li>
<li>encrypt</li>
<li>decrypt</li>
<li>random</li>
</ul>
<h2>hash</h2>
<p>Hash expects an object with algorithm (alg) and input data (input) set. Eg:</p>
<pre>{
    alg : "sha256",
    input : {
        raw : "r"
    }
};</pre>
<p>The typical result is an object with an attribute called output. Output itself is an object containing a hex, b64 and raw encoding of the output. Eg:</p>
<pre>{
    "output" : {
        "b64":"RUNJ5CLwUpcZHq0T4h09tSDlq+9SBV5JZLgvshP1k6E=",
        "hex":"454349e422f05297191ead13e21d3db520e5abef52055e4964b82fb213f593a1",
        "raw":"ECIä\"ðR\u0019\u001e­\u0013â\u001d=µ å«ïR\u0005^Id¸/²\u0013õ¡"
    }
}</pre>
<h2>generateKey</h2>
<p>Generate key expects an object with algorithm (alg) set. Each individual key generator may expect more values to be set.</p>
<h3>generateKey – AES</h3>
<p>Generate key – AES – expects the algorithm (alg) and key size (keySize) in bits as an integer to be set. Eg:</p>
<pre>{
    alg : "aes",
    keySize : 192
}</pre>
<p>AES keys are symmetrical. The data comprising the key is contained in the key attribute of the returned object.</p>
<pre>{
    "key" : {
        "b64" : "yzC1yYivNK1VV8gNlYYaSQ==",
        "hex" : "cb30b5c988af34ad5557c80d95861a49",
        "raw" : "Ë0µÉ¯4­UWÈ\r\u001aI"
    }
}</pre>
<p>Generating an AES key is redundant – you could have just used random data of the correct length.</p>
<h2>encrypt</h2>
<p>Encrypt expects an object with algorithm (alg) set. Each individual encryption implementation may expect more values to be set.</p>
<h3>encrypt – AES</h3>
<p>Encrypt – AES expects the following values in the parameter object.</p>
<ul>
<li>Algorithm (alg)</li>
<li>Mode (mode) (only CBC is currently implemented)</li>
<li>Key (key)</li>
<li>Initialization Vector (IV) (only CBC is current implemented – so this is required)</li>
<li>Data to encrypt (input)</li>
</ul>
<p>Eg:</p>
<pre>{
    "alg" : "aes",
    "mode" : "cbc",
    "key" : {
        "hex":"cb30b5c988af34ad5557c80d95861a49"
    },
    "input" : {
        "b64":"TW9udHLDqWFsBwcHBwcHBw=="
    },
    "iv" : {
        "hex":"ffeeddccbbaa99887766554433221100"
    }
}</pre>
<p>The typical results object contains data in the output attribute. Eg:</p>
<pre>{
    "output" : {
        "b64" : "U1fXXVAxdjJf3CLLnF/SVw==",
        "hex" : "5357d75d503176325fdc22cb9c5fd257",
        "raw" : "SW×]P1v2_Ü\"Ë_ÒW"
    }
}</pre>
<h2>decrypt</h2>
<p>Decrypt expects an object with algorithm (alg) set. Each individual decryption implementation may expect more values to be set.</p>
<h3>decrypt – AES</h3>
<p>Decrypt – AES expects and returns the same attributes as encrypt – AES.</p>
<h2>random</h2>
<p>Random does not expect an algorithm (alg) to be set on input. The original extension author was too lazy to allow the random implementation to be selected.</p>
<p>Random does expect the attribute size to be set. It is an integer indicating the number of random byte that should be returned.</p>
<pre>{
    size : 16
}</pre>
<p>A response will have the output attribute set to the random data. Eg:</p>
<pre>{
    "output" : {
        "b64" : "QGXBbFgY3FPkNwuZHtGRYA==",
        "hex" : "4065c16c5818dc53e4370b991ed19160",
        "raw" : "@eÁlX\u0018ÜSä7\u000b\u001eÑ`"
    }
}</pre>
<h1>Padding</h1>
<p>Security Builder GSE does not implement padding algorithms for block ciphers. For this reason you’ll see a PKCS#5 padding implementation in the JavaScript of the sample application.</p>
<p>This padding implementation shows a safe workflow – the function UTF-8 encodes a string before it is padded. It then encodes the combined block using b64.</p>
<p>The padding verification does the reverse – refusing to return the alleged plain text unless the padding verifies.</p>
<p>Remember that padding isn’t really much security… If you try to verify the padding on random bytes the probability that it will pass is great than 1/256…</p>
<p>Let me know what algorithms you need &#8211; How are YOU going to protect you and your users’ data? Looking forward to seeing pull requests with great extra functionality!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14277/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14277&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/03/blackberry10-webworks-crypto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3641573bfea7977bb68017a91c03b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">robwilliamsjnrrim</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/03/crypto-e1363963230364.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Talking With Your Arduino via NFC on BlackBerry</title>
		<link>http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/</link>
		<comments>http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 16:28:20 +0000</pubDate>
		<dc:creator>robwilliamsjnrrim</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12599</guid>
		<description><![CDATA[Did you know that it’s easy to exchange data between your NFC enabled smartphone and your Arduino? It can be arbitrary data too – it does not need to be formatted as NDEF tags or ISO 7816-4 APDUs! What does it take to get an Arduino that talks with BlackBerry running? Here’s what I used [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12599&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-12600" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/12/devblog-nfc-avec-arduino-e1354894489515.png?w=600&#038;h=163" width="600" height="163" /></p>
<p>Did you know that it’s easy to exchange data between your NFC enabled smartphone and your Arduino? It can be arbitrary data too – it does not need to be formatted as NDEF tags or ISO 7816-4 APDUs!</p>
<p>What does it take to get an Arduino that talks with BlackBerry running? Here’s what I used to make a very basic color mixing application that shares colors between the Arduino and the BlackBerry over NFC.</p>
<ul>
<li>Some NFC enabled BlackBerry devices. I’m using my Bold 9900s. &lt;3 the keyboard!</li>
<li>1 Arduino. I’m using an Arduino Uno R3 (it’s under the shield)</li>
<li>1 Adafruit Industries PN532 NFC/RFID shield. A great shield available here: <a href="http://adafruit.com/products/789">http://adafruit.com/products/789</a></li>
<li>1 BlackBerry application.</li>
<li>1 Arduino sketch</li>
<li>A copy of the Adafruit NFCShield library. Note that I have made modifications to get the functionality that I needed; <a href="https://github.com/blackberry/Adafruit_NFCShield_I2C">https://github.com/blackberry/Adafruit_NFCShield_I2C</a> (pull request pending&#8230;)</li>
<li><b><i>Imagination.</i></b> This is the most important ingredient! With these other ingredients you could build… anything! (Hit me up in the comments with your project!)</li>
</ul>
<ul>
<li>Optional: The manual for the PN532. <a href="http://www.adafruit.com/datasheets/pn532um.pdf">http://www.adafruit.com/datasheets/pn532um.pdf</a></li>
</ul>
<p><span id="more-12599"></span></p>
<h2>Arduino Sketch</h2>
<p>Here are the guts of my sketch – stripped to the barest functionality… I need to ‘inList’ a passive target and then ‘inDataExchange’. If you can ‘inList’ a target – then you can send data to it…</p>
<pre>if (nfc.inListPassiveTarget()) {
    while(true) {
      message[0] = 1; message[1] = r; message[2] = g; message[3] = b;
      uint8_t responseLength = sizeof(message);
      if (nfc.inDataExchange(message,sizeof(message),message,&amp;responseLength)) {
        uint8_t command = message[0];
        switch(command) {
        case 1:
          if (responseLength==4) {
            r = message[1];
            g = message[2];
            b = message[3];
            showColor();
          }
          else {
            //Serial.println("Doesn't seem to be a color...");
          }
          break;
        default:
          ;
        }</pre>
<p>The Adafruit samples show you everything you need to know about initializing the class.</p>
<p>The active NFC peer (the Arduino) is responsible for sending data first. You may have to keep on polling your passive peer.</p>
<h2>Java</h2>
<p>Again – just the basics. You need to create a VirtualISO14443Part4TypeATarget. You have to be aware that the target is only active when your app is in the foreground. The number below is not used by the API. <b>this</b> is an instance of VirtualISO14443Part4TargetCallback.</p>
<pre>    emulated = <b>new</b> VirtualISO14443Part4TypeATarget(<b>this</b>, "10451045", <b>null</b>);
    emulated.startEmulation();</pre>
<p>Then, in the callback I send the color that has been mixed on the screen (unless the user hasn’t chosen a color recently). The byte array returned from this method is transmitted over NFC.</p>
<p><b>private</b> <b>byte</b>[] processCommand(<b>byte</b>[] command) {</p>
<pre>        <b>if</b> (command == <b>null</b>) {
            <b>return</b> <b>new</b> <b>byte</b>[0];
        }
        <b>int</b> messageType = command[0] &amp; 0xff;
        <b>switch</b> (messageType) {
        <b>case</b> 1:
            <b>if</b> (command.length == 4) {
                <b>int</b> colorIn = (command[1] &amp; 0xff) &lt;&lt; 16;
                colorIn |= (command[2] &amp; 0xff) &lt;&lt; 8;
                colorIn |= (command[3] &amp; 0xff);

                <b>if</b> (colorIn != color) {
                    <b>if</b> (colorQueued) {

                        <b>byte</b>[] toReturn = <b>new</b> <b>byte</b>[4];
                        toReturn[0] = 1;
                        toReturn[1] = (<b>byte</b>) (color &gt;&gt; 16);
                        toReturn[2] = (<b>byte</b>) (color &gt;&gt; 8);
                        toReturn[3] = (<b>byte</b>) color;

                        <b>return</b> toReturn;</pre>
<p>Existing BlackBerry samples and tutorials explain the listener really well.</p>
<h2>The Result</h2>
<p>Here’s a very short video showing several BlackBerrys sharing colors with the Arduino. I built a paper cube around my LED to try and make it easier to capture on video.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/SmGnn1Bb2yc?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<h2>My NFC Slogan</h2>
<p><b><i>You’re already there! No need to PAIR!</i></b></p>
<p>What I’m trying to say in my slogan is this: there are times when you want to be physically at a device and make it do something. To me – NFC feels a little like the crystals that power starship computers in SCI-FI shows. The hero moves them into the right spot; completing the system and saving the day, galaxy and timeline.</p>
<p>There are times that you don’t want to be there either… And there are lots of higher powered RF systems for that…</p>
<h2>What Can You Make?</h2>
<p>Who will make the first bridge for NFC to XBee that has a cradle form factor?</p>
<p>I’m looking forward to hearing in the comments what you are going to Make!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12599/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12599/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12599&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3641573bfea7977bb68017a91c03b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">robwilliamsjnrrim</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/12/devblog-nfc-avec-arduino-e1354894489515.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>The 50k Pixel TV: Thoughts on NFC Capabilities</title>
		<link>http://devblog.blackberry.com/2012/08/nfc-capabilities/</link>
		<comments>http://devblog.blackberry.com/2012/08/nfc-capabilities/#comments</comments>
		<pubDate>Tue, 21 Aug 2012 14:17:46 +0000</pubDate>
		<dc:creator>robwilliamsjnrrim</dc:creator>
				<category><![CDATA[Editorials]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[NFC Smart Tags]]></category>
		<category><![CDATA[SmartPoster]]></category>
		<category><![CDATA[sports]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=10712</guid>
		<description><![CDATA[Discussing the various capabilities and use-case scenarios for NFC.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10712&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Fifty thousand pixels doesn’t sound like that many – that’s just 2.5% of a full HD picture – but a fifty-thousand pixel TV could be magical. The opening and closing ceremonies in London just proved how magical it can be by hard wiring each seat, but NFC could let you do it much more easily!</p>
<p>Imagine if you permanently placed NFC SmartPoster tags on every seat in a stadium. With just a hover of your BlackBerry® smartphone over that tag, a huge array of content and services could be available to your event attendees.</p>
<p>Two pieces would build the deployment, NFC tags and a web server. The tags would be mounted on or near the seat and they wouldn’t have to hold much data. A URL containing the venue and the seating information would be enough. For example:</p>
<p><code><a href="http://www.stadiumboss.com?ven=yyz&#038;sec=521&#038;lev=4&#038;seat=36" rel="nofollow">http://www.stadiumboss.com?ven=yyz&#038;sec=521&#038;lev=4&#038;seat=36</a></code></p>
<p>The web server would contextually redirect or fulfill a user’s browser’s request, depending on events that were currently underway. The content of that URL would be in no way static!</p>
<p><span id="more-10712"></span></p>
<p>If you visited this URL when there was no event occurring, you could show a map highlighting where that seat is. Who is mayor of this seat? Famous people who’ve sat here? How often do fly-balls get caught here? You would even be able to see the view that seat offers. Interactive 3D graphics from the correct point of view related to the game could be shown to a user. (Anyone familiar with the cricket infographics showing where each 4 and 6 was hit during an inning? You could bring it to a whole new level of involvement.) During a sporting event, information as typical as roster information could be a basic offering – but you could alter the content to make it seat specific.</p>
<p>Do you need a drink or assistance to leave your seat? Those could be requested from the same web page. (Steps taken to ensure event participation or attendance would be needed here – but if you used NFC ticketing to enter the event, you’re already done!)</p>
<p>Your BlackBerry smartphone has your exact location &#8211; but where’s my buddy Kev? I was sure he was sitting in section 6&#8230; If Kev allowed his seating information to be shared when he buzzed in, your smartphone could show you where Kev is seated in relation to you, or even guide you there. The venue could also have way-point tags mounted in the aisles and hall ways – perhaps a ‘convention center’ mode for easy stall mapping?</p>
<h3><strong>Back to the 50k Pixel TV</strong></h3>
<p>Everything above is dependent on the smartphone screen being aimed at you. People at concerts already hold up their phones – the web page you hit from buzzing into the concert via NFC could be just a single color. And when 50,000 people hold out their phones, those colors will merge into something visceral. The whole crowd could be glowing purple, or those screens could form a giant image.</p>
<p>There’s nothing stopping you from making that image dynamic. (OK, maybe the available bandwidth of the neighboring cell network is a limitation &#8212; you don’t want everyone in the stadium trying to access the web at the same time!) Making the color change in sync with the concert to form pictures and video will give you an immersive, living and dynamic 50k pixel TV!</p>
<h3><strong>For Users Without NFC</strong></h3>
<p>Static information like a seat number doesn’t need to be presented with NFC. Scanning a bar code could achieve the same result. Entering your seat number into your device manually would do the same. Hovering then hitting the web is a smoother user experience.</p>
<h3><strong>What Can YOU Build?</strong></h3>
<p>If you know exactly where a user is in a large 3D space and all that they have to do is hover their phone to engage with you – what can you build for them? Let us know your ideas in the comments.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/10712/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/10712/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10712&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/08/nfc-capabilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3641573bfea7977bb68017a91c03b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">robwilliamsjnrrim</media:title>
		</media:content>
	</item>
	</channel>
</rss>
