Thursday, March 26, 2009

My NYC Android Presnetation

A couple of you have been asking me how my presentation at the March 24, 2009 meeting of the NYC Android Developer's Meetup went. Overall, not bad, but it did have its rocky moments.

The point of the presentation was to demo the mini eco-system I've been writing that uses Google's App Engine (GAE) and Google's Android phone. There's nothing really special about it (other than I wrote it ;-) but the group needed someone to present something and you know how much I like to stand in front of a technical audience.

For those of you in the audience that are new, you can read what my little eco-system does here.

The meetings are held at Fast Company's NYC headquarters, 29th floor of WTC 7. The meeting room has an awesome view of New York and the Hudson but this was the first time I had seen it in the light (due to Daylight Savings Time change). With the sun setting behind skyscrapers, it was even awesomer [sic].

I got there early and started setting up. Of course, the hardware didn't want to cooperate: the GPS on the phone wasn't kicking in; the Macbook display was doing weird things until one of the other members pointed out I had to put it into "mirror" mode; and Droidex, the application that displays the phone screen on the computer in real-time stopped working! Without Droidex, my presentation was worthless. Eventually, though, I got everything working (except the GPS).

There was a good turnout for the meeting, probably 25 to 30 people, over half of them new. We introduced ourselves and mentioned why we were interested in Android. When the last person finished speaking, Rana the Assistant Organizer looked at me like "Well? Go for it" so I did.

The presentation was called "Scratching an Itch". The phrase "scratching an itch" is used in programming to describe the act of a programmer writing a program ("scratching") for his need (an "itch") instead of someone else's need, like his client or boss.

So the first thing I had to do was explain my "itch". I did it by tellning the story in a Lessig-style presentation. The story revolved around me missing Banksy's NYC exhibit in October 2008 but first, I had to explain who Banksy was, so I showed several of his art works. Things were going well until I showed this one; about half the audience (mostly the older people) didn't appreciate it for some reason. :-)

Anyway, I got through the "describing the itch" part and started demoing my programs. That could have gone a lot better! I think I'll practice that some more before trying it out on some more audiences.

Afterwards, I got to talk to several cool people about how to do things in Android and even got into a discussion about AWS.
At that point, there was nothing left to do but head home.

I want to put up a screencast of my presentation and demo, so if anyone knows of some decent [fF]ree software to do that on a Macbook or Linux, let me know.

Wednesday, March 18, 2009

Android and ProximityAlerts: Have I found "the trick"?

As you know, I've been fighting with Proximity Alerts (PAs) in Android. The idea behind them is I can tell the LocationManager to notify me when I come within X distance of a geopoint (geographical point, a.k.a. latitude/longitude). There's is practically no discussion of this on the Google Groups, for the 1.0 version of the SDK anyway, and no one has been answering my postings.

My conclusion? PAs don't work, which is a shame cause it seems to be a killer feature of the Android framework.

Well, I Was running errands today and I decided to try something. I deleted every location in my Android save one. I then field-tested my app. The PA worked! I then drove to a local WiFi hotpsot (the local liquor store :-), changed the geopoint and tested it again. It worked again!

So my current theory is this: PAs work, but only one at a time. You can't load up several PAs becasue, presumably only the last one is read/active.

This means I have to write my own routine to determine what geopoints are nearby which kind of defeats the point of using PAs in the first place if you ask me.

Maybe I'll actually have a working demo for my presentation on Tuesday at the NYC Android Developer Meetup!

Monday, March 9, 2009

Musings for a rainy day

All throughout my consultancy, my business model was "build it and they will come" and sure enough, for ten years, people kept finding me and hiring me for projects. Well, that's not working any more; the market has moved and I need to find another market and/or business model.

The question is "how?" How do you find something that is both profitable and enjoyable? I've been told by marketers "Pick an industry. Anything. Selling dog food. Dry cleaning. Just pick something and focus on it." That is unsatisfying to me.

I also need to move "up the stack". What I've been doing is selling services (programing, admin, training); basically being a journeyman or, in your terminology, a non-full-time contractor. But what's above me in the stack? What skills or knowledge do I have that others would pay for that don't ential billing by the hour for slinging code or doing maintenance?

And then there's the technical side of it. I'm familiar with what's going on technically (Twitter and Facebook APIs, Google Android, the iPhone, Cloud Computing) but how do you form a business around them? A specific example: I have the docs and understand the Twitter API but what can I do with it? What can I build with it that others will find useful and, even better, pay for?

Suggestions?

Friday, February 27, 2009

Last night's presentation (2009-02-26)

Last night, I gave a presentation on my Google App Engine application at the NYC Cloud Computing Group's (semi-regular) monthly meeting held at Gemini Systems down in the Financial district (thanks for hosting us, Mick!). I must say, it went over much better than I expected.

I've been concentrating on my Android Developer's presentation slated for March 10th and didn't give enough attention to the NYCCC presentation, but then I never think I give enough attention to the job at hand. Anyway, I put together a NeoOffice (that's OpenOffice for the Mac, doncha' know) Impress presentation which was filled with bullet points. The difference this time was I showed each bullet point individually. Simple technique but it kept everyone with me instead of having some people listening to me and others reading ahead.

The original idea was to have a hands-on workshop, so I had planned to give the presentation, lead everyone in programming a simple app, then show a simple app that I had written to "scratch an itch"

However, given that I was sharing the evening with Dustin Whitney who was discussing Amazon Web Services and we each had only an hour, that idea went out the window real fast. Instead, I gave my presentation and then walked through my App Engine datastore for my Tag Your World program.

As I said, it went over very well. The audience was full of questions and kept me on my toes. I really like presenting to a technical audience.

At the end of my hour, there were still questions and comments, but I had to turn things over to Dustin. After a five minute break, Dustin gave a good presentation on the CloudTools that he has built and showed us some of the ways he uses Amazon Web Services in his day job.

Overall, it was a great meeting. Good presentations (if I do say so myself), good audience, and good food. I can't wait to see what John has slated for the next meeting.

Tuesday, February 24, 2009

World Domination is one step closer!

I spent half of the day getting my Android app, "Tag Your World", to download locations from my Google App Engine application! And it works!

Okay, it's not perfect, mind you. I'm not authenticating or anything so I'm just pulling down the "public" info. However, Lenza just posted some code on how to do that so I should have no problem! Thank you, Lenza!

Now I can finish my presentation for this Thursday (although I'd really like to hack some more ;-)!

Monday, February 23, 2009

Not much to report, I'm afraid.

I had two job interviews last week. I'll report on those once I hear back from them.

I'm working on a presentation on Google's App Engine for the NYC Cloud Computing Group this Thursday (20090226). Problem is I can't find the right hook to make it entertaining.

Yes, you can make a technical talk entertaining. I'm also working on a presentation for the NYC Android Developers Group about my App Engine and Android ecosystem. The hook there is (I hope) very entertaining: a Lessig-style story followed by a functional demonstration followed by code discussion and Q&A.

I need to get at least two more functions working to pull off the demo. If I'm lucky, I might be able to demo my talk at the next ABE-PM meeting or even the LUG/IP meeting (although I think the next one is spoken for already).

I'll let you know.

Tuesday, February 17, 2009

That was a short day of programming

Today I decided to work on the Google AppEngine (GAE) side of my application's ecology. If you have a Google account, you can see it here. I know, not much to look at.

What I wanted to do today was to get the AppEngine and the Android talking to one another via RESTful calls. I wrote a routine to take the data from GAE and convert it into a type of KML format. When I uploaded it, I found I couldn't save or update data. :-( There is something wrong with the urlfetch() call; strange becasue I didn't touch that code. Now I'm waiting to hear back from the GAE mailing list.

Maybe I'll go work on a website for this app for marketing purposes.