Austin Android Users: Unite and Help Each Other

I created a Google group so that I could find people in Austin who are writing apps for the new Android powered phone from T-Mobile, the G1. Obviously this conversation extends beyond this one phone, but it's currently (Fall 08) the only one available that is running on Android.

I am not a Java coder, so I have a lot of learning to do. I have worked on one or two Java projects in the past and certainly did some Java coding in my college days, but those are long gone. Before I switched to Ruby programming a few years ago, I was a C#/.NET developer so I guess that experience will help me a little bit.

Hope some people find this list so I'm not all alone.

Written in / November 6th, 2008 / 0 Comments

Thank You Barack Obama

Thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you thank you

Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters. Thank you voters.

:) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)

Patriotism = renewed

Written in / November 4th, 2008 / 0 Comments

T-Mobile G1 First Impressions

I've been patiently waiting for the Android-powered phone for quite a while now and last night my G1 arrived a whole 12 days earlier than expected. I was like a little school girl with her very own pony. I've now given myself a little over 24 hours to actually use the phone, talk on it, play games on it, etc., and wanted to provide some early feedback for anyone considering the phone.

Setup

Using my old SIM from my previous phone, the G1 came with a weakly charged battery, enough to get me up and running. I was instantly prompted with a Google login screen (or you can create an account if you don't already have one). Once past there, you're in and ready to use the phone. The next thing I had to do was get my contacts setup. Since the G1 uses your gmail contact list, and I've been using contacts stored on my SIM, I had a lot of work to do. This process was painful because although the G1 provides an "import from SIM" feature, you have to add contacts one at a time. This sucked. Somebody will probably tell me there is a bulk-add feature and that will be funny.

The next step once I got all my contacts from my old phone into my gmail contact list was to merge records together. This was another painful task because I had previous contacts in my gmail contact list with email only and no phone, and now I had many duplicates except they only had a phone number. So I had to merge them one by one, always having to delete the duplicate contact before saving the primary because gmail won't let you have two contacts with the same email address. Luckily, this can all be done on a computer since the G1 auto-syncs your contacts.

So that entire process took me about an hour, but it is actually something I've needed to do for a long, long time. Many people more organized than myself probably already have well-maintained contact lists, in which case this setup process will be a breeze.

That was about all I did last night, once finished I plugged it in since by then it was ready for a full charge.

Daily Usage

Before I left the house in the morning I had enabled the wifi feature and had all the auto-syncing (gmail, calendar, contacts) running. It was about 9am when I unplugged the phone from the charger. I'd say by about 11:30 my battery life was at 40% which was pathetic. So I plugged it into my computer with the handy USB cable provided and let it charge while I worked and played with the phone. As an aside, when plugged in via USB, the phone is treated as a standard USB mass storage device to your computer. What, you can just drag and drop music, videos, pictures or whatever onto your phone? Yup. Awesome.

So the battery thing turns out to be a big deal. Guess that's a good thing because it means (cross my fingers) that there will be an update to Android and/or the G1 to conserve battery life. In the meantime, I picked up a few good tricks for preserving battery life:

  1. Turn off the auto-sync of your contacts (I have found this to be the single biggest consumer of battery life)
  2. Don't leave the GPS on
  3. Reduce screen brightness to 30% or so. It's still plenty bright at this level.
  4. Set the screen timeout to 30 seconds or leave it at the default 1 minute but be diligent about locking the screen when you're done with it.
  5. Don't leave the wifi on, although I'm not convinced this is a big offender, still need to do more testing.

So why is the auto-sync of the contact list so bad? Well, because it is CONSTANTLY polling gmail for an updated contact list. It's fucking ridiculous how often it checks. You can go to the auto-sync settings page and with contact sync enabled, you can watch the damn thing sync (which takes anywhere from 5-20 seconds), wait for not more than 1 second, then sync again. And again. And again. Ummm, hello, can I have a sync frequency for the love of god? If you're not going to utilize data push technology, you've got to let me adjust the frequency.

Anyway, once I turned off the auto-sync contacts, my battery life improved dramatically. It has been unplugged for more than 8 hours and I still have 50% battery life left, and that's with wifi turned on. My contacts don't really change very often, and if they do I can just hop over to the sync settings page and force a sync, no problem.

Everything else is pretty normal, phone works good, audio quality is good, dialing on the screen is easy. The web browser is great (WebKit-based) though a bit tricky to use at first when trying to click tiny little links on a page, but now that I can zoom quicker and also found out I can use the scrollball to navigate my click focus, I'm becoming better at using it.

I also setup a separate email account (IMAP+SMTP) so I can check my work email from time to time, though I chose not to have it auto-check this account. I've read some complaints about non-gmail email not working reliably, but so far I've had no issues.

My only other minor gripe is the touch screen doesn't seem to register my finger press from time to time. Maybe it's my fat fingers or maybe it's a dirty screen, or maybe I'm just not good at using a touch screen (this is my first), but I will say that I've noticed less and less "dead clicks" as I use this phone more. It's one of those things that frustrates the hell out of you for the first hour or so, then after a few days you say to yourself "this is a piece of cake, what was I whining about?".

I could go on and on about general usage of the phone, but by now we've all played with an iPhone right? Yeah, it's like that. I want to talk about the Android Market.

Android Market

This is the shit. I will be honest, I barely got my phone running and I was in the market downloading all sorts of stuff. You've got apps you might have heard about like Shazam (music identifier) or iPhone similar apps like Tunes Remote among loads of others. There's also about 5 (and growing) different "flashlight" apps. So silly. What's really cool about the app marketplace is not so much the apps themselves, but the fact that ANYBODY can put an app in there without needing to approve it. Plus, with a setting on the G1, you can run unsigned apps on your phone which basically (at least as I understand it) means you don't have to go through the official Android Market to install an application. This is very cool.

What really makes this all possible is the Android platform is open-source and their development SDK is available for download right now. Sure, it requires you to write code in Java, which for me personally, is not a pleasurable experience, but I went from downloading the SDK to running Hello World in no time at all. I'm really excited about this.

I don't really know what more to say, I've only had the phone 1 day so these are some really early impressions, but I am very impressed. Despite the battery thing, which I think I've taken care of with the contacts syncing bullshit, I am very pleased with my new toy.

What are you waiting for? Go get yourself one now. Hey, they're cheaper than an iPhone (with a 2-year contract) and instead of being with a notoriously bad customer service company you will be with one of the highest rated customer service companies (in the world of cell providers). That doesn't suck. No I'm not marketing for tmobile, I was just scarred by att/cingular after being with them for 6 years. That's why I'm talking about the G1 right now instead of the iPhone a year and a half ago.

Update: It's been about 3 days now since I got the phone and there is no doubt that the contacts list auto-sync feature is what was draining the battery quickly. I leave wifi on all the time and I still have half (or a little less) battery left after the end of the day. The contacts list will force sync itself with gmail when you edit anything in the phone, so as long as you manually force a sync if you change things from within gmail (away from your G1) then you can disable the contact list auto-sync and have no side effects.

Written in / October 30th, 2008 / 4 Comments

Inherently Bad or Lost in the Dark?

In a recent blogpost with a sensationalist headline "Why Programmers Suck at CSS", Stefano Mazzocchi starts off abrasively by stating:

I think that programmers tend to avoid doing certain things not because they are inherently bad at it, but because they don’t know how to proceed. They find themselves in an uncharted and foggy territory, without a map, no sense of direction, and with a limited ability to know if they’re getting any closer to where they want to be.

Are we talking about some deep philosophical subject here or are we talking about HTML and CSS? What's this? Seven paragraphs (before any talk of actual CSS) of "I have studied the programmer. I know his faults and understand his learning methods"? Really?

If a programmer wants to learn CSS, he buys a book and starts coding. If he doesn't want to learn it, he is not asking to be berated by some self-proclaimed CSS guru.

Stehano's article is filled with CSS that does not work in Internet Explorer, aka does not work in the real world. His proposed fix? Include some magic JavaScript files that supposedly make everything better in Internet Explorer 6 and 7. Why does he do that? Shouldn't we understand why these things don't work and what we can change in our CSS to not require some magic JavaScript file? It's almost like Stefano is in the dark, with no sense of direction. Or maybe he's just inherently bad at IE bugs.

Written in / October 27th, 2008 / 0 Comments

Takers and Leavers

One hundred years from now when our grandkids have all had sex

will they look back to the past and know what they've missed?

Will they think we had it better than the way they have it then?

Will they gaze at a strip mall where a field had once been?

Will they think they're born late like the way we now do it?

Or will they curse at the present and lend credence to it?

Will they hear all the old songs and think they're all true and hate all their own songs and everything new?

Well I'm here to tell you something that's known,

from someone who's lived it from someone who's grown,

the somebody who somebody once loaned a home to.

The grass is always greener, the past is always cleaner, the present is crap and everyone's meaner.

They say we're moving towards something but I think we're moving from something.

There are some folks who are more apathetic and then there are some folks who are more money grubbin'.

Well, I know there's always been greed and green acres, and war and peace makers.

And then there's your takers and your leavers, your havers and your needers.

And in this great froth as we skim through the batter, there's now many more of the former and less of the latter.

Help us climb out of this pitfall disaster led by dynasties, charlatans, but not poetasters.

Where there is a mortal disconnect spawned by gluttonous connection, where you pick your own culture without viewer discretion.

Where there is no more history and nothing is learned.

Where you shun all your kin and all your bridges are burned.

Where you are what you buy and you're who what you own; and you think of yourself and you live all alone.

You make yourself feel fine when everything's wrong.

The world keeps turning but you're brittle as bone.

So to all you future dreamers and lovers and leavers,

to all those who know there's still something between us that binds us and reminds us of times that passed,

I appreciate you listening to this one man's last gasp.

In spite of all the words that we can't fit to song,

I'd thank you to take off your eye shades, please... sing along.

- Poem Takers and Leavers on the track Livin' a Dream from the Dr. Dog EP Takers and Leavers.

Written in / October 20th, 2008 / 1 Comment