Building Your First App with Android Studio 2.0

Hints for using the first two Android training guides with Android Studio 2.0 and suggestions for extending your first app to programmatically check locale, use log statements, use screen orientation to test different layouts, and create a quick run-time build-version test using the Snackbar message.


As the title suggests, this article is for developers who are new to the Android development platform. You need some knowledge of markup languages, but don’t have to be an expert in XML. It’s great if you know  Java, but as long as you’re familiar with other programming languages, you can build an Android application. Of course, you also need Android Studio 2.0 and the latest SDK.

The Internet has no shortage of resources for beginning Android developers, but I like the training guides on the Android developer website because they are thorough and let you jump right in and start coding. There are eight Getting Started guides, beginning with Building Your First App and including guides for supporting different devices, building a dynamic UI,  and using system permissions. (More experienced developers may like the 19 advanced educational categories, including writing for wearables and best practices for performance and security.)
Continue reading “Building Your First App with Android Studio 2.0”


Commandline Tool? Command-line Tool? Command Line Tool?

Sorry for the repetitive title, but Apache Taverna is preparing a release that will include the Taverna Commandline Tool, or is it Command Line Tool, or Command-Line Tool? Or just Command Line?  Now you see the problem. The name for the tool is different throughout the documentation. Not good.

The project lead, not a native English speaker as it turns out, requested that those of us who are native English speakers weigh in on the correct name for the tool. Challenge accepted. How hard can this be? I know compound adjectives are frequently hyphenated when they modify a noun (think, Red-headed woodpecker), but maybe there is a different software-development convention for this particular term?

First, look online

It turns out there is some inconsistency in the online use of command line tool versus command-line tool.  First, I found some examples without hyphens: What is the Command Line Tools Package? and Top 10 Command Line Tools. Then I found a different use, from Wikipedia, that was hyphenated: Command-line interface. But the article has an “issues” flag and, oh yes, it’s Wikipedia; not a good academic reference. I next found Command-Line Reference from Microsoft – with a hyphen. And then I found another from Microsoft, this time without a hyphen: Using command line tools for networking information. And finally, two more from Microsoft – with hyphens: Windows 7 command-line tools and programs and How to create a command-line toolkit for Windows. It seems like the hyphens have an edge, but I wanted a more definitive answer. Continue reading “Commandline Tool? Command-line Tool? Command Line Tool?”

Using Google Slides and icons to diagram the Google Android API Intro

Earlier this week, I went to the San Francisco Write the Docs meetup and heard eleven great lightning talks. I heard many ideas I want to try out (like playing with Twine, for example), but I am very visual, so the icons John Mulhausen used in the Kubernetes Case Study caught my eye, and I decided to play with those first.

Briefly, John is using GitHub to allow other tech writers to help him with the Kubernetes documentation. It’s open source, so anyone can contribute by making pull requests. John particularly needs help creating diagrams, so he demonstrated how to use an obsolete Google style guide to create new diagrams.

It happens I was researching Google Android APIs today. I decided to turn the developer guide introduction into diagrams, using John’s style guide. The result is the Google Slide Deck above. (I did create one icon, using the same color and style, so it meshes with the rest of the icons. See if you can figure out which icon I created.)  Continue reading “Using Google Slides and icons to diagram the Google Android API Intro”

Git Version Control — Step-by-Step

In Using Git for Website Version Control I talked in general about how I use Git to manage development of my website. In this post, I’ll show you the process step-by-step.


To update my website (which I developed using HTML, CSS, and a little JavaScript), I edit the files on my laptop, and then copy (FTP) these modified files to the server. On my laptop, Git lets me make changes on a copy of my website. Ideally, smart use of Git gives me the ability to discard experimental changes and return to an earlier version.

Here is the process I use.

Step 1 — Tell Git I will be making changes

The first thing I do is open the command line (GitBash) and navigate to the GitHub folder for my website. (I use GitBash because I’m using Git for Windows.)

starting up gitbash

Next I open my development branch. This tells Git I will be working on a copy of my files. Continue reading “Git Version Control — Step-by-Step”

ASF CMS Editing Hints for New Committers

I was mesmerized by the abundance of resources for new Apache Software Foundation (ASF) committers. As a result of this bounty, it took more time than I expected to make my initial commit. The process now seems straightforward, but way back, say, 24 hours ago, things were much fuzzier.

Two resources are key. If you’ve watched Rob Weir’s video tutorial and read the Get Started Editing a Page link in the CMS Reference, good for you! You are ahead of where I was. These references are probably good enough for most people, although one important point is missing: The copy I was editing did not match the live web page. I needed to update my local version before editing, which sounds obvious now, but that’s because I finally understand how the process works. Continue reading “ASF CMS Editing Hints for New Committers”

API Endpoints vs Resources

API Endpoints vs Resources

Aha! moments are the best. Don’t you agree? Whether it’s learning something brand new or something I didn’t know quite as well as I thought, I live for the moments when things just click.

These moments are, of course, preceded by another kind of moment: the tilt-your-head, furrow-your-brows, something’s-not-right-here moment. I recently had one of those moments reading about API endpoints and resources. Continue reading “API Endpoints vs Resources”

Unpacking What I Know About Writing

Technical communication is a complex task. As technical writers study and hone their craft, they compress what they learn until using it becomes second nature. If you’ve never studied education, you may not even be aware of the process, but we compress knowledge every time we learn something new.

Do you think about how to move your body every time you take a step? Of course not, but learning to walk requires extreme concentration. When students learn algebra, if they haven’t compressed, or packed, their knowledge of basic operations, it will be impossible to master the new material. Packing new knowledge means we have more brainpower available for the next new task.

Unpacking happens as well. While students are compressing knowledge as they learn, teachers are unpacking knowledge to teach. Continue reading “Unpacking What I Know About Writing”

Making Changes Without Fear

Using Simple Git Commands to Tame Website Updates

In my last post, I talked in general about how I use Git to provide version control for my website. In this post, I’ll describe the simple Git commands I use to manage changes to my website.

Simple Example: Edit a File

I have a master version of my website that I push via FTP to a web server. I also have a development version of my website that I use to test changes before deciding to take them live. Git manages those versions seamlessly so I can concentrate on the changes. Here is a typical exchange: Continue reading “Making Changes Without Fear”

Using Git for Website Version Control

TL;DR. Git provides better control of website changes than manually tracking file versions and it’s free.

I decided to build my portfolio website from scratch, just to practice my HTML and CSS skills. It’s always better to practice on something real, and I’m relatively happy with it. It does what I need it to do right now, but I periodically need to add content or make improvements.

I’ve also been learning Git and GitHub as I contribute to an open-source Apache Software Foundation incubator project.

It only recently occurred to me to join the two endeavors (duh!) and use Git to provide local version control as I continue developing my website. Continue reading “Using Git for Website Version Control”

The Odyssey Effect

AKA, the as-soon-as-you-buy-a-new-car-everyone-has-that-car effect.

Okay, I made up the Odyssey Effect*, but it turns out there is a name for that phenomenon: it’s called Baader-Meinhof phenomenon or, more scientifically, frequency illusion. And it doesn’t just apply to products. Words, songs, and even the language in job postings can trigger the feeling.

I was reminded of the “Odyssey Effect” while at a recent STC chapter meeting. A new member and I were talking about job hunting. She is stronger in tools knowledge and experience but weaker in domain knowledge, whereas I am just the opposite. When searching for jobs, she remembers all the postings requiring domain knowledge (network engineering experience, etc.), and I remember all the postings requiring FrameMaker and so on. Continue reading “The Odyssey Effect”