As a BlackBerry® Evangelist, I frequently find myself on the road and needing to make presentations. These trips are usually quick day trips, so I don’t take a lot of baggage. I am sure most road warriors are in the same boat. Over time, we all have learned how to travel light. Well, I’d like to offer a way to travel a little lighter: leave the laptop at home.


I can hear your response. “What? I’d rather leave my pants at home, I can get pants wherever. But my laptop I must have for my email and presentations”. That is 20th century thinking. When I am on the road, all I need is my BlackBerry® Bold™ 9900 and my BlackBerry® PlayBook™ tablet.


Allow me to explain. You probably already get your email on you BlackBerry phone, right? That makes email on your laptop redundant. Sure, composing long emails and reading attachments on a phone screen can be challenging. That’s why I also carry my BlackBerry PlayBook. I use the BlackBerry® Bridge™ application to link my BlackBerry® Bold and BlackBerry PlayBook together. Now, I can read and compose emails on the larger PlayBook screen.


Setting up BlackBerry Bridge couldn’t be easier. First, make sure you have Bluetooth enabled on both devices. Next, open the system menu on the PlayBook by swiping down from the top bezel while on the home screen. Select BlackBerry Bridge from the left, click the Setup button and follow the prompts.



The setup will download any necessary software to both your PlayBook and your phone and will pair the devices. That’s it! Now, you will see a BlackBerry Bridge group on the home screen of your PlayBook. Open this group to get access to email, calendar, tasks, and other information stored on your phone.



Okay, so email is simple. But I bet you are still wondering, “what about the presentations”? The answer is also simple;I can run presentations from my BlackBerry PlayBook by either one of two ways: One, if it is a simple BlackBerry PowerPoint presentation without animations or embedded video, I use Docs To Go. This application is already on your BlackBerry PlayBook and it enables you to read and edit any Microsoft Office file such as PowerPoint.


However, if the PowerPoint is a little more intense with animations or embedded video, then I opt to use a second means: my Microsoft Skydrive account. Before I hit the road, I copy the presentation from my desktop to a Skydrive folder then access Skydrive through the browser on my PlayBook. The first time you access Skydrive, it will load in mobile mode, that’s not what you want. Zip down to the bottom and turn on the full site. Once you do, it will be automatically remembered, so you won’t have to do it again. In full site mode, you can run your PowerPoint with Microsoft’s online viewer. It has all the same great features as the desktop PowerPoint so you can see slide animations and embedded video. Of course this method does require an Internet connection to run the presentation.


To display the presentation, the PlayBook has a built in HDMI port so hooking up to modern projectors is a snap. Unfortunately in my travels, I have encountered a few not-so-modern projectors. Not to worry, I use an HDMI to VGA adapter cable to connect to older projectors. The one I have works great and only cost about $20 USD from Amazon.


Another great thing about using this configuration for presentations is a little known feature in BlackBerry® Bridge™: remote control. When your BlackBerry phone is bridged to the PlayBook, if you launch the bridge application on your phone, you will see a button to use the phone as a remote control for your PlayBook.



Basically, the touchscreen on my BlackBerry Bold becomes a remote touchpad for the PlayBook. I use this to navigate to and load my presentation. Once the presentation is started, I switch the remote control to Presenter mode by selecting this option from the main application menu.



Now, I can use the onscreen buttons or the volume keys on my phone to move forward or backwards in my presentation. Any of you who have seen me present, know I wander when I talk. This setup allows me that freedom, whereas my laptop insists I stay close by.


So that’s just a few of the ways I use my BlackBerry devices when on the road. There is so much you can do with a BlackBerry PlayBook and BlackBerry phone you don’t need to take a laptop. In fact, I am writing this blog on my PlayBook while traveling back from Atlanta. I left my laptop at home. I wonder if it misses me.

With the release of bbUI.js 0.9.3, a new feature appeared called the Scroll-Panel. The idea is simple enough: have a section of your application that scrolls independently of the items around it. I was waiting for this feature to be released for two reasons: First, I was there when the idea was conceived and implemented. Second, I need this feature in my ZenLottery application.

The idea was conceived and implemented at the BlackBerry Jam World Tour in Toronto, where Tim Neil (@brcewane) was scheduled to present. If you didn’t know, Tim is one of the main authors of bbUI.js. During one of the breaks, an attendee approached Tim with the idea of adding an independently scrolling panel to the bbUI.js. Funny thing is, Tim thought it was a great idea and produced the initial branch over lunch! Right there in front of us, the birth of a new feature.

I have been waiting for this feature for my application: ZenLottery. With ZenLottery, you can generate lottery numbers based on your location. One feature of ZenLottery is the ability to save the sets of generated numbers. If you can save the numbers, then you should be able to delete them as well. The design called for the numbers to be displayed and a delete button at the bottom. Without the Scroll-Panel feature, the delete button may be off the bottom of the screen, if the user chooses to generate more than 8 sets of lottery numbers.

That’s not a good user experience. How do they even know the Delete button is there? The solution is to have a scrollable panel for the sets of numbers. Then, the user can scroll through the numbers without losing the Delete button off the bottom of the screen. With the new scroll-panel feature in bbUI.js, I was ready to rock n’ roll!

The code for showing the sets of numbers is pretty simple. There are two divs: the outer and the inner div. The two divs work together to make sure the numbers are centered on the screen:
<div class=”centerOuter”></div>
For completeness, here’s the centerOuter and centerInner CSS:
width: 100%;
text-align: center;

display: inline-block;

As with the other elements in the bbUI.js, the scroll-panel is a div that gets a special tag. The tag used is data-bb-type and the value is “scroll-panel”. I figured I would add this to the outer div and all would be grand:

<div data-bb-type=”scroll-panel” style=”height: 800px” class="centerOuter">
<div id="numberDiv" class="centerInner"></div>

Notice I also added a style tag to specify the height of the panel. This style tag limits the height of the div and helps to create the scrolling affect I wanted. Now the numbers could scroll and the delete button could stay put. However, there was an unforeseen side effect: I lost the centering of the numbers.

It turns out that the only formatting you can add to the scroll panel is style=”height: ###px”. This tag is necessary so the panel knows its boundaries. Without this style, the panel would occupy the whole screen. At first I thought: no center, bummer. But not to worry! There is a simple solution: keep the centerOuter and centerInner divs the way they were and add the scrolling panel as a wrapper:

<div data-bb-type="scroll-panel" id="scrollPanel" style="height: 800px">
<div class="centerOuter">
<div id="numberDiv" class="centerInner"></div>

Voila! I now have the centered, scrollable sets of numbers while the delete button stays right where it is. Groovy!

Last weekend, I ventured to my first hackathon — and I must admit, I didn’t know what to expect. The hackathon was called Angelhack, and was hosted simultaneously in New York, Seattle, Silicon Valley, and Boston. I attended the Boston event and arrived for the sponsor set-up at 8:00 to put my table together. So far, it felt like a regular trade show.

Then the attendees started to arrive. They were mostly young, college-age people with a smattering of older techies. As people walked by the BlackBerry® table, they would look at the BlackBerry® PlayBook™ tablets on display and nod politely. After a few minutes, I got the attention of a young man and started asking him what he knew about the BlackBerry and BlackBerry® 10. “Nothing,” he said. I began to talk to him about BlackBerry 10 and the benefits of the new QNX kernel. He was impressed to hear that he could “choose his road” to get to BlackBerry 10, whether his road is HTML5, C++, Adobe® AIR®, or even Android™. I also noticed a few glances from some of the people at the other tables. Interest was building.

At Angelhack, there is a period of about four hours where the attendees can mingle and start to get to know each other. They can talk to the sponsors and even make idea pitches to the other attendees. Then it is time for the sponsors to pitch their platforms. I was the last to pitch; it was the perfect position. I knew that everyone would have heard the other pitches and I could trump them all. I had three minutes and I was determined to make the most of it.

I started with the BlackBerry 10 Jam information showing the growth of BlackBerry applications. I talked about the 254% increase in BlackBerry App World™ storefront vendors and the 240% increase in BlackBerry PlayBook tablet apps in the last quarter. I talked about RIM’s commitment to the developer, how we have seeded over 20,000 BlackBerry PlayBook tablets and will seed 5,000 BlackBerry 10 Dev Alpha prototype devices. I talked about the BlackBerry Developer Relations group and how they are here for the sole purpose of helping developers make fantastic apps for the BlackBerry 10 platform. I could tell interest was building, but my three minutes was almost up, so it was time for the closer – in Q2 2011, BlackBerry App World generated 43% more average daily downloads per app than iOS App Store and 48% more than the Android Market/Google Play.

That seemed to seal the deal. Returning to my sponsor’s table, I now had a full house. People were interested in BlackBerry 10 and how to write applications for the platform. I showed demos of BlackBerry® WebWorks™ apps running on the BlackBerry PlayBook tablet to illustrate how quick and responsive it is. Web developers couldn’t believe it. One artist/developer wanted to see how his HTML5 canvas app ran on BlackBerry PlayBook tablet because he had been disappointed in the performance on other platforms. We loaded his app ( and he was awestruck by the speed in which the BlackBerry PlayBook tablet rendered his canvas application. It is just another example of the excellent HTML5 support in the browser on the BlackBerry PlayBook tablet and BlackBerry 10.

As my first hackathon came to a close, I felt a little sad to be leaving. I had met some incredibly talented and creative people, and I had seen some great apps created — even some works of art. I told myself that although this was my first hackathon, it wouldn’t be my last.

Maybe I’ll see you at the next one?

The BlackBerry 10 Jam World Tour arrives home to a packed house – in Toronto. From the very beginning of the day, the positive energy and electricity was palpable as if it was the crowd before a sold out rock concert. The success of the BB 10 Jam World tour had primed the anticipation in the crowd and before the show even began, expectations were high.

Martyn Mallick took the stage first and he exceeded the expectations of the crowd. Martyn laid out some of the thinking behind BB 10 to give the hungry crowd the foundation they needed.  He further fueled their appetite with information about the growth of BlackBerry applications in App World.

Martyn was then joined on stage by Wes Worsfold and Aaron Barnes from Motek Mobile. Wes and Aaron demonstrated their application B’Giftee running on the BB10 Dev Alpha device. B’Giftee is an application that allows people to share the things they love with their friends. The application allows the user to generate a kind, on-the-fly gift card for any item they want to share, then, they share that with their friends. The application ran beautifully on the Dev Alpha device allowing Wes to share a bottle of his favorite beer with Aaron.

Martyn then welcomed Mohammad Agha and Ian MacDonald from Magmic. Magmic demoed their incredibly popular Texas Hold ‘Em King Live; an online multiplayer poker experience. The graphics were stunning, the animations smooth, and the game play flawless. If you are a poker fan, this is your game. It makes it so you can play with poker players all over the world: all for FREE!

After Martyn, Gary Klassen took the stage. Gary introduced the developers in attendance to the BlackBerry 10 User Experience. His passion and commitment to BB10 was obvious in his presentation. Gary also demonstrated the new BlackBerry keyboard with its predictive text capabilities. His demo was greeted with enthusiastic applause and was a topic of conversation the rest of the day. Gary showed that due to the predictive capabilities of the keyboard, he could type an entire sentence in four keystokes and 6 flips of his thumbs. Very groovy stuff.

Tim Neil then took the stage to present an overview of the BB10 architecture. This was Tim’s first appearance at the BB 10 Jam World Tour and he rocked. Tim’s knowledge and experience provided the perfect combination to deliver the overview of the architecture while providing personal insight and real world advantages of the QNX kernel.

Tim Neil’s expertise demonstrates what I’ve always said is the great thing about BlackBerry: that it is more than just a company, it is a community of committed developers and users. This sentiment was never more obvious to me than in Toronto. During the lunch break, a developer approached Tim Neil, who is a key author on the bbUI.js project on GitHub, about a feature they would like to see in the framework. The developer asked if it would be possible to add scrolling panels to the bbUI project so you could have scrolling information surrounded by static information. Tim pulled out his laptop and by the time lunch was over, scrolling panels were part of the next branch in bbUI.js on GitHub.

Also during lunch, all the attendees were treated to homemade cookies, courtesy of another BB10 Jam attendee who made and brought the cookies to the Jam to share. Awesome.

Like the other road shows, the Toronto show had 10 “lightning pitches”. The pitches in Toronto varied from people showing applications running on Dev Alpha devices to people with only a glimmer of an idea. The winner at Toronto was an app currently named Rocket App; although the developer admits that it’s a working title. The application calls the Next Bus API to get information about the bus schedules throughout Toronto. It shows a panel of the information and also a map of the nearest stops. However, Rocket App goes one step further by extending the experience beyond the glass. The application has a crowd sourcing feature that allows users to report the conditions of bus travel in real time. This way, not only can the user of the application get the official information from the Next Bus API, but they also get the first-hand experience through crowd sourcing. An excellent example of one of the key BlackBerry 10 tenets: Extend the application beyond the glass. Great job!

After lunch, the attendees moved to the detail tracks. The WebWorks track was led by Tim Windsor with the bbUI.js and Alice.js session presented by Tim Neil. All the WebWorks track talks were standing room only. Clearly, HTML5 is a key platform for BB10. Tim Windsor provided excellent in depth information about the WebWorks platform and some of the surrounding frameworks. The questions were also incredibly detailed which tells me these developers are already heavily invested in HTML5 development.

On the other side of the lobby, Shadid Haque was presenting the NDK detail track. Just like the WebWorks track, the room was standing room only. Shadid presented all afternoon covering the basics of using C++ with the NDK and also how to integrate with QML for interface design. Here too, questions were not the simple surface question, but in-depth and each question seemed to foster a discussion among the BlackBerry community.

Across the sky bridge, Brent Thornton was delivering the enterprise detail track. This track gave members of the BlackBerry community the opportunity to learn about the enterprise space and get their questions answered by an expert.

All sessions were lively and the audience would move from track to track to absorb as much information as possible. Alas, all great things must come to an end and so must BB10 Jam Toronto. I would be remiss in closing this blog without acknowledging the tireless and awesome work done by all the people running the show. So, to Shelby, Susan, Catrina, Kate and Chris:  a big THANK YOU!

Toronto ROCKS!

The Road Less Traveled

May 25, 2012

Fork in the RoadI have always been a web development guy since the dawn of the web in the mid-90’s. My experience centered on Microsoft technologies: .NET and C#. In the summer of 2011, I decided it was time for something new; time to explore the world of mobile application development.


Like so many before me, I began to travel the well-worn road of iOS development. I started learning Objective-C with “Learn Objective-C on the Mac” by Dalrymple and Knaster. However, this is where the road began to become a bit bumpy. The book was well written and a fabulous introduction to Objective-C, but it was with Objective-C that I was beginning to “object”. To me, the system seemed cobbled together without a clear road. It even apoeared that language was half-way to converting to the dot syntax. No matter, the goal was to produce an iPhone application so I worked my way chapter by chapter through the book.


Next step was developing for an iOS device. I bought myself a MacBook Pro and installed XCode (3.2 was the current version). I was impressed with the installation process; one file downloaded and everything was ready: the IDE, interface builder, and the SDK. Since I liked the Dalrymple/Knaster book, I purchased “Beginning iPhone 4 Development” by Mark, Nutting, and LaMarche which was considered part of the series.


The experience of learning iPhone development went pretty smoothly. As before, I worked my way chapter by chapter through the book. I found the Mark, Nutting, and LaMarche book to be the same high quality as the Dalrymple/Knaster book. The examples were well written and very practical. My road had smoothed a bit and about two-thirds of the way through the book, I felt I had the necessary knowledge to build my first application: ZenLottery.


I picked a lottery app as my first application because it encompasses many of the requirements of other applications. You need to get user input (how many draws to make, draw PowerBall or MegaMillions, etc.), you need to generate data, display the data in a nice format, save user data (in this case the picks made), and store user preferences. In addition, the Zen part was using the geolocation services to generate a random number seed based on the location of the person. ZenLottery was posted to the App Store on March 27, 2012; about six months after starting my journey down the iPhone road.


I figured that was it. Like everyone else, I priced it at $0.99 and waited for the iPhone gold to start pouring into my bank account. And I waited. And I waited. Hmmmm. Something must be amiss. I hear about people making gobs of money with iPhone apps, but not for me. A search for “lottery” in the App Store returned about 750 lottery apps. There had to be a better way.


Around this time a good friend of mine had joined Research in Motion. He was talking to me about the upcoming BlackBerry 10 release and its huge potential. I started playing around with the BlackBerry PlayBook to get an idea of what is coming in the future from RIM. I had come to the proverbial fork in the road. Do I take the well-traveled iPhone road or the less traveled BlackBerry road? I had already invested six months in the iPhone road, maybe I should just keep on trekking. On the other hand, I was very taken with the capabilities of the PlayBook and the potential it represented for BB 10. Time to take the road less traveled.


I joined RIM at the end of April, 2012. My introduction to the company and the technology was at the BlackBerry 10 Jam in Orlando, Fl. BB10 Jam was a conference for developers, produced by developers, and presented by developers: a no-nonsense show about developing for the BB10 platform. There are several technologies you can use to develop BB10 applications: C++, Adobe Air, even HTML5. With my history in web development, I decided to focus on the WebWorks platform.


The WebWorks platform allows developers to write BlackBerry 10 applications using HTML5 and JavaScript. Since these are standard technologies I could also take advantage of many of the JavaScript frameworks like JQuery and Dojo.


At the BB10 Jam, I learned how to install the pieces necessary to develop a WebWorks application. This includes the WebWorks SDK and the Ripple emulator. The Ripple emulator runs as a Chrome plugin and allows you to view your application without a BB10 device. Although the process was not a single file install like the iPhone, the instruction at BB10 Jam made it easy. At the Jam I was also introduced to the bbUI.js project which is an open source project on GitHub that mimics the new BB10 Cascades UI.


Back home after the show, it was time to develop my own application. I downloaded the Aptana studio to use as my IDE. I followed the instructions for installation that I learned at BB10 Jam (URL). Next, I logged on to GitHub to download the bbUI.js project so I could leverage the new UI. I was happy to see the bbUI.js project included a large library of sample code. Following the sample code made utilizing the power of the library a snap. I had my pieces together, time to start cutting code.


My first application was a simple one. Utilize the bbUI.js framework to produce a context menu when the user clicks a button. The context menu would list several images. Clicking on the menu item would load the image into the screen. Seemed like a good little application to get my feet wet with Aptana, WebWorks, and the bbUI.js.


To my surprise, about an hour and half after starting the project I was done. There was no need to read chapter by chapter through massive books, WebWorks used technologies I already knew and the sample code provided clear examples. The application was running in the simulator and on my PlayBook tablet. It was thrilling to see my code running on the tablet. Granted, it was a simple application, but it was my code. I then realized that I had produced an application for the BlackBerry platform after only a few days of study: three days at BB10 Jam, a day getting my machine set up and less than two hours of development time. I compared that to my iPhone experience of six months. It looks like the road less traveled is actually a shortcut to application development!


It is clear to me that attending BB10 Jam was an excellent way to jumpstart my BlackBerry development. Apparently, RIM thinks so too as they are taking the Jam on the road. If you want the easiest and quickest way to learn BlackBerry development or ramp up your existing skills, you can attend these same sessions, still delivered by developers, in a city near you for free. Just go to for details and registration. By attending the Jam, you will get a head start on developing for the exciting BB10 platform and prepare you to take advantage of an untapped market.


Next I plan to recreate ZenLottery for BB10 and document my journey in this blog. Hopefully my blog will be a useful tool for people who want to learn as I learn.


I have chosen the BlackBerry road, and it has made all the difference.