moto g 3rd gen 1

Inside this terribly unsexy box is the best Android bang for the buck. Whether you’re dipping your toe into the wild and wooly world of Android development like I am, or just need a decent smartphone for under $200, you should consider the 3rd-generation Moto G.

The 3rd-generation Moto G, which was released in July 2015, comes in two different models:

If you don’t mind refurbished electronics, you can get one at a really low price online. I got the 2GB RAM/16GB flash storage model listed on Best Buy’s site at US$120; with free shipping and taxes, the total came to US$130. It arrived yesterday in a plain white box along with the kind of USB charger whose cable doesn’t detach, and nothing else…

moto g 3rd gen 2

…but at this low price, and since I already have a stash of USB A-to-USB micro cables, I’m not going to complain.

moto g 3rd gen front back side

The 3rd-generation Moto G, viewed from the front, back, and side.
Click the photo to see it at full size.

Engadget summed up the 3rd-gen Moto G very nicely in their August 2015 review, titled Motorola wins the ‘best cheap phone’ crown, again. Although it’s priced like a starter phone, its Snapdragon 410 chipset help it to perform like a mid-range phone, and its display is surprisingly bright for a phone at this price point. The camera uses the same 13 megapixel sensor as the Nexus 6, which means nice photos in good light, grainy photos in low light, but a clear improvement over the previous year’s version. Battery life is very good; it played continuously looping video with the screen at 50% brightness for 10 hours and 40 minutes in Engadget’s test. It’s also waterproof for up to 30 minutes in depths of a meter (39 inches) or less:

moto g in glass of water

As for software, my 3rd-generation Moto G came with Android 5.1.1 (Lollipop) installed, but a short over-the-air update later, it was running 6.0 (Marshmallow). Motorola have always been quite quick with the OS updates, unlike many other more popular, pricier vendors.

Motorola do a very good job of not covering up Android with crapware — it’s as close to plain old Android as I’ve seen on any phone. The very few software add-ons that Moto added were subtle and nice; my favorite’s the hand-gesture detection, which switches on the camera app if you twist the phone twice, and turns on the flashlight if you make a “karate chop” gesture while holding the phone.

If you’re a reader of this blog, there’s a good chance that you’re a developer with an interest in mobile platforms. If you’re looking for an Android device for development and testing, and especially if you’re looking to target middle-of-the-road devices (which are high-end devices in emerging markets), the 3rd-gen Moto G offers the biggest bang for the buck, especially if you opt for a deal on a refurbished model.

I’m going to be doing a lot of development on my Moto G in the upcoming months; watch this space for some of the results!


In my last article, I posted this graphic, which uses emoji to make it easier to understand what the map, filter, and reduce functions do:

map filter reduce in emoji

Since then, I’ve been asked by a couple of friends if what’s in the graphic is just pseudocode or if it could actually be implemented. I told them it was the latter, and here’s my implementation in Swift:

I put this into a Swift playground, which you can copy from this Gist or download here.


Map, filter, and reduce explained using emoji

by Joey deVilla on June 23, 2016

Picture showing three functions: 1. the map function taking an array containing the cow face, roasted sweet potato, chicken, and ear of maize emojis and the cook function as its arguments and returning an array containing the cheeseburger, french fries, poultry legs and popcorn emojis; 2. the filter function taking an array containing the cheeseburger, french fries, poultry legs and popcorn emojis and the isVegetarian functions as its arguments and returning an array containing the french fries and popcorn emojis; 3. The reduce function taking an array containing the cheeseburger, french fries, poultry legs and popcorn emojis and the eat function as its arguments and returning the pile of poo emoji as its result.

Click the graphic to see it at full size.

I made the graphic above based on this amazing tweet by Steven Luscher (@steveluscher):

It’s a geeky t-shirt waiting to happen.


Amy Poehler on…coding?

by Joey deVilla on June 20, 2016

everyone lies about writing

yes please

This is from the preface of Amy Poehler’s book Yes Please, and it tells the truth about writing:

Everyone lies about writing. They lie about how easy it is or how hard it was. They perpetuate a romantic idea that writing is some beautiful experience that takes place in an architectural room filled with leather novels and chai tea. They talk about their ‘morning ritual’ and how they ‘dress for writing’ and the cabin in Big Sur where they go to ‘be alone’—blah blah blah. No one tells the truth about writing a book. Authors pretend their stories were always shiny and perfect and just waiting to be written. The truth is, writing is this: hard and boring and occasionally great but usually not. Even I have lied about writing. I have told people that writing this book has been like brushing away dirt from a fossil. What a load of shit. It has been like hacking away at a freezer with a screwdriver.

Coding is romanticized in the same way these days, thanks to the tech success stories we hear in the news, the increasing ubiquity of processors and the rise of the Internet of Things, concerns about job security and being “automated away”…and possibly because coding looks a lot like writing. “You must learn to code!” has been the battle cry of the White House, organizations like, tech titans, millennial entrepreneurs, and even that homeless guy:

I understand the urge to evangelize coding; in fact, it’s been a good chunk of my career. There’s nothing like the feeling you get when you run a program that you’ve written and seeing a computer or device turn your ideas into action. Even after coding for decades, I still give myself a Barney Stinson-style “self-five” when my code compiles and runs as I expect.

programmer punching through laptop screen

But as with writing, between the initial rush of setting out to code a program and the point that you declare the job done is a long journey of days, months, and even years. That journey has its moments of joy, discovery and wonder, but they’re punctuated with stretches of tedium, toil, and beating your head against your desk (usually figuratively, but sometimes literally) wondering why you can’t get the damned code to work. Like many writing projects, both professional and personal, many coding projects are abandoned. Writing and coding projects are never really finished; “done” is an arbitrary point determined by the writer or coder, and both are left with a lingering feeling that their project could benefit from just a few more changes. And that homeless coder is still homeless:

Thanks to the similarity between writing and coding, I’ve occasionally paraphrased Dorothy Parker: “I hate programming, but I love having programmed.

web horizontal rule

Want a coding-themed blast from the past featuring Amy Poehler? Here’s the pilot for a ’90s TV series called RVTV, in which Poehler plays a hacker who’s infiltrated the NRA database. She also breaks into some old-school rap:


what's new in iOS 10 and swift 3

The next Tampa iOS Meetup has been announced for Tuesday, June 28th at 6:30 p.m., and we’re going to talk about the announcements made at this week’s Apple Worldwide Developers Conference, with special attention to iOS 10 and Swift 3.0. It takes place at our usual spot: Energy Sense Finance, 3825 Henderson Boulevard (just west of Dale Mabry), Suite 300.

At the meetup, we’ll:

  • Present a review of what was announced at WWDC, with a particular focus on iOS and tvOS development
  • Show you how to get your hands on the beta software, including Xcode 8 and iOS 10
  • Take a look at the changes introduced in Swift 3, with an emphasis on where you may have to update your existing code
  • Talk about what you’d like to see in upcoming Tampa iOS Meetup sessions

Join us on the 28th, get to know your fellow Tampa Bay iOS developers, and get ready to learn and have some fun!

Tampa iOS Meetup is a monthly meetup run by local mobile developer/designer Angela Don and Yours Truly. While Tampa has a couple of great iOS developer meetups — Craig Clayton’s Suncoast iOS and Chris Woodard’s Tampa Bay Cocoaheads, we figured that there was room for a third iOS meetup in the Tampa Bay area, and especially one that would stray into other areas of mobile development. So we made one.

The Details

  • What: Tampa iOS’ Meetup’s “What’s new in iOS 10 and Swift 3.0” session. Please sign up on our Meetup page so we can plan accordingly!
  • When: Tuesday, June 28, 2016, 6:30 p.m. – 8:30 p.m. We’ll have some snacks at 6:30, with the presentation beginning at 7:00.
  • Where: Energy Sense Finance, 3825 Henderson Boulevard (just west of Dale Mabry), Suite 300. See the map below.
  • What to bring: Yourself, but if you’d like to follow along, bring your Macbook and make sure it’s got the latest Xcode.
  • What to read in advance: If you’re one of those people who likes to do some readings ahead of a presentation, check out What’s New in Swift 3? by the folks at


OpenHack Ybor tonight!

by Joey deVilla on June 14, 2016


If you’re a developer or tech-minded person in the Tampa Bay area and you’re looking for some fun conversation this evening, join us tonight from 6:30 to 9:00 at New World Brewery in Ybor City for Ybor Tech’s June OpenHack!

ybor tech

OpenHack Ybor, held once a month, is run by local Ruby developer Tony Winn and Jessica Arango for techies of all stripes who want to get to know their local peers, see what they’re up to, and enjoy some craft beer and free pizza.


We usually gather on the patio of New World Brewery, a brewery-turned-bar in Ybor City, Tampa’s historic warehouse district that was once home to a large cigar-making industry and is now one of those hip mixed-use areas with schools, offices, bars, restaurants, and alas, the Church of Scientology. You can’t win ’em all.


Some of us are just happy to converse, and some of us like to pull out our computers and show off their latest project or gear. Either approach works just fine, and Tony usually brings a wifi hotspot for those of you who need to get online. There are tables a plenty to “set up shop”, and the covered part of the patio has outlets.

I’d be remiss if I didn’t mention New World’s excellent selection of beers…


…and for you Marvel/pinball fans, their current selection of distractions is pretty nice too:


It’s also worth mentioning that whoever’s in charge of the music at New World has eclectic, excellent taste.

openhack at new world brewery wide

Click the photo to see it at full size.

There aren’t many better ways to enjoy the fantastic and fabulous Ybor City and our sub-tropical paradise while having great conversation and drinks with your fellow Tampa Bay area geeks than hanging out at an Ybor Tech OpenHack. Come on down — we’d love to see you there!

web horizontal rule

Need more details? Visit Ybor Tech’s June OpenHack event page.


Microsoft adds LinkedIn to its professional network

by Joey deVilla on June 13, 2016

microsoft acquires linkedin

Microsoft CEO Satya Nadella announced it to his employees in this company-wide email, and LinkedIn CEO Jeff Weiner did the same with his employees: they announced that Microsoft is acquiring LinkedIn for $26.2 billion in a pure cash transaction.

Here’s a short (1:43) video of Nadella and Weiner in a Microsoft-produced interview where they talk about the acquisition:

The video ends with the two companies’ mission statements:

linkedin microsoft mission statements

And they are:

  • LinkedIn: To connect the world’s professionals to make them more productive and successful.
  • Microsoft: To empower every person and every organization on the planet to achieve more.

They’re pretty similar, and if LinkedIn and Microsoft’s really follow (or at least act as if they’re following) their respective mission statements, then the acquisition makes sense: these are two companies chasing roughly the same goal, one via productivity software and cloud services, and one via social networking. Jeff Weiner said pretty much the same thing in this interview with TIME: “Essentially, we’re both trying to do the same thing but coming at it from two different places.”

Here’s my summary of who gets what in this deal. Keep in mind that I’m an opinionated developer evangelist and not a professional industry analyst. Take this with the appropriately-sized grain of salt:

microsoft linkedin acquisition possible outcomes

  • LinkedIn will eventually be hosted on Azure, giving Microsoft another success story they can point to when trying to convince people to host their stuff on their cloud platform.
  • Office gets LinkedIn’s social graph, which will likely be tied into various services:
    • Finding people: Active Directory, Bing
    • Communicating: Outlook, Skype/Skype for Business
    • Coordination people: Outlook, Project, Dynamics
    • A new source of data points for Cortana
  • The number one slideware, PowerPoint, gets tied into the number one way to share slides online, SlideShare.
  • LinkedIn gets the resources of a parent with plenty in the bank, which is a relief after the beating investors gave it earlier this year
  • Microsoft hopes to strengthen its ties with the working world, which has been looking to other places for solutions

microsoft and linkedin graphs

Professional Microsoft watcher Mary Jo Foley points to the above image from Microsoft, and says that the two companies’ graphs are disjoint, and putting them together into a unified dataset opens a world of opportunities.

cancelled linkedin wwdc watch party

One interesting side effect of the acquisition: LinkedIn’s “WWDC Watching Party” — a gathering where people could get together to watch Apple’s Worldwide Developer Conference on big screens at LinkedIn’s San Francisco office  — was cancelled. What’s still on is the Microsoft WWDC afterparty, held next door to WWDC, where they’re offering free food and drinks, and showing off their Xamarin IDE and Test Cloud, two recently-acquired Microsoft products that they’re hoping to get iOS developers to start using.