Tales from my job search: The job search so far

Click the graph to see it at full size.

The job search continues, and as you might expect, it’s had its ups and downs. I drew the graph above, inspired by the graph below, which has been making the rounds on LinkedIn and depicts the ever-changing mood entrepreneur:

I choose to view it as part of the adventure, and if you’re in the same boat as I am, I hope you see it the same way.

What I’ve been up to in the absence of work

Last week, I participated as a “trained brain” at a workshop at the Dali Museum’s Innovation Labs to help an area business come up with new ideas…

Upgraded the RAM on my ThinkPad to elevate it from TPS Report-writing tool to half-decent developer and multimedia machine:

Prepared my upcoming presentations for Google Developer Group Sun Coast (Android and Augmented Reality) and Tampa iOS Meetup (Learn how to write Flappy Bird):

Discovered that my LinkedIn Social Selling Index score had gone up by a couple of points:

Answered some Stack Overflow questions, updated my Stack Overflow Developer Story, and discovered that my reputation score puts me in the top 4%:

and puts me in Stack Overflow’s top 10% for Python and top 5% for Ruby:

I’ve also been working away on apps and articles, and of course, looking for work:

Want to know more about me?

I’m looking for my next great job! If you’re looking for someone with desktop, web, mobile, and IoT development skills who can also communicate to technical and non-technical audiences, or a marketer or evangelist who also has a technology background and can code, you should talk to me.

Current Events Tampa Bay Uncategorized

What’s happening in the Tampa Bay tech scene (Week of Monday, April 17, 2017)

It’s a busy week for techies in the Tampa Bay area! Here’s what’s happening for developers, technologists, and tech entrepreneurs…

Monday, April 17

Tuesday, April 18

Wednesday, April 19

That’s right: this Wednesday, I’ll be giving a presentation for GDG Sun Coast on Google Mobile Vision, the Face API, and using them to create a Snapchat Lens-like augmented reality app! Space is limited, so if you’re interested in this one, register now!

Thursday, April 20

Friday, April 21

Saturday, April 22



Tampa iOS Meetup: Learn how to make games with Sprite Kit and “Flappy Bird”! (Tuesday, April 25, 2017)

I’ve just announced the next session of Tampa iOS Meetup, Tampa Bay’s beginner-friendly gathering for people who want to learn how to write iPhone and iPad apps. It takes place on Tuesday, April 25th at 6:30 p.m., and we’re going to code Flappy Bird!

The best videogames are the ones that tap into that masochistic, addiction-prone part of your brain, the one that tells you to play just once more, because this time you’ve got it figured out. They are, to borrow a line from Atari/Chuck E. Cheese founder Nolan Bushnell, “easy to learn, hard to master”. In 2013, Flappy Bird met those criteria for 50 million frustrated-but-addicted players. It was a free iOS game where you tapped the screen to make a bird’s wings flap and give it lift as it navigated an increasingly maddeningly impassable field of Mario-esque tubes. Coded by 29-year-old Vietnamese developer Dong Nguyen over the course of a few nights after work, it got millions of downloads and was making $50,000 a day just through advertising.

Click the graph to see the source.

“Games” is the most popular category in the iOS App Store, accounting over 25% of active apps. They’re over two and a half times as popular as the next-most-popular category, business apps. Look in any place where people are waiting these days — in line at the bank or grocery, at public transit stops and airports, cafes and restaurants — and you’ll see people passing the time with a mobile game. Gaming is a basic human activity — we’ve had them since our earliest days, and we’ve had computer games for almost as long as we’ve had computers.

Despite the fact that games are the most-used type of mobile app, there are far fewer game development tutorials than there are for “standard” apps. That’s a pity, because one of the best ways to learn programming is satisfaction, and there’s nothing more satisfying than seeing a game you created in action. While games can be complex, the concepts behind them are simple, and some of the most popular games are pretty simple as well. Why not try game development as a way to learn programming, Swift, and iOS?

Animated scene showing 'Flappy Bird' gameplay.

The Details

This is a hands-on workshop! It works best if you bring a Mac laptop, as you’ll build a simple game as I walk you through the project and explain game programming principles. At the end, I’ll show you where you can download files for the completed game, so you can learn from it and start coding your own!

(Yes, you can still come if you don’t bring a Mac laptop.)

What’s Tampa iOS Meetup all about?

Tampa iOS Meetup is the Tampa Bay area’s meetup for beginning programmers and developers new to iOS development. We take a hands-on approach because it’s our answer to a question that I’ve been asked again and again, and it goes something like this:

“I’ve been studying iOS development for some time, and I’m still having a problem writing apps. I know how to program specific features in iOS, but I don’t know how to turn a bunch of features into an app.”

It’s one thing to go through tutorials that show you how to program a specific feature. It’s a completely different thing to take the knowledge from those tutorials and then write an app. My goal for Tampa iOS Meetup in 2017 is to show you how to make that leap by walking you through the process of making apps.

Special thanks to our sponsor

Tampa iOS Meetup wouldn’t be possible without the generosity of Wolters Kluwer. They provide both the space in which to hold the meetup, as well as the food and drinks! Special thanks to John Wang, my go-to guy at Wolters Kluwer, and source of valuable feedback for my presentations.

Current Events Tampa Bay Uncategorized

What’s happening in the Tampa Bay tech scene (week of Monday, April 10, 2017)

Here’s what’s happening in Tampa Bay and surrounding areas for developers, technologists, and tech entrepreneurs this week.

Monday, April 10

Tuesday, April 11

Wednesday, April 12

Thursday, April 13

Friday, April 14


Hardware What I’m Up To

A quick picture guide to upgrading the RAM on a Lenovo ThinkPad T430

The oldest-model computer in my stable is a Lenovo ThinkPad T430 (pictured above). Released in 2012, it’s a business workhorse powered by a dual-core i5-3230M processor running at 2.6 GHz (suitable for writing TPS reports and even playing older 3D games) that’s still issued to worker bees at offices everywhere. I acquired mine in 2013 in lieu of payment owed to me from a deadbeat, and since then, it’s been performing yeoman service in its role as a backup machine for tasks that specially require Windows or Linux.

It came with a stock 4GB RAM, which has caused me to run into some limitations, especially with heavier-weight development tools such as Visual Studio and Android Studio, the video capture and recording tool Camtasia, and to a lesser extent, graphic design and audio tools. It was time for that most effective and universal of computer upgrades: more RAM!

The T430 takes two 1600 MHz PC3-12800 SO-DIMMs and supports up to 16GB memory. I ordered a pair on NewEgg for less than $100, which came with two-day free shipping. The DIMMs arrived via FedEx Friday morning, and like any geek with a new tech toy, I took out my set of teeny computer screwdrivers and got to work on installing them right after they arrived.

The first step was to remove the battery. ThinkPads from that era (I’m not certain about present-era ones) followed the old-school philosophy to batteries and kept them external and easily swapped out:

I remembered seeing a RAM upgrade on one of these computers years ago, so I knew that there was a RAM slot located on the bottom of the machine, just underneath the central panel…

…and only two screws stand between you and a RAM upgrade…

…and until you realize that there’s just one RAM slot there. Upon seeing this, I looked around, confirmed that there was only one RAM slot under that panel, and then checked the online specs for the T430. It says two SO-DIMM slots. Where’s the other one?

Here’s the interesting thing about adding RAM to the T430: its two RAM slots are in quite different places with different levels of difficulty to access.

The second RAM slot — where the factory-installed RAM goes — is under the keyboard, and getting to it takes a little more work. My guess is that Lenovo’s engineers expected most users to buy a single DIMM to expand their machine’s RAM, and that they’d install it into the easier-to-access slot at the bottom of the machine.

Even if you have no plans to add or remove RAM from the more easily accessed underside, you still need to open the central panel at the bottom of the machine to access the RAM under the keyboard. That’s because there are two screws inside the central panel that you have to remove in order to get under the keyboard:

These two screws anchor the keyboard, and if they’re in place, you won’t be able to access the RAM slot underneath it.

When you’ve removed those two screws, you can remove the keyboard. Pry it up gently, starting with the edge closest to the trackpad. I used a metal ruler to help me with the process, taking care not to scratch the casing:

Lift the keyboard. You’ll see that it’s connected to the motherboard by a short strip of ribbon cable. There’s a thin piece of dark, slightly translucent plastic to the left of where the ribbon cable meets the motherboard; the RAM slot is underneath it:

To make it easier to pop in the RAM, I disconnected the keyboard. You might not have to do it in order to insert the RAM, but it was pretty easy:

I flipped back the panel, where the factory-installed 4GB DIMM lived…

…and replaced it with the new 8GB DIMM.

With the RAM installed, I reversed my steps, fired up the ThinkPad, and checked my RAM the fun way: by asking Cortana using my voice. Here was her response:

Success! The ThinkPad is back in action, and ready for development work. In the short time with maxed-out RAM, I’ve found that Visual Studio, Android Studio, and Camtasia work wonderfully, and video performance is improved as well (my model has integrated graphics, which relies on system RAM).

If you prefer a video walk-through of the ThinkPad T430 RAM upgrade procedure, try this one:


Wednesday, April 19: My presentation on Android and augmented reality

I’ll be presenting the app pictured above at the next GDG (Google Developer Group) Sun Coast Meetup, which takes place at Tampa Bay WaVE on Wednesday, April 19th, where I’ll talk about Android and augmented reality by walking you through FaceSpotter, an app that uses the Face API, part of Google’s Mobile Vision suite of computer vision APIs, to replicate Snapchat’s “Lenses” feature.

It identifies and locates facial features…

…and draws cartoon eyes, nose, and mustache over them. It also uses smile detection…

…and the tilt of the subject’s head…

…to decide what additional cartoon features to add to the picture:

  • If the app is more than 80% confident that a face is smiling, it draws the pupils of its eyes as smiling stars.
  • If a head is tilted 20 degrees or more to the left or right, it draws a tiny red hat atop it.

The app I’ll present — and yes, I’ll give you the code — is an example of augmented reality, or AR for short. “Augmented reality” is just a highfalutin’ term that describes a computer spicing up real-world images with computer-generated ones. We’ll combine it with computer facial detection, which is nothing new for humans, but still pretty new for computers, never mind handheld ones.

Writing an app like FaceSpotter used to require serious programming chops, but with the libraries that you’ll see in this presentation, you can whip up an app like it in an afternoon. You’ll learn how to:

  • Incorporate the Face API into your own apps
  • Programmatically identify and track human faces from a camera feed and get their location and size
  • Identify points of interest, such as eyes, ears, nose, and mouth on tracked faces
  • Draw augmented reality text and graphics over images from a camera feed
  • Build a Snapchat Lens-like app that draws cartoony features over faces it detects in a camera feed

GDG Sun Coast is run by Mike Traverso and Scott Thisse and is the Tampa Bay chapter of Google Developer Groups, local gatherings of Google developers worldwide to discuss Google developer technologies: Android, Chrome, Drive, Google Cloud, and various APIs, including the Cast API, Maps API, and YouTube API.

Join me, Mike, and Scott at the next GDG Sun Coast Meetup, where I’ll present FaceSpotter and the code behind it in my presentation, Android and Augmented Reality!


Infographic: User reviews are the king

If you’re reading this blog, chances are that you often check the reviews before you buy something, whether online or in a brick-and-mortar establishment. I always see what the reviews are before buying something at Amazon, usually check the reviews for restaurants and hotels that are new to me, take the temperature of a film on Rotten Tomatoes, and even at the local craft beer pub where Tampa’s monthly Ybor Tech OpenHack get-together (New World Brewery; 4.6 stars on Facebook, 4.2 stars on Yelp), I’ve pulled out my phone to check reviews when faced with a menu of unknown ales and stouts.

I’m not telling you anything new by saying that in a world with nearly ubiquitous networked computing, reviews are crucial to bringing in new business. What might be new to you are the numbers behind reviews, but you can discover them in Website’s User Reviews are the King, which collects data from 30 sources and brings them together into a single infographic.

Here’s a preview of the infographic. Click it to see the whole thing: