Android Bootcamp 2
- Adb logcat is a command that opens the log of what’s really going on under the hood. Adb stands for android debug bridge. Typing adb logcat at a terminal/command prompt while the emulator is running provides you with a very useful console log.
- Screen layouts are controlled by xml, an android specific xml format.
- Resources classes are compiled from the layout, strings and other xml files in res folder and can be referenced in code by R.layout.name_of_layout_xml. These resources can make little red x’s in Eclipse show up even when there isn’t a real problem with your code because you just need to clean/build.
- Apps aren’t deployed as wars or jars. They are deployed in an apk.
- The activity lifecycle includes a number of methods that you can override, including onCreate and onPause.
- I had done some tutorials, bought some books, and looked over several of sites I had also asked for help, but nothing really got the concepts in my head like the training at the Big Nerd Ranch.
We covered a ton of stuff over the course of the week: Layouts—lists, spinners, radio buttons, Activities (multiple activities), Menus, Saving to Database, Notifications, Toasts, Video, Webkit, Location, Intents, Content Providers, AIDLs, Services, Dailing a number, Maps… (there were more topics, but these are the ones that really stood out).
There were modules on each of these topics complete with code examples and exercises, which has really been helping out now that I am back at home writing Android apps as fast as my little fingers can type.
The time our class spent together eating meals was incredibly instructive—as folks drilled our instructor with Android-related questions. :) Here are some of my notes from class. After the course, I am re-writing the Android Sheep app and am working on my own “to do” list app—original, huh.
Adele Goldberg 2
Do you remember the scene in Pirates of Silicon Valley where the team at Xerox PARC must give Steve Jobs a tour of their ground-breaking research? A red-headed woman very reluctantly shows Steve the team’s then bleeding-edge work. Take a minute to watch the clip, if you haven’t seen it (beginning around frame 3.14).
This scene is very loosely based on actual events1, and the woman portrayed can refer to none other than Adele Goldberg.
Dr. Goldberg was one of the researchers responsible for the advancement of object-oriented programming concepts and for the development of the Smalltalk language. Smalltalk, the first fully object-oriented language, was used to prototype the features that we associate with modern GUIs—graphical menus, mouse clicks, browsers and windows. The end result of the PARC team’s research was enabling users with little technical knowledge to make simple changes on a microcomputer, such as changing directories, opening files and pasting text.
The research Goldberg and company were conducting wasn’t only making computing more friendly for users; it was also making computing more usable for programmers. At ParcPlace, which she founded, she helped developer development environments based for corporate customers who want to use OO concepts in their development.
Adele was president of the ACM from 1984 to 1986. Currently, she is the founder of Neometron, Inc.
References- http://www.pbs.org/nerds/part3.html
- http://en.wikipedia.org/wiki/Adele_Goldberg_(computer_scientist)
- http://www.ddj.com/184405043
You can hear Adele talk about browsing, selecting text with a mouse and other innovations in computing in this video.
Google App Engine
I don’t do python… yet, at least. :) Settle down; I’ve got it on my to-do list.
But wanting to see what Google App Engine was all about, I downloaded the sdk and signed up for an account.

In the app.yaml file—where you can specify the version of the application and other meta information about your application, I noticed that a runtime can also be specified and by default it is set to python. The documentation for Google App Engine notes that…
This code runs in the python runtime environment, version “1”. Additional runtime environments and languages may be supported in the future.
So, for those of you who don’t do python either… there’s hope. Or you could do something quiet strange, like this! Yikes!
Another interesting tidbit is that some subset of Django is included with Google App Engine. Let’s play.
Activate Android Dev Phone with AT&T Go Phone SIM Card
- I popped the SIM card out of my AT&T Go phone (cost approximately $20 at Target).
- I made sure that there was some $$ on my Go phone account.*
- I followed these instructions to activate the phone.
Why did I activate my Android Dev phone with a pay-as-you-go account?
My initial desire was to have a device that I could put apps on and test the apps as a user; however, now that I have the phone unlocked, I am thinking that I will want the phone as my primary phone. We will see; I am so indecisive about this phone. One reason that I can’t decide what to do is that I am on Verizon (CDMA); the G1 runs on 3G on GSM, but not at the same frequency as AT&T 3G network. So, in order to run the G1 on AT&T, I would have to run it on EDGE, which is slower than the 3G. So, I may end up switching to T-Mobile anyways… they have a nice flex plan that doesn’t require a 2yr commitment or your SSN.

*I believe I had $25 on the phone when I activated the phone. After about an hour of web surfing and email checking on the phone, all of my minutes/KBs were used up. :(
She's Geeky NYC 2008
I went to New York City for the weekend to attend She’s Geeky, an unconference for women in technology.
Overall, the conference had much less low-level techie stuff than I had expected, but this turned out to be a great boon because I turned my attention toward the bigger picture of technology today.
Here were some of my take-aways:
I can’t help but wonder if screen-scraping and self-tracking are the ultimate answers to “opening up” api’s that don’t open all of the information they collect on a user back to that user.
Ok, ok, we all know that Ada Lovelace was the 1st programmer, but did you know about the six Eniac Programmers and how their story was nearly lost to history had it not been for the work of a female programmer who brought to light their huge contribution to the history of computing?
Personal Branding is less about being your own pimp and more about communicating what you bring to the table.
Also, because of a tip from the conference, I am now the proud owner of an unlocked G1! Thanks for the reference, Debbie!!!
Shrinky Dink Blythe Key Chains
To create your every own Shrinky Dink Blythe Key Chain, you will need…
- color printer
- scissors
- oven
- hole punch

Make other kinds of key chains

How to Resize all Images in a Folder using Quicksilver
These are great instructions on how to resize a group of photos that are located in a single directory.
Basically, the steps are…- select the folder
- show contents

- press enter
- apple + a (select all images in the folder)

- scale image
- enter size in text box… 600×900

if you ever want to see your precious, little butter bear again... 1
Regarding the events of June 8th, 2008, we are most displeased with your uncooperation in what was supposed to be The Risk Heist of 2008. Despite all of our planning, you failed at the most crucial of steps—distracting the infantry while we acheive world domination; for this we have confiscated one butter bear. We are willing to negotiate an exchange.
Sincerely,
Aesop, Blanche and a reluctant Maddie
Android Sheep
The Goal
Using the Android development kit, create an Android application that allows users to scroll through images of electric sheep and vote on which images they like.
First impression of Android: rich, open API with quick-n-easy dev set up
Holy shit! The documentation is like drinking from a water hose, definitely worse than a JavaDoc. The pay off is that there is a ton of features that “come with” this open source SDK. As mentioned on android linux,usually you have major companies forming an oligarchy of mobile handset programming, but not so much with Android, anyone, even the girl next door, could be the person making the next great Android based mobile application.
And if you are familiar with Eclipse and HttpClient and jaxp and a slew of other things int the java world, then developing an Android app should be a snap. :-)
First lesson learned: keep your performance tuning cap on
Go ahead and resize all images to fit the phone screen. One issue that Gloria and I encountered was that switching between images in the image switcher was slow. I am not sure what the best way to do this is if you do not know the screen size; i mean i guess you would simply detect the screen size and choose the corresponding image size, but this assumes that the appropriately sized image would be available to you.
I did change the scaletype to CENTER, but I didn’t really notice a big performance difference… I mean I couldn’t even tell which one was faster. Per the moderator’s comments… the thumbnail isn’t stretched. The thumbnail and the png are two different files. But the ‘stretching’ that could be giving us problems is the shrinking of the png to fit it inside the small screen—I can see this because when the scaletype is set to CENTER or not set at all, the image appears much larger and not all of it fits on the screen. But so, unless we resize the images, there will always be some stretching/shrinking… it seems reasonable to close the ticket; we can optimize by resizing if there continues to be a performance issue. Anyways… interesting stuff. I am beginning to see what some of the challenges would be in writing a mobile app.
Second lesson learned: be mindful of your focus
Either do not set the focus on the ImageView or pass in the gallery so you can set the focus back to the gallery. I received some great help from the Android Beginners Google Group.
Setup Tips- Another issue that tripped me up was logging. Sysouts won’t work… or at least Android provides its own logging. This logging how to helped me out. The short of it is use “adb logcat” command to view logging done by android.util.Log.
- Don’t waste time decompiling; get the source. Although it never fails, I end up decompiling stuff anyways.
<^_^>
cute cupcakes come as camel-colored, carmel culinary confections 1
We had another Atlanta Blythe Meetup a few weekends ago. There were a bunch of cute, new dollies to oogle over. Afterwards Linda taught me how to make bead headbands and clay cupcakes, for Blythes of course! Below are my notes and shopping lists for making these myself… next time.
Atlanta February Meetup by the Numbers- Over 30 dollies showed up
- Approximately 8 pirate swords… Arrrrg!
- 5 Blonde Blythes
- 2 attendees with human offspring (aka Moms)
- 1 Irwin Street Market

| Blythe Bead Headbands |
|---|
| wire |
| wire cutters |
| pliers |
| plastic beads |
| Clay Food |
|---|
| clay in different colors |
| clay knife |
| latex gloves |
To make the clay food all you have to do is mix the colors, shape the clay into your cute creation, and bake for 13 min @ 350. Beat that Martha!
Next time we are going to make Matchbox Dressers. And maybe the guys can play Risk. Sweet! I can’t wait.

