June 8th, 2009
Wow, what a conference. As I’ve said before, I haven’t been to JavaOne in over 9 years, so things were a bit overwhelming for me. First of all, I went to the wrong Moscone Center. After my plane landed on Monday, I took a shuttle to my hotel. Afterwards, I briskly walked from my hotel over to Moscone West — and the building was empty. I asked the security guard where the JavaOne conference was, and he said that it was at the “other” Moscone Center…

…Thanks dude. Anyway, I found Moscone North and South where the conference was held, and I was able to register, and go to the Java Champions dinner on Monday. Anyway, he’s a list of the the pro’s and con’s that I learned at JavaOne:
Pro’s
- The Java SE VM is on a billion desktops
- The Java ME VM is on 2.6 billion mobile devices
- The Java7 SDK was released at JavaOne
- The JavaEE 6 SDK was released at JavaOne
- Verizon (the largest mobile carrier in the US) plans to open their platform to Java ME
- The Java Store was announced (http://store.java.com)
- Larry Ellison plans to enhance OpenOffice with JavaFX technology
- Larry Ellison wants to support the Android platform
Con’s
- The Java Store is not ready yet
- Nobody showed much interest in Java 7 (can you name any of the new features?)
- No MIDP 3 SDK was available for download
- No MIDP 3 phones were available for purchase
All-in-all, it was a great conference, and I hope to be able to attend next year.
Posted in JavaOne | 3 Comments »
May 17th, 2009
Alright folks, it’s time. If you’re interested in getting a free beta version of BlogRadio, then you need to act now.

So, it’s very easy to qualify for the beta test. First of all, we won’t require any personal information. All you need to do is write a comment in this blog posting that answers the following five (5) questions:
- Why do want to try out BlogRadio? (Most people will use it while commuting, but we’re curious about if there are any other use cases that we haven’t explored)
- What mobile devices do you own that you can test with? (If you’re like me, then you have more than one mobile device)
- BlogRadio currently reads blog items in English, but what other language(s) should we support?
- Do you have a blog? (If the answer is “no”, that’s ok).
- What are the top 3 blogs that you would use BlogRadio for?
We’re going to accept applications for the beta only for this week (Sunday May 17 - Saturday May 23). If you’re chosen for the beta test, then we’ll contact you via email about further instructions and how to get started.
Posted in blogradio | 1 Comment »
May 10th, 2009
Well, if you’ve heard any of the news, press releases, or blog postings about Bluetooth 3.0, then you should be as excited as I am about this stuff. It’s nicknamed Bluetooth 10x for a reason; we’re talking about sending your data at 24 Mb/s! However, some folks are a little confused about how all this stuff works, so please allow me to explain a few concepts.
First of all, let’s take a look at some wireless standards (you’re probably familiar with the first one):
So, in the past decade, the IEEE standards body came together, designed, and formed all of the wireless standards listed above. Now, Wi-Fi is a brand name of *an* implementation of 802.11 wireless standard. Wi-Fi is such a common brand name, it is synonymous as the only implementation of the 802.11 standard. But that’s not the case.
The same things goes for Bluetooth. Bluetooth is an implementation of the 802.15.1 wireless standard, but it is not necessarily the only implementation. Likewise, this pattern applies to ZigBee. The SunSpot wireless devices natively communicate over the 802.15.4 wireless protocol, but they do NOT implement the ZigBee protocol stack.
So here’s what you can expect in the new Bluetooth 3.0 devices that will be coming next year. Bluetooth 3.0 devices will be able to discover and search for services for remote Bluetooth 3.0, 2.1, 2.0, 1.1, and 1.0 devices. However, if both devices support Bluetooth 3.0, then when the data payload is being sent, the data will be sent over the 802.11 “channel” and not the 802.15.1 “channel”.
I hope this makes sense.
Posted in Bluetooth 3.0, Bluetooth | 1 Comment »
May 3rd, 2009
Ok, it’s been a long time since I’ve been to JavaOne. The last time I went, it was JavaOne 2000, and I had a blast. It is absolutely my favorite conference to attend (even though I haven’t been back in 9 years).

I won’t be presenting this year, but if you can find me, I’ll either be wearing a BlogRadio t-shirt or a Java Champions shirt. And yes, I will have the prototype of BlogRadio with me :-)
Posted in JavaOne | 2 Comments »
April 26th, 2009
Ok, let me give you a word of advice. If you’re planning on developing a mobile, wireless, or internet application, then the best way to deter users from using your product, game, or service is to force them them to sign-up or register. I know that it’s an industry standard to have all your users to sign-up or register, but believe me, today’s customers are tired of having to register just to use every new application or service that pops up. Here’s some of the major reasons why people DON’T want to register:
- The registration process could be time intensive
- The user my be required to give personal information
- The user my be required to give their email address (and you can spam them)
- The user will have to try to remember yet another username and password pair
- The user may have to read a long license, disclaimer, or privacy policy (which protects YOU, not them)
Currently, I’m at the point where I’m walking away from the sites where I have to sign up, unless it’s REALLY worth the hassle. And guess what? Your potential customers are doing the same thing.
So, what are we doing differently with BlogRadio (coming in June 2009 to the Ovi store)? Take a look at the beta version of the BlogRadio Desktop Manager, shown below:

The whole purpose of the Desktop Manager is to allow users to manage the list of blogs that they want to hear on the BlogRadio Mobile application. So, if we don’t force the user to sign up, the how can we determine the data coming from one copy of the Desktop Manager among the thousands of copies of the Desktop Manager?
Key codes.
If you look at the bottom-left section of the image above, you’ll see that we assigned a key code to this particular user. When the user initializes their mobile client for the first time, all they need to do is enter in the key code that’s clearly shown on their Desktop Manager. We now have everything that we need to send their personal blog list to their mobile client. And of course, the user is happy because they don’t have to register.
Posted in blogradio | 1 Comment »
April 23rd, 2009
Now, if you’ve never written an application that uses the Bluetooth protocol with OBEX before, then (in my opinion) the effort can be a little daunting. Of course, The Bluetooth specification gives you plenty of options on how to send data, but the best way to send files between two devices is truly the OBEX protocol in the Bluetooth specification. Below are links to two articles that I wrote for IBM a few years ago, and the code provides some great examples for developers. Additionally, if you’re looking for help in developing a desktop application that uses Bluetooth and OBEX, then the example code in these two articles will be invaluable to you since all the examples were written using the JSR-82 API on the Java SE JVM.
The first article is entitled, “File transfer with JSR-82 and OBEX“, and shows you how to create an OBEX server using Java code. The second article is entitled, Creating the Bluetooth Music Store, and it shows you how to create an OBEX client application. At the end of second article, there’s another example application presented (which extends the basic OBEX client application) which is called the Bluetooth Music Store.

The articles got high ratings by the readers on the IBM site, so I figured that you would find them of interest. Of course, you can find links to all the mobile computing articles in the “articles section” on main JavaBluetooth.com site.
Posted in articles, Bluetooth | 1 Comment »
April 20th, 2009
Ok folks, I can admit that it’s been a while since I made a blog posting. However, I want to assure you that I haven’t fallen off the edge of the planet. I’ve been working on an earth-shattering new mobile application that will completely change the way you use your mobile device. The application is named, BlogRadio, and it’s a very simple concept that will allow you to listen to your favorite blogs sites using a mobile device.

Now, if you’re like most internet users, then there are some blogs that you like to read. On the other hand, if you’re like me, then there are alot blogs that you like to read! So I created this application to allow anyone to listen to their favorite blogs while they’re on-the-go. I have alot more to announce about BlogRadio as we get ready to launch the application on the Ovi Store next month (including a free beta program), so stay tuned, an don’t worry, you won’t have to wait long for this app.
Posted in blogradio | 1 Comment »
March 29th, 2009
Just in case you didn’t notice, the Bluetooth specification is a huge spec. It’s over 1000 pages and covers alot of topics including advanced frequency hopping, low power states, communication parameters, and a whole bunch of other stuff. So, as I work on “Bluetooth for Java, 2ed”, I thought that it would be a good idea to create a tutorial on what all the profiles are, and what do they do. So let’s get started!
Profile Name: Serial Port Profile
Abbreviation: SPP
UUID: 0×1101
Description: The Serial Port Profile (SPP) is a profile that interacts directly with the RFCOMM layer in the Bluetooth protocol stack, and it’s one of the most commonly used profiles since the inception of Bluetooth. If you have an electronic device has has a serial port, or is capable of processing raw byte streams, then SPP would be a good choice if you wanted to wirelessly-enable that device. On a Bluetooth-enabled computer, this profile is used to create a virtual serial port, so that applications on the PC can communicate to wireless Bluetooth devices as if they were directly connected over an actual serial port. From an application developer’s perspective, using the SPP is very easy to do since there’s no protocol overhead that you have to follow - just send and receive byte streams.
Common Implementations: RS232 to Bluetooth converters, Bluetooth GPS devices, mobile phones, desktop computers
Posted in Bluetooth 3.0, Bluetooth for Java 2nd Edition, Bluetooth | 1 Comment »
March 15th, 2009
First of all, has anyone heard of JavaCard 3 technology, and why it is awesome? Not just, awesome, but earth-shattering-awesome? If your mobile application needs to handle any form of personal identification or security, then you should obviously know why smart cards are mentioned over and over. Billions of cellphones use smart cards to identify the owner (not the user) of the phone, and smart card technology is also used in dozens other use cases world wide.
So, as a mobile developer, you should have some fleeting interest in smart cards, SIM cards, etc. Now, for most developers, smart cards are NOT easy to program, and you have to communicate with the card with lots of byte streams (real fun stuff). Well, when Sun released the JavaCard 3 specification a few years ago, things changed dramatically since now you can write server applications that reside on the card. Let me repeat that…
SERVER APPLICATIONS THAT RESIDE ON THE CARD
This, of course, is a huge development that will leapfrog mobile identity services. Now, the purpose of this post is not to talk about the supreme awesomeness of JavaCard 3. The “Security Gets Personal” Blog by Eric Vétillard has an excellent post on that. The purpose of this post is to lament the sad fact that although the JavaCard 3 spec has been out since 2007, developers still don’t have the tools to create and test JavaCard 3 applications.
However, if you attended the M3DD conference this year like I did, then you know why I’m a happy person right now. Take a look at the confusing slide below, and I’ll explain afterward.

PlaySIM technology will allow you to use the Squawk JVM on your SunSpot device to emulate the JavaCard 3.0 JVM. This is monumentally-huge-and-exciting-information since smart card development has traditionally been a tedious and expensive process. By allowing developers to use SunSpot devices to program JavaCard 3 server applications, then Sun has signifcantly lowered the barrier to entry to get stared with this exciting technology. You should expect this technology to be released before the JavaOne conference this year.
Posted in JavaCard 3 | 1 Comment »
March 8th, 2009
For those of you who don’t know, I work as an Architect at Accenture. Well, it turns out that some of my coworkers who read my blog, had no idea that there’s a whole section on my main website (JavaBluetooth.com) that is dedicated to Java Bluetooth articles that I wrote after I finished the first edition of my book. So, if you’re in that case as well, be sure to check out those articles since they have great example code that you can copy, paste, pillage, and steal for your own nefarious purposes.
Now, two of the articles on the site provide detailed instructions on how to use a Bluetooth-enabled GPS device to get your location, and plot it on a map using one of the free web-based mapping services. So, be sure to check it out if you haven’t already done so.
Thanks!
Posted in articles | 1 Comment »
February 23rd, 2009
I have great news for those of you who are waiting for the next edition of “Bluetooth for Java”. Chapter 1 is done and complete. The funny this is that I completely gutted the whole chapter! It’s amazing how things change in a matter of a few years. Back in 2002 when I wrote the 1st edition of the book, I needed to write Chapter 1 to explain “what” Bluetooth is and “what” Bluetooth does.
Now, it’s 2009 and there over 1-billion Bluetooth-enabled devices on the planet. There is absolutely no need to try to introduce you to Bluetooth, since almost everyone has a general concept of what it is. So, I’m going to salvage what little I can from Chapter 1, and roll that information into Chapter 2. Now it’s time to tackle Chapter 2!
Posted in Bluetooth for Java 2nd Edition, Bluetooth | 1 Comment »
February 15th, 2009
Ok, let me quote the Bluetooth SIG directly:
The Bluetooth SIG is pleased to announce that the Core Specification Working Group has published the Draft Bluetooth Core Specification Version 3.0 + High Speed (HS) for your review. The following feature enhancements encompass the major improvements incorporated into this Draft Bluetooth Core Specification:
- Generic Alternate MAC/PHY (AMP)
- 802.11 Protocol Adaptation Layer (PAL)
- Generic Test Methodology
- Enhanced Power Control
- HCI Read Encryption Key Size
- Unicast Connectionless Data
This of course is awesome news! Now if all those features look like “mumbo-jumbo” to you, then stay tuned to this blog because I’ll explain why these features are important. You can expect the new specification to be finalized before July. When will Bluetooth 3.0 +HS devices hit the market? My guess is that you’ll see some devices that use the new spec by the end of year.
Posted in Bluetooth 3.0, Bluetooth | 4 Comments »
February 8th, 2009
Ok,
So, if you’re a mobile developer like me, then you’ve heard of Java FX before. However, you may have the following questions in your mind, such as:
- What’s the difference between JavaFX and JavaFX Mobile?
- What is the syntax for JavaFX Mobile?
- What advantages are there for using Java FX Mobile?
- Will my target platform support JavaFX Mobile?
- Are there emulators available for JavaFX Mobile technology?
So, coming from the perspective of the mobile developer, I wrote the first article on JavaFX Mobile technology. Be sure to take a look at the article and drop a note (or rate the article) on the Sun website. Below is the basic architecture diagram for Java FX.

Posted in articles | 1 Comment »
February 1st, 2009
I’m the type of person who gets enthusiastic about people or companies who decide to be a leader, and not a follower. Some of these companies have an engineer in their corporate offices who makes far-reaching business decisions based upon technical-prowess (that means that they do something because it’s really cool to do) and because of financial sound-ness (that means that they can make some money from it, too). One of these companies in my opinion is Broadcom. Last month, at the 2009 CES show, Broadcom conducted a technology demonstration of the next-generation Bluetooth technology (2.2/3.0 - we don’t know the version number yet). They were able to achieve data rates up to 24 Mb/s, and they achieved this by running Bluetooth data over a WiFi transport! This capability is a part of the Bluetooth AMP technology. So, for 2009 here’s what you can expect the Bluetooth landscape to look like:
- Bluetooth Low Energy 1.0
- data rate - 1 Mb/s
- battery life - 1 year
- Bluetooth 2.1 +EDR
- data rate - 3 Mb/s
- battery life - days
- Bluetooth 2.2/3.0 (Bluetooth High Speed Technology)
- Two flavors available:
- 802.11 / Wifi transport (called 10x technology)
- data rate - 24 Mb/s
- battery life - hours
- Ultra Wide Band (UWB) transport (called 100x technology)
- data rate - 200-400 Mb/s
- battery life - ?
The newest versions of the specifications should be completed in mid-2009. So are you excited?
Posted in Bluetooth 3.0, Bluetooth | 3 Comments »
January 26th, 2009
Boy, it really feels good to be right. So, if you can recall from last week, I told you all that I was going to the M3DD conference. This conference not only met my expectations, but has completely exceeded them! This is definitely a conference that I need to go to every year! Below is a picture of one of the presenters in action at the conference:

So, as you may also recall from last week, it was announced that there was a mystery give-away device that would be awarded at the conference. The *only* clue that they provided was that it was a phone. I not only guessed the manufacturer of the phone, Sony Ericsson, but I also guessed the exact model of the phone, the C905! Isn’t that cool? Now, of course, I’m not an employee of Sun Microsystems, and I had as much information as everyone else did prior to the conference. So how could I have known that the mystery device was exactly going to be a Sony Ericsson C905? Do I have a crystal ball? Can I guess lottery numbers, too?
No.
But here’s the clues that I pieced together. First of all, the number #1 sponsor of the event was Sony Ericsson, so they should have obviously have come up with the give-away device. Secondly, Sony Ericsson is pushing their new Java ME/Flash Lite integration technology, Capuchin, so it would make sense to give away the first phone in the world that would support Capuchin technology, the C905. And if I’m correct, you’ll also see these phones at JavaOne because Capuchin technology is a direct competitor to Java FX Mobile, so Sony Ericsson will probably want to get these devices into the hands of developers ASAP before Java FX Mobile is takes root.
So, as I said before, I was right!
Posted in Bluetooth | 1 Comment »