Skip to content

Geolocation and the Android 2.3.3 emulator

Just so someone else doesn’t waste an afternoon banging their head against a wall, here’s how to make the Android 2.3.3 emulator work if you want to access geolocation.  This applies to the javascript apps I’m writing–I don’t know if a native app would have the same issue.

  1. Install an Android 2.2 AVD (2.3.3 doesn’t work with geolocation).  Make sure you enable the GPS in your hardware settings when setting up the AVD.  That’s right, the first step to making the Android 2.3.3 emulator work is to downgrade to Android 2.2.  Why would you want to target 2.3.3+?
  2. Make sure you add <uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” /> to your Android manifest.
  3. Add <uses-feature android:name=”android.hardware.location.gps” android:required=”false” /> just to be sure.
  4. Start your emulator and install your software.
  5. telnet localhost 5554 (if you don’t have telnet installed on Windows 7, here’s how to enable it).
  6. In the telnet window, type in “fix geo -101 50”.  Note that you can’t use the backspace, so cutting and pasting is your best option.  Also note that longitude is before latitude.
  7. Execute the action that requires a geolocation.  (If using phonegap, make sure to pass these options to the geolocation call: { enableHighAccuracy: true }.)

You should see a GPS satellite in the notification bar of your emulator.

Also, note that each time you execute the action that calls the geolocation service of your phone, you have to type the ‘fix geo…’ line in the telnet session.

I also found this page useful for testing.

Review of Emergent One

A few weeks ago I sat down with some folks at Emergent One and got a demo of their product.  The reason I reached out to them is because I heard great things about their demo at GlueCon.  My company is considering building a mobile app (who isn’t, right!) and I thought that what EmergentOne offered was a great way to accelerate the server side development of that app.

We are slightly outside of their target market–our API would be solely for internal use of a small team, while it seems like they are aiming at companies who want to make an API available to a larger audience (either external or a larger internal development staff).

Regardless of target market, they have a slick product.  They have a self service web application which can generate APIs directly from database tables.  You allow the app select access to your database.  (I believe only mysql and postgresql are supported at the moment, but I know things are moving fast over there as well.)  You then work within the app to build an API based on the tables in your database.  You can have derived fields as well as fields that map to columns in your database directly.  You can filter your data (so if you only want to expose a subset of your data, you can create an endpoint that only displays that: “users over 40”, for example).  You can also add comments to fields.

After you define as many API endpoints as you want, you can manage access to them with application keys or usernames and passwords.  Automatic documentation with datatypes and whatever comments you have added is generated, and there is a developer portal where it is easy to play around with the APIs and see what you missed.

What they showed me is great, but this product is still in private beta.  That means there are some rough edges.  The biggest hole (a fix for which the demoer promised was coming very soon in their development plan) is that you can’t search against the API.  So, if you have an API exposing your pets table, you can create an endpoint to retrieve all pets, and you can retrieve one pet based on id.  You can create a ‘dogs-only’ endpoint, and get all dogs or one dog.  But you can’t query the dogs-only endpoint for dogs that weigh over 25 pounds and have short hair (or any other type of querying).  I only played with read-only APIs, so I’m not sure how the write-access APIs work.

There’s also always the issue of introducing another vendor into the system.  Since we are looking at this for mobile apps, performance is very important.  It seemed like the demoer was well aware of this issue.  He mentioned an SLA would be likely when they went public, and also talked about some of the steps they are taking to make sure their app uses indexes and other metadata about the tables being exposed to execute as quickly as possible.

I haven’t built an API with any of the other tools out there, so I can’t compare the ease of Emergent One with, say, tools like jboss resteasy that work with a java layer, or usergrid, which autogenerates an API but requires moving data into it.  But I can say that this was a very easy way to go database to API in less than an hour (with iptables troubleshooting mixed in!).  If they get searching right–making it easy to use and performant–this will be a fantastic product.

How to connect a Jabra VBT2050 earpiece to a Palm Centro

Everyone should use an earpiece.  My SO is reading “Disconnect: the truth about cell phone radiation, what the industry has done to hide it, and how to protect your family” and it’s some scary stuff.

I’ve struggled with setting up my earpiece enough times that I want to document what I did just now.  There are a lot of instructions on the internet, but they all seem incomplete, or aimed at a different phone.  Here’s the Jabra manual (PDF), even though it isn’t much help.

So, here are my step by step instructions on how to connect my AT&T Palm Centro with my Jabra VBT2050 earpiece.

  • Turn off the earpiece by holding down the side button until you see 4 fast blinks.  Disconnect it from the charger.
  • Then, turn off bluetooth on the phone.  Disconnect it from the charger.
  • Turn on the bluetooth on your phone
  • Make sure your phone’s bluetooth setting is ‘visible’
  • On the phone, choose ‘setup devices’
  • Choose ‘trusted devices’
  • Choose ‘add device’
  • Turn on the Jabra earpiece by holding down the button you used to turn it off
  • Continue to hold the on/off button down until you see it blinking three times slowly.
  • Press the center button of the earpiece (the one you use to connect/disconnect calls) for about 10-20 seconds, until the light on the earpiece is steady.
  • Choose ‘find more’ on your phone.
  • Select the Jabra earpiece.
  • Choose ‘OK’
  • Enter the passcode: 0000 (I’ve not found a way to change this, which seems rather idiotic).
  • Choose ‘OK’  You should now be at the ‘Trusted devices’ screen.
  • Select the Jabra earpiece from the list
  • Press the menu key on your Centro.  It’s next to the ‘Alt’ key.
  • Select ‘Connect’.  The earpiece should be blinking one time slowly.
  • Click ‘OK’ on out.  You should see a blue set of headphones next to your bars when you get to the main screen.
  • You can change your phone’s bluetooth visibility to ‘hidden’

Hope this helps!

December 2009 BDNT writeup

I went to the Boulder Denver New Tech Meetup last night, and as always, had a good time.  I ran into Brett Borders, and had a good discussion with him about why BDNT is worth going to.  I only go every couple of quarters, but I always learn something, and meet some interesting people (last night, including Marty Frary), and get jazzed about technology again.  This particular episode was packed–standing room only.  In addition, in the spirit of the season, there was a food drive, which was a nice touch, and a giveaway.  One additional change was that the twitter stream was off during presentations, though available during the q&a period (here’s a twitterstream horror story from the presenter’s point of view).

Brad Bernthal gave an overview of Silicon Flatirons (and asked for $ support).  This is a center focused on tech, law and entrepeneurship, which puts on a number of programs supporting the Boulder tech scene (I attended and reviewed one a while back: IP Crash Course for Entrepeneurs).  Which raises the question–where is the CU CS department?  Why is the Law school hosting BDNT and other users’ groups?  The CS department does host Colloquia (I attend about one a year), but I don’t think those compare to BDNT, et al.

After Brad, we moved on to jobs and events.  I was glad to see a number of jobs pop up.  Over the last year, at BDNT there were always some developer jobs available, but this time there was also a marketing job.  Hope it’s a sign that the Boulder tech job market is thawing (for folks other than developers).  There were 8 job announcements, though one of them was equity only.  About half of the presenting companies said they were looking to hire as well.  As far as events, KGNU is having a fundraiser called ‘Beers With Brad’Ignite Boulder 7 is only a week away (here’s an interesting post on how to organize Ignites).

On to presentations…

  • The Blog Frog presented on their platform to turn blogs into communities.  This is an interesting space–you can see competitors in Ning, MyBlogLog and Google Friend Connect, though they all approach the issue from a different angle.  The Blog Frog is aimed at automating community creation, and have focused on mommy bloggers (as a large, valuable group).  We did not get a demo from them, and I haven’t signed up for their service for any of my blogs, but they definitely have a cool value proposition–helping niche content providers build their communities and reach advertisers and interested people.  You can see a presentation from them 7 months ago; it sounds like their business model has evolved significantly.
  • The Unreasonable Institute presented next.  They bill themselves as ‘Techstars for social entrepeneurs’, but they have a few differences.  Instead of picking applicants and providing them money, they want applicants to fundraise to provide a fee and idea validation.  After applicants are selected, they do get funds throughout the 10 week program, as well as mentoring, chance to pitch, etc, etc. The presentor said that the applications already received were split equally between the for-profit, non-profit and hybrid models.  So, the funding pitches would include VCs/angels as well as foundations–an interesting twist and a great way to increase connections between those communities.  They are accepting applications for the 2010 summer until Dec 15th.
  • Letitia Pleis, from Metro State College of Denver, gave a great talk on the tax implications of equity as payment.  She covered three scenarios.  Unrestricted (‘here’s 10% of the company, please write software!’) which is taxed as income at the time of the grant and also implies a great deal of trust in the payee.  Restricted (‘here’s 10% of the company, it vests in 3 years’) which is taxed as income at the time the grant is vested, possibly leading to a massive increase in taxes due, unless you perform an section 83(b) election within 30 days of the grant (one person spoke up and said they’d be bitten by this).  Unrestricted profits interest gives the grantee claim on a percentage of future profits.  She was at the end of her time, so we didn’t hear as much about this option as I would have liked.
  • Next up was a gadget review.  I’m not a gadget head, so I didn’t take notes on this, but they did give away a Sonos system.  Well, the winner earned it by knowing what the original cost of a Apple I system was ($666.66).
  • Public Earth presented next.  They are a wiki of places; the presentor said just like Netflix lets you collect your favorite movies, Public Earth will let you collect your favorite places.  (And they hope to have scale like wikipedia–he said that they plan to move beyond the ‘where’s the nearest restaurant’ level.  I looked for ‘slot canyons’ in UT, for example, and they had some.  I think they need to work on their linking, because I couldn’t get a link for my query to post.  But, on the upside, they don’t support IE6!)  They have 5M points in their database already, and just went live.  The wiki aspect is very interesting to me; I wonder whether they’ll get a critical mass of users to do spam policing.  It’s an interesting contrast to Google My Maps–PE has a slicker interface and more sharing features.
  • Last was RTP, with their sick iphone app, Real Ski.  This is an augmented reality application that helps you locate points of interest (bathroom, particular runs) when you’re out skiing.  They obviously couldn’t demo it at BDNT, but they had a video demo, and it looked killer.  It should be on the App Store soon–5 area maps free, 99 cents for every other ski area map.  They also asked for advice from the community about selling a B2C app; RTP apparently is a B2B company.  Pricing, scale, and accuracy were mentioned, but nothing really profound.  This question might be a better asked on twitter, or in some forum that allows more interaction.  (I searched, and was interested to see that no one had posted advice for them on twitter.)

The only complaint I had with this BDNT was that there were no demos (apart from the gadgets).  Several pseudo-demos (aka powerpoint slides/videos), and interesting and relevant presentations, but I think that live demos really add a lot and are in the spirit of the meetup.

Palm Pre ‘Hello World’ error on Windows

If you’re running through the Palm WebOS ‘Hello World’ application on Windows (I use XP) with the command line tools, you’ll want to change this line this.controller.pushScene("first"); to this this.controller.pushScene("First");, as outlined in this forum post.  Apparently, case matters somewhere in there, and the palm command line tools generate upper case view and assistant file names.

This oversight is a bit embarrassing/peculiar, since the ‘Hello World’ example is often the first thing developers turn to when learning a new platform, and it was reported in July and acknowledged by a Palm employee that same month. I can only surmise that this works fine on other platforms (which is definitely possible, given that the palm tools don’t lowercase the first letter of the scene, as expected, on Windows).

I’m not sure about whether this affects the Eclipse plugin. This is using the 1.3.1-314 SDK.

[tags]palm pre,hello world[/tags]

July New Tech Meetup Notes: Feed

Dean Rizzuto spoke about Feed, which is a mobile payment technology. Officially 3 months old, they already have 200 merchants signed up. Any phone that can send text messages can use the technology, so the potential market is huge. Basically, you sign up on the Feed website, and give them some money. Then, when you are at a merchant that accepts feed, you SMS your pin to the Feed number. You recieve an authorization code good for 15 minutes. The merchant can then enter that code into either their POS system or a standalone, Feed provided and maintained terminal. The Feed system then makes sure you have enough money in your account, and tells the merchange yes or no, and, if yes, withdraws the sum and gives it to the merchant.

What does the merchant gain? Feed charges a flat fee of $0.19 a transaction, which is much cheaper than typical credit card transaction fees. Feed doesn’t provide the consumer the same protections as credit card companies, as the transaction is treated as if you had paid cash. Additionally, once someone has bought something with Feed, the merchant can send them special offers (in the future, possibly focused to the SKU level). I wasn’t clear about how a user could opt out from those offers.

What does the consumer gain? Dean was honest that they are targeting the youth market (the millenials) who use their cell phones all the time, and are interested in quick transactions. For someone with a credit card already, it might not be such a win.

I wonder how secure SMSes are, especially if you’re sending a pin that can be used to retrieve money. A quick search of the internet seemed to imply that SMSes are relatively secure, but that is a definite issue to me.

But, if you want to try Feed, text ‘pickle’ or ‘noodles’ to 39598 and you’ll get a one time credit to buy lunch, at the Spicy Pickle or Noodles, respectively. I think this might just be in Boulder, but I’m planning to give it a try. (I have worked with Dean in the past.)

[tags]feed, mobile payments,millenials[/tags]

Mobile Device Capability Database

It’s been a few years since I’ve done any mobile development, and it seems like things have moved on. But one of the hardest problems I faced was finding out what devices supported what APIs. It looks like WURFL is trying to solve this problem:

The WURFL is an XML configuration file which contains information about capabilities and features of several wireless devices.

The main scope of the file is to collect as much information as we can about all the existing wireless devices that access WAP pages so that developers will be able to build better applications and better services for the users.

Via the good folks at SitePen.

[tags]open source,mobile devices[/tags]

XHTML Compatibility in the mobile world

Here is an interesting outline of some of the issues faced in making mobile user interfaces work well with today’s technologies. What’s old is new again–browsers on cell phones are dealing with the same standards compliance and diversity issues that desktop browsers were faced with 10 years ago. The difference is that there’s no one (yet) with large enough market share to rule by fiat (like Navigator and then Internet Explorer did).

Pay your meter via cellphone

A town in Florida has started to allow folks to use their cellphone to pay for parking meters. Full story here.

I think it’s pretty cool and definitely is more efficient than coins–I don’t have to pay for a minute more of a meter than I need. I signed up and didn’t find the process too onerous, though it has some of the harsh, but standard, “we have an option on your first born child” clauses in the Terms and Conditions. Here are some of the choicer terms:

They can change fees anytime they want:

Amendments to Fees. Mint may, in its sole discretion, amend the Mint Fees from time to time. The Customer shall be notified of any such amendments, via e-mail, no less than five (5) business days prior to the date such amendments become effective. Any amendments to Parking Fees are in the discretion of the operator of the Parking Facility and Mint disclaims any responsibility for notifying the Customer of any such amendments.

They can lock you out at any time:

…Mint reserves the right to: amend, suspend or discontinue any aspect of the Service at any time; impose limits on certain features and aspects of the Service; and restrict the Customer’s access to parts or all of the Service without notice.

They can verify your credit:

The Customer hereby authorizes Mint to make such credit, employment and investigative inquiries as deemed appropriate by Mint in connection with the use of the Services and the Credit Card Account.

There’s some ‘Fee Schedule’ referenced to determine how much you’ll pay for the service, but I couldn’t find that. I did find the list of supported parking lots, which hasn’t been updated to include Florida yet. They also have posted their privacy policy, which doesn’t appear too draconian, except for the ubiquitous “we can change this whenever we want, and you have to visit our website periodically to know” clause:

If Mint decides to change this Privacy Policy, changes will be posted on the Website, so that you will always be aware of what personal information is collected, how it is used, and under what circumstances it may be disclosed.

I do think it’s cool that North America is headed in this direction. (Japan has a wider variety of services payable via cell phone, see this flagrant marketing flash presentation for more.) Cell phones are an easy alternative to credit cards, which charger merchants a percentage of the cost as well as a fixed fee (though the card companies still get their pound of flesh from Mint, don’t you worry).