Saturday, December 1, 2012

Here Biginnith the Book of the Tales of Aundroidbury

Having just finished a week of excellent embedded-Android training, by Karim Yaghmour, it behooves me to be certain I learn the material.

Me, I either learn things or I forget them. "Learn" means they're in there forever. I learned Mendelian genetics and how to walk. "Forget" means that I got them in there long enough to get by for a little while but, by a month later, couldn't have given you more than a vague overview. I forgot physical biochemistry and Vietnamese.

I want Android internals in my brain for good: solidly enough to use and think about without reference books at hand.

All this is embedded-systems programming -- software to run hardware. The last three companies I've worked at have produced devices. QMS made printers. Aztek made telephony equipment -- switches and stuff. Aircell makes telecom equipment for the aircraft industry. I just finished releasing a phone based on Android. Sloccount tells me the code base has twenty-six million lines of code. Million.

 So I know all about this stuff, right? Not a clue. I'm a software guy. Axolotls know more about hardware than I do. I have, in fact, never taken an engineering class.

This doesn't mean I'm as dumb as I look. Think about it: how could I be? Here's a good opportunity to learn. AFOG.

First things first.

Monday, I ordered a Beaglebone (bb). It's the hardware platform we used in class, so it's not a variable. Keeping the intellectual "moving parts" at a minimum works for me. Thursday night, it appeared, and came right up. I was able to bring up the SD card that came with it, which runs Open Embedded, and the card that I'd been using in class, running Android.

What's this mean? It means the hardware works and I don't have to worry about that piece.

Unlike the bb from class, it didn't come with either an ethernet cable or a USB-to barrel-connector power cable, so I ordered both from Amazon on Friday morning, with advice from Carl Wagner and Alan Bennett on what to get. They should show up early next week. Meanwhile, the board will run (slower) on power from the usb-to-mini-usb cable that came with it, and I can talk to it on the serial port over the same cable with minicom, putty, ....  (I even used cables from work to verify that the power and ethernet connectors on the bb work.)

I also ordered a pair of 4Gb, micro SD cards from Amazon. The bb has no flash memory -- it does everything running off the SD card. Carl says that the different type numbers available correspond to different speeds, and recommended I pay slightly more to get a type 6, because the type 4 cards, which looked like the cheapest, would be noticeably slower.

Okay. Learn as I go.

Next, infrastructure.
  • If I write stuff down, it'll make me think about it harder. Vide supra et infra
  • I need to stash my code somewhere. GitHub gets the nod. 
  • I need to pay attention to what I do, how long it takes, and what needs to get done next. This one's harder. I spent an hour looking at various project-management (pm) options and rejected them all. Remember the Milk seems too heavyweight and isn't tailored to the Agile-and-ticket-tracking "thing." Trac and Redmine are self-hosted, which turns pm into a science experiment. I'm already doing this one and don't have time for another. JIRA? Great, but even the cheapest version is $120/year: four months of double cheesburgers off of Macdonalds' dollar menu. I'll try using what GitHub supplies. It may be good enough, and I'll get more familiar with what they offer, an added value.
Oh, and the blog title and URL are references to a Philip K. Dick novel.  I imagine that my Nexus 7 tablet, and the Nexus 4 phone I've ordered take their names from the Nexus 6 androids in that story, too.

With that, here I go.

No comments:

Post a Comment