FLdev Tampa Bay

Functional Ybor meetup: Functional World Tour (May 31, 2016)

functional ybor

Ybor City is home not just to some great bars, clubs, and restaurants, but also a number of wild urban chickens and roosters. They’re much better than pigeons.

If you’re a programmer looking for something to do tonight in Tampa, I recommend checking out Functional Ybor, part of the Ybor Tech series of meetups run by Tony Winn. Ybor Tech is a gathering that happens twice a month in Tampa’s Ybor City neighborhood, once in a more formal, presentation-style setting, and once at New World Brewery over beer and pizza. Tonight’s gathering is the more formal, presentation-style one, but if the pattern holds true, we’re very likely to go somewhere in Ybor for beer afterwards.

Tony will be giving tonight’s presentation, titled Functional World Tour. He’ll give us an overview of the most interesting and popular functional languages in use today: Clojure, Scala, Haskell, Erlang, Elixir, Elm (that’s his jam), Scheme, OCaml, and JavaScript (“with some guide rails”). At the end of the talk, he’ll open things up for discussion so that the group can figure out which functional language we’d like to cover in depth over the next several meetings.

robert saunders sr public library

Tonight’s meetup will take place at the Robert Saunders Sr. Public Library, located at 1505 North Nebraska Avenue (just south of 7th Avenue) from 6:30 p.m. to 8:00 p.m.. It’ll take place in the big meeting room on the second floor. See you there!

Tampa Bay Vaya con iOS

Tampa iOS Meetup, Wednesday, May 4th: Adding geolocation to our weather app

adding geolocation to our weather app

The next Tampa iOS Meetup has been announced for Wednesday, May 4th at 6:30 p.m.. This one builds on the previous meetup (but if you missed the last one, we’ll get you caught up) and is called Adding geolocation to our weather app.  It takes place at our usual spot: Energy Sense Finance, 3825 Henderson Boulevard (just west of Dale Mabry), Suite 300.

We’ll pick up from where our last meetup, Build a simple weather app (and learn basic network programming along the way), left off. The app required you to specify your location before it would report the weather. But that’s not how most weather apps work: they use geolocation to get your phone’s coordinates and provide them to the weather service. In this meetup, we’ll show you how to harness the power of iOS geolocation through the Core Location framework.

We’ll begin with a quick walkthrough of last meetup’s weather app, just as a reminder for those of you who were there, and as a way for those of you who weren’t to get caught up. Then we’ll get right into the business of adding geolocation capability to our weather app, so that when you run it, it displays the weather for your location.

At the end of this session, you’ll know how to make use of geolocation through Core Location. We’ll make the source code and presentation materials available at the end, to make it easier for you to start your own geolocation projects.

Join us this Wednesday, 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 “Adding geolocation to our weather app” session. Please sign up on our Meetup page so we can plan accordingly!
  • When: Wednesday, May 4, 2016, 6:30 p.m. – 9:00 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, try this example location app written in Swift. We’ll be using our own tutorial material, but this may come in handy.
FLdev Tampa Bay

Tonight at Tampa Bay Startup Week: The Star Wars / Iron Yard Hour of Code!

rey and bb-8
iron yard logo

Tonight, as part of Tampa Bay Startup Week, Anitra and I will be helping the people from the coding school The Iron Yard Tampa Bay with their Hour of Code event! It’s an hour-long training session where kids ages 8 – 12 and teens ages 13 – 17 can get a quick, fun introduction to coding with the help of Rey and BB-8 from The Force Awakens and Princess Leia and R2-D2 from the original trilogy.

Here’s a quick video intro to what the Star Wars Hour of Code’s all about, courtesy of Star Wars: The Force Awakens’ producer Kathleen Kennedy and Rachel Rose, lead engineer for Star Wars’ animation and creature development team…

The programming interface that Hour of Code participants use is delightfully simple and fun. They drag and drop “blocks”, which represent calls to functions, to move the droid characters like BB-8 and R2-D2 around, arrange them into sequences which function as programs, and then click the “Run” button to see if their code worked.

It starts off with the simple task of moving BB-8 towards a single piece of scrap metal:

star wars code 01

Click the screenshot to see it at full size.

…but about a dozen lessons later, you’re writing considerably more complex stuff that includes concepts like variables, branches, and loops, and changing droid characters:

star wars code 02

Click the screenshot to see it at full size.

tampa bay wave

If you can make it to tonight’s Hour of Code…

The event takes place tonight at Tampa Bay WaVE, 500 East Kennedy Boulevard, Suite 300 at 6:30 p.m.

If you’d like to have your kid or teen participate in tonight’s event, go to Tampa Bay Startup Week’s event schedule and sign up for the appropriate event. You’ll need to bring a fully-charged laptop (and it’ll be a good idea to bring its power cord) or tablet with working wifi and browser in order to work on the code. It can run Windows, Mac OS, Linux, iOS, or Android — as long as it’s got a relatively recent browser and can connect wireless to the internet, it’ll work for this class.

If you can’t make it to tonight’s Hour of Code…

…you can still code your way through the galaxy by visiting’s Star Wars site! star wars

Have fun, and may The Source be with you!

FLdev Tampa Bay

Tampa iOS Meetup, Tuesday, January 19th: Get started with making iOS games with Sprite Kit!

Poster: Get Your Game On! / Getting started with building iOS games in Sprite Kit / Tampa iOS Meetup - Tuesday, january 19, 2016 -- A hodgepodge of iOS gaming-related imagery.

Happy new year, experienced and aspiring iOS developers in the Tampa Bay area!

If you’ve made a new year’s resolution to take up iOS, Swift, or game development in 2016, the upcoming Tampa iOS Meetup topic might be just what you need to get started. It’s called Get Your Game On: Getting Started with Sprite Kit, and it’s taking place in Tampa next Tuesday, January 19, 2016.

Tampa iOS Meetup banner with photo of Joey deVilla and Angela Don in the background.

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.

Tampa iOS Meetup’s next meetup: Get Your Game On!

Icons of iOS games appearing to leap off the screen of an iPhone.

“Games” is the most popular category in the iOS App Store, accounting for 22.5% of active apps. They’re more than twice 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.

Join us next Tuesday, January 19th at the Tampa iOS Meetup and start the new year by getting your game on!

The Details

  • What: Tampa iOS’ Meetup’s “Get Your Game On” session. Please sign up on our Meetup page so we can plan accordingly!
  • When: Tuesday, January 19, 2016, 6:30 p.m. – 9: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 Xcode 7.2.
  • What to read in advance: If you’re one of those people who likes to do some readings ahead of a presentation, check out the Sprite Kit tutorials on Ray Wenderlich’s site. We’ll be using our own tutorial material, but Ray’s stuff will come in handy.
FLdev Swift Kick Tampa Bay Vaya con iOS

Share your Swift tips and tricks at this week’s Tampa iOS meetup: Wednesday, November 18!

swift tips and tricks meetup

Hey, Tampa Bay iOS developers — here’s your chance to shine! At the next Tampa iOS Meetup (Wednesday, November 18th at 7:00 p.m.), a monthly gathering run by me and my friend Angela, we’re having a “Swift Tips and Tricks” night, where we’ll take turns sharing tips an tricks that we’ve either discovered on our own or found through others while programming in Swift.

Have you ever wanted to present something at an iOS meetup, but it was on a topic or technique that could easily be covered in ten or even five minutes? Well, this meetup is your chance to be an iOS rock star, as short presentations is what it’s all about! Whether you’ve been building apps since the Objective-C days or picked up Swift a couple of weeks ago, you’ve got knowledge to share with your fellow developers, who in turn have knowledge to share with you! Join us for an evening of demos, information exchange, and that buzz that you get when you’re in a room of smart, interesting people, one of whom is you!

Me and Angela at BarCamp Tampa Bay 2015.

In order to help kick off the event, I’ll start by presenting some tips and tricks that I’ve picked up while working on my own apps, and I’m sure Angela will be doing the same. After that, it’s everyone else! We invite discussions and questions throughout the meetup, as it’s the best way to learn.

Here are the event details:

  • What: Tampa iOS meetup, a new gathering in the area that complements the Suncoast iOS Meetup and Tampa Bay Cocoaheads, both worthwhile gatherings. We want to make sure that if you can’t make one local iOS event, there’ll always be another one in the near future!
  • When: Wednesday, November 18th, from 7:00 p.m. to 9:00 p.m.
  • Where: Energy Sense Finance, located at 3825 Henderson Blvd., Suite 300 (just west of South Dale Mabry)
  • If you have a tip or trick that you’d like to present, let us know! Drop us a line in the comments section at the bottom of our Meetup page or email me at We’ll provide a projector, and if you need one, a Mac to present on.
  • We’ll have provide some snacks and drinks. No idea what they’ll be, but I’ll post details as I found out.
FLdev Tampa Bay

Tampa’s OpenHack Ybor meetup: Tonight at Brass Tap!

openhack ybor - new world

OpenHack Ybor’s August gathering at New World Brewery.
Click the photo to see it at full size.

If you’re in the Tampa area tonight and would like to get to know your fellow developers, show off your current passion project, find out what their passion projects are, and enjoy some pizza and beer (or whatever beverage you like) in a friendly, convivial atmosphere, you might want to come to tonight’s OpenHack Ybor meetup!

openhack ybor - new world 2

Another scene from the meetup at New World Brewery.

OpenHack Ybor, held once a month at one of Ybor City’s many beer-dispensing hangouts, is run by local Ruby developer Tony Winn for software developers of all stripes who want to get to know other local developers, see what they’re up to, and enjoy some free pizza. We’ve already had two OpenHack Ybor meetups — the first at the new pub at Coppertail Brewing, and the second at New World Brewery. Tonight’s meetup, which starts at 6:30, takes place at the Brass Tap in Centro Ybor.

centro ybor

Tonight’s meetup location: Brass Tap in Centro Ybor.

If you’d like to attend, RSVP on OpenHack Ybor’s meetup page (there’s no admission, the pizza is free, you’ll have to buy your own beer) so that Tony’s got an idea of how many will be there and can order pizza accordingly. It’s fun, it’s friendly, and it’s one of my go-to geek events. I’ll be there, and I hope to see you there too!

The article also appears in my personal blog, The Adventures of Accordion Guy in the 21st Century.

Current Events Tampa Bay Uncategorized

While I was away (or: Getting married and getting my 2011 MacBook fixed)

Things have been quiet lately here on Global Nerdy. I have a couple of good excuses. Here’s the first one:

Photo: Anitra Pavka and Joey deVilla at their wedding.

Anitra and me, shortly after getting married. Click the photo to see more.

On Saturday, March 7th, the lovely lady for whom I moved from Toronto to Tampa and I got married. We had our ceremony on St. Pete Beach followed by a brunch reception on the penthouse ballroom of the Grand Plaza Hotel, a stunning room that looks like it would’ve made a great hideout for Sean Connery-era Bond villain. As you might expect, this big life event took priority over a great many things, including blogging.

Photo: Joey deVilla's MacBook Pro (early 2011 15-inch model), as seen from his vantage point in an Air Canada window seat. In the background, a movie plays on the seat-back in-flight entertainment system.

“El Guapo”, my trusty early 2011 15″ MacBook Pro, circa 2012.

My other excuse is technological: “El Guapo”, my trusty early 2011 15″ MacBook Pro, was beginning to show some glitchy behavior just before my wedding. (Maybe it had some reservations about leaving the bachelor computing lifestyle.) At first, it started running hotter than usual, and its fans would often be going full bore. Then came the random restarts. Finally, it would fail to boot up. It would start up fine…

Photo: MacBook Pro screen, showing the OS X Yosemite progress bar a little past the halfway mark.

Photo taken from the Stack Exchange Forum Ask Different. Click to see the source.

…but after the progress bar filled up — a process that seemed to take a little longer than usual — it would display a blank gray screen like the one shown below:

Photo: MacBook Pro showing a bank gray screen.

Photo taken from the Stack Exchange Forum Ask Different. Click to see the source.

At this point, the computer would either hang there or spontaneously reboot, which would lead back to the blank gray screen.

The first resort: Resetting the NVRAM, a.k.a. the PRAM

Long-time Mac users know that when a Mac starts exhibiting wonky behavior, resetting the PRAM — that’s short for Parameter RAM — often does the trick. Those same long-time Mac users are also the ones who still call it PRAM; Apple’s moved on from that old name and now calls it NVRAM, which stands for Non-Volatile RAM. No matter what you call it, NVRAM/PRAM is a small store of persistent, writable memory that contains a number of system settings and configurations, including:

  • Which disk is your startup disk
  • Networking and port configurations
  • User input settings such as autokey delay and rate, mouse speed, the blink rate of the “text insert point” cursor, how quickly you have to double-click for it to register as a double-click, and so on…
  • All manner of memory settings, including virtual memory, disk cache, and RAM disk

When your Mac starts acting strangely, it’s often the case that the configuration data inside your NVRAM somehow got corrupted. Luckily, there’s a simple but not-very-obvious way to reset your NVRAM, and it’s all based on a combination of keys that you need to press simultaneously when your Mac boots up. This trick goes back to the days when it was still called PRAM, which explains the keys you have to press:

Headline: The key combo for resetting the PRAM on your Mac when you power up / Photo: Mac keyboard with "command", "option", "P", and "R" keys highlighted.

The steps are simple:

  1. Shut down your Mac. Don’t just log out or put it to sleep, shut it all the way down.
  2. Press the power button to turn your Mac on. Get ready to pounce on the keyboard.
  3. Hold down these keys simultaneously: command, option, P, and R. Make sure that you’re holding down this combination of keys before the gray screen appears. You have to be quick.
  4. Your Mac will reboot. Wait for the startup sound, then let go of the keys and let the machine boot as usual.

While this trick has served me well in the past, it didn’t work in this case. It was time for the next trick: resetting the SMC.

The second resort: Resetting the SMC

The SMC — short for System Management Controller — doesn’t have as long a history as the PRAM, as it was introduced with Intel-based Macs (prior to that. Macs were based on Motorola CPUs). The SMC controls a number of interesting hardware goodies, including indicator lights, the display and keyboard backlights, the cooling fans, power, and more.

The steps for resetting the SMC vary depending on the model of Mac. For my particular machine (once again, it’s an early 2011 15″ MacBook Pro), here are the steps:

  1. Shut down your Mac. Don’t just log out or put it to sleep, shut it all the way down.
  2. Unplug the power cord and all peripherals.
  3. Press and hold the power button for 5 seconds.
  4. Release the power button.
  5. Reconnect the power cord.
  6. Press the power button and let the machine boot as usual.

I’m told this trick fixes a lot of hardware weirdness, but not for me. It was time to take it to the shop, but before I could do that, I wanted to back up some files.

Target disk mode: turning your Mac into a drive that other Macs can use

Target disk mode allows a Mac to function as a drive that other Macs can access. My plan was to hook up the following to my wife’s perfectly-functioning Mac:

  • My Mac, with a Thunderbolt cable, and
  • An external hard drive, with a USB cable.

My plan: to boot my Mac into target disk mode, after which I would copy the files I wanted from my Mac to the external hard drive. I crossed my fingers and booted my Mac into target disk mode using the magic key:

Headline: To boot your Mac in target disk mode, hold the T key while booting up / Photo: Mac keyboard with the "T" key highlighted.

Luckily for me, my Mac was working just well enough to boot into target disk mode. You’ll know when a Mac is in this mode by what it shows on its display: a screensaver-like display of a Thunderbolt or FireWire icon that pops up on random locations on the screen. I used a Thunderbolt cable to connect my Mac to my wife’s (it feels a little odd typing wife rather than girlfriend), and the setup looked something like this:

Headline: Wife's Mac - Normal Mode --- My Mac - Target Disk Mode / Image: Two MacBooks connected via ThunderBolt cable, with one Mac showing a window on its screen and the other Mac showing the Thunderbolt icon on its screen.

With my files backed up so that I could work on them with my backup machine, a Windows/Ubuntu box, it was time to take it to the shop.

Good news, bad news, and a NetBoot at the shop

Photo: The storefront of the PeachMac at Citrus Park Mall in Tampa.

The closest authorized Apple dealer and repair shop to me in the PeachMac at Citrus Park Mall. A number of people I know from the Suncoast iOS Meetup group consider it their go-to store for Macs and Macessories, and they’ve generally done right by me as well. I took my machine to the service desk, where they plugged an ethernet cable into it and performed a netboot in order to run their diagnostics application:

Headline: To boot your Mac from the network, hold the N key while booting up / Photo: Mac keyboard with the "N" key highlighted.

Everything except the graphics card checked out fine. “Yeah, I figured that was the problem — it’s been happening with a lot of 2011 MacBooks.”

“What’s been happening with a lot of 2011 MacBooks?” I asked.

The AMD graphics cards on that line of MacBooks, especially the early 2011 models, have been crapping out. In the beginning, Apple just said that you should zap your PRAM, reset the SMC, or even reinstall the OS. That works — for a little while. Then the graphics card just dies again, and your machine’s hanging in mid-boot with nothing but a gray screen. The real fix is a replacement motherboard.”

“And how much is that going to cost?” I was already wondering if I’d have to drop some cash for a new machine. I was hoping to put off that kind of purchase until next year.

“You’re in luck. Apple’s not calling it a recall, but they’ve got a ‘Repair Extension Program’, and you’ll get a brand new mobo for free…but in your case, there’s a hitch.”

Now what? I thought.

“It’s the replacement battery you put in. In order to qualify for this repair, your machine can’t have any non-standard parts in it. We can’t fix it as it is right now, but if you were to go home and put the original battery back in and bring it back here, we wouldn’t know about it, nudge nudge wink wink.”

Banner: Is your MacBook eligible for a free motherboard replacement? Click here to enter its serial number into Apple's Service and Support Coverage page.

I had a new problem: I’d already recycled the old battery, as it barely held a charge and was just taking up space in my home office as an inert, useless block.

Replacing the battery

Screen capture: eBay page for an Apple A1382 laptop battery

Click the screen shot to visit the eBay page.

eBay to the rescue! I found a dealer selling A1382 batteries — the kind that early 2011 15″ MacBook Pros take — for much cheaper than even the replacement battery I bought through OWC. I didn’t need this battery to be any good; I just needed it to be a genuine Apple one in order to qualify for the free repair.

The battery on the 2011-era MacBooks is technically replaceable, but Apple make it a little difficult by holding it in place with tri-lobe screws, which look like Philips screws, but with one less “wing”:

Photo: Two tri-lobe screws.

Your local hardware store doesn’t typically stock tri-lobe screwdrivers, but they can be ordered online, and the non-Apple replacement battery I got from OWC comes with all the screwdrivers you need to install it. Luckily for me, I’d decided to keep them, which made this operation possible:

Back in action

With a standard Apple battery back in its belly, I brought my MacBook back to PeachMac. They ran the diagnostics again, and this time, the support guy — not the same guy I talked to during my earlier visit — pointed out that I should discharge my battery from time to time. “Don’t leave it plugged in all the time,” he said, not knowing that I’d had the battery for all of one day.

“We’ll call you when we’ve finished swapping out the motherboard,” he said. “It’s pretty quick to do. The slow part is getting it shipped to us.”

With my main machine in the shop, I pressed my backup machine — a Lenovo T430, the quintessential TPS Reports writing machine — into active duty. It has an annoying habit of dropping wifi connections, even with the latest drivers installed.

Photo: Joey deVilla's MacBook Pro, complete with 'Nyan Cat' sticker on the palm rest.

“El Guapo”, my trusty early 2011 15″ MacBook Pro, at the time of this writing (April 2, 2015).

They got the job done in a couple of business days. The new motherboard looks newer, as the markings on the chips don’t look as faded by the heat of regular operation, but the real sign is that it takes a little extra force to insert cables into the USB and Thunderbolt jacks; it feels like breaking in a new pair of shoes. The PeachMac guys even replaced a couple of the rubber feet that had gone missing from the bottom of the machine over the years, as well as one of the screws I lost while upgrading my RAM a little while back, all free of charge.

With my preferred machine back in action, I’ll be able to get back to writing iOS apps, as well as iOS development tutorials here on Global Nerdy. Keep watching this space!