Categories
Uncategorized

A great “New Yorker” cartoon on emoji

new to emoji

Click the cartoon to see the source.

Today’s daily cartoon in the New Yorker will resonate with more than a few people. As for whether the emoji is a booty call or death threat, I say “Why can’t it be both?”

Categories
Uncategorized

The local mobile app development opportunity

seems legit

I saw the sign pictured above yesterday while biking and had to take a picture. Signs like this are common in suburban Tampa, where I live, but they’re usually to announce that they’re hiring employees at the nearby fast food place (like the other signs in the photo), or a garage/estate sale, a foreclosed house that’s going for a ridiculously low price, or the services of someone who’ll fix or clean up your house or yard. This is the first time I’ve seen such a sign used to promote app development.

A quick search on the phone number led me to a local company’s website, which closely follows the template used by this site, this site, this site, this site, this site, this site, and this site. If you want to find even more sites using the same approach, formula, and even working, just do a search with this query: “bar & club apps” examples. They all promote a service that purports to enable you to build a beautiful mobile site or app without having to do any programming, available in three monthly plans — mobile site only, native app only, and both — all of which go for less than $100/month. All of the apps they use as examples have functionality that you can cobble together after reading “Teach Yourself Mobile App Development in 24 Hours” and appear to fall on the bad side of Sturgeon’s Law.

The existence of so many of these crap-app franchises suggests that there are opportunities for indie app developers in small- to medium-sized markets.

We’re still at the point where it’s unusual for a local business to have its own app and where an app would make them stand out. If you can:

  • Build a set of modules that would serve the needs of most local businesses — a “how to find us” screen, a “contact us” screen, a “menu of our products/services” screen, and so on (look at any of the crap-app sites if you need ideas) — so that building an app for them is largely assembling and customizing these modules,
  • do better application, user interface, and graphic design than what you see coming from those crap-app factories (not that hard), and
  • reach out to local businesses (this is actually the hard part)…

…then you’ve got the makings of a killer side (or main) business that these crap-app makers would be hard-pressed to beat.

Categories
Uncategorized

This kid’s a future mobile developer

future mobile developer

Click the photo to see it at full size.

He’s got that mix of love for mobile, cleverness, and laziness that the job requires.

Categories
Uncategorized

Mobile share numbers for the end of 2014: 75% of Americans now have a smartphone

3 out of 4 americans

Around this time last year, Nielsen’s U.S. Digital Consumer Report estimated that 65% of Americans — about two-thirds — owned a smartphone. Data from comScore’s MobiLens and Mobile Metrix surveys shows that this percentage has grown, with an estimated 75% of Americans owning smartphones during the period from October through December 2014.

top us smartphone oems dec 2014

The top smartphone vendor for that time period was Apple, who claimed 41.6% of America’s smartphone subscribers, followed by Samsung, with 29.7% of the market share. The next three OEMs, LG, Motorola, and HTC, trailed distantly with single-digit shares of the market, and the remaining vendors accounted for the final 11%.

top us smartphone platforms dec 2014

Android was the number one platform with 53.1% market share, followed by iOS with 41.6%. The two top players dwarfed the rest of the field, which includes Windows Phone at 3.4%, BlackBerry at 1.8%, and Symbian just hanging on with one-tenth of one percent of the market.

top us smartphone apps dec 2014

Facebook was the app most used by Americans, reaching 70.2% of the app audience, with a nearly 20-point lead over the runner-up, YouTube, with 52.5%.

this article also appears in the GSG blog

Categories
Swift Kick

How to work with dates and times in Swift, part four: A more Swift-like way to get the time interval between two dates [Updated for Swift 2]

date and time

Update, August 26, 2015: I’ve updated this article so that its code works with Swift 2. It compiles under the latest version of Xcode 7, beta 6.

swift kick

In previous installments in this series, we’ve covered:

In this installment, we’ll make getting the time interval between two dates — which normally involves a lot of typing — a little more Swift-like.

One common date arithmetic operation is to determine the interval between two given dates. This is usually a clunky two-step process based on NSCalendar‘s components method, which expects at least three parameters:

  • The time components you want the method to return, such as years, months, days, hours, minutes, and seconds. This is expressed by ORing together NSCalendarUnit values, and
  • the two dates, in NSDate form.

Let’s look at how it works. First, we’ll need a couple of dates. Create a new playground and put the following code into it:

// Playground - noun: a place where people can play

import UIKit

let userCalendar = NSCalendar.currentCalendar()

// Let's create some dates to work with
// ====================================

// It's 3:45:30 a.m., New Year's Day. Time to go home.
let goHomeYoureDrunkTimeComponents = NSDateComponents()
goHomeYoureDrunkTimeComponents.year = 2015
goHomeYoureDrunkTimeComponents.month = 1
goHomeYoureDrunkTimeComponents.day = 1
goHomeYoureDrunkTimeComponents.hour = 3
goHomeYoureDrunkTimeComponents.minute = 45
goHomeYoureDrunkTimeComponents.second = 30
let goHomeYoureDrunkTime = userCalendar.dateFromComponents(goHomeYoureDrunkTimeComponents)!

// Let's create an NSDate representing Bad Poetry Day (August 18)
// at 4:20:10 p.m.
let badPoetryDayComponents = NSDateComponents()
badPoetryDayComponents.year = 2015
badPoetryDayComponents.month = 8
badPoetryDayComponents.day = 18
badPoetryDayComponents.hour = 16
badPoetryDayComponents.minute = 20
badPoetryDayComponents.second = 10
let badPoetryDay = userCalendar.dateFromComponents(badPoetryDayComponents)!

In your playground’s sidebar, you should see the string representations of those dates:

  • goHomeYoureDrunkTime should display as something like January 1, 2015 at 3:45 a.m., and
  • badPoetryDay should display as something like August 18, 2015 at 4:20 p.m..

Let’s find out how many days, hours, minutes, and seconds there are between goHomeYoureDrunkTime and badPoetryDay with the following code:

// (Previous code goes here)

// How many days, hours, minutes, and seconds between
// goHomeYoureDrunkTime and badPoetryDay?
let dayHourMinuteSecond: NSCalendarUnit = [.Day,
                                           .Hour,
                                           .Minute,
                                           .Second]
let difference = NSCalendar.currentCalendar().components(
  dayHourMinuteSecond,
  fromDate: goHomeYoureDrunkTime,
  toDate: badPoetryDay,
  options: [])
difference.day     // 229
difference.hour    // 12
difference.minute  // 34
difference.second  // 40

You should see from difference that there are 229 days, 12 hours, 34 minutes, and 40 seconds between the two dates. We did a lot of typing to get this result, and there should be a nicer way to do it. How about this:

// (Previous code goes here)

// A date subtraction operation that returns an NSDateComponents
// instance specifying the days, hours, miniutes and seconds
// between two given NSDates
// =============================================================

func -(lhs: NSDate, rhs: NSDate) -> NSDateComponents
{
  let dayHourMinuteSecond: NSCalendarUnit = [.Day,
                                             .Hour,
                                             .Minute,
                                             .Second]
  return NSCalendar.currentCalendar().components(dayHourMinuteSecond,
    fromDate: rhs,
    toDate: lhs,
    options: [])
}

// Let's test it:
let diff = badPoetryDay - goHomeYoureDrunkTime
diff.day     // 229
diff.hour    // 12
diff.minute  // 34
diff.second  // 40

With this code, we’ve overloaded the - operator, so that when both its operands are NSDates, it returns an NSDateComponents instance specifying the days, hours, minutes, and seconds between the two. I could’ve coded it so that it also returned the time in terms of months and years, but the size of those units vary depending on the month and year, while days, hours, minutes, and seconds always represent the same amount of time.

dates and times in swift - smallRelated articles

A very brief introduction to date formatting in Swift and iOS: The oversight in a mostly-good book on Swift programming led me down the path of writing articles about dates and times in Swift, starting with this one, where I look atNSDateFormatter.

How to work with dates and times in Swift, part one: An introduction of Cocoa’s date and time classes, and how they work together. This article covers UTC (Coordinated Universal Time), and the key classes: NSDate, NSCalendar, NSDateComponents.

How to work with dates and times in Swift, part two: Calculations with dates: Now that we’ve got the basics, it’s time to do some date arithmetic: comparing two dates to see which one is the earlier and later one, finding out how far apart two dates are, and adding and subtracting from dates.

How to work with dates and times in Swift, part three: Making date arithmetic more Swift-like: Cocoa’s date and time classes have an Objective-C heritage, which in the Swift context, feel kind of clunky. In this article, I look at ways — and by ways, I mean helper functions and class extensions — to make date calculations feel more like Swift.

Categories
Uncategorized

What the Sex Pistols and Tampa Bay Startup Week have in common

never mind the bollocks

Here’s a story that anyone who’s taking part in any of the activities of Tampa Bay Startup Week — or wishes they could take part — should read. It’s a story about a seemingly insignificant gathering of like-minded people, and how the ripples of what its attendees did can still be felt today, an ocean away…

It’s June of 1976 in Manchester, England, and a small group of people gather in a tiny venue called the Lesser Free Trade Hall to see a band play. There’s nothing really remarkable about this group of 42 people, and that evening’s featured musicians are unknown at the time.

The band calls themselves the Sex Pistols.

The Sex Pistols.

As I mentioned, there were no famous people in the crowd at this show, or at the follow-up show that happened about a month later. The Sex Pistols had not yet caused an uproar throughout Britain with songs like Anarchy in the UK and God Save the Queen, and it was well before they invaded the US in 1978.

Attendees ranged from the local mailman to a few rebellious school children. But a handful of others in that small audience became some of the most influential people in independent and now mainstream music.

A gig attended by a few dozen in a venue that could easily hold hundreds would normally be considered a flop, but turned out to be anything but an ordinary concert. The influence of the Sex Pistols and the punk rock movement they helped kickstart can still be heard today in every band that features a spikey-haired youngling beating rapid power chords on a guitar. Johnny Rotten would later found the more experimental Public Image Ltd, and manager Malcolm McLaren would cast his musical net even wider, branching out into disco, funk, hip, electronic music, world music, and even opera.

That “handful of others” in the audience were just as important. Among them were:

These output of the bands that arose from this one gig would help define alternative rock and its subgenres, from punk to goth to synthpop to grunge, for decades to come. All this came from a concert that almost nobody cared about at the time, attended by people nobody had heard of at the time.

“The gig that changed the world,” as alt-rock aficionados sometimes call it, did so because it brought together people with similar interests who were passionate about what they did. Its attendees saw that popular music was changing, and after being inspired by a group of troublemakers, decided that they could be part of that change. They went on to create music their way, and make their mark on the world.

tb startup week organizers

The people behind Tampa Bay Startup Week (pictured above) may not look punk rock, but they’ve most certainly got its DIY, “we have an idea and we’re going for it” spirit. Like the Sex Pistols, they’re a band of troublemakers putting on an event on a shoestring budget (yes, Chase is sponsoring, but without them, the budget would likely go from shoestring to none), and at the moment, it isn’t being noticed by most of the world outside “the other bay area”.

Like the music scene in Manchester the mid-1970s, the work-life dynamic in Tampa Bay in the mid 2010s is undergoing some big changes:

If you look carefully, you can see the initial rumblings of change here, from the One Million Cups gathering that takes place every Wednesday to all the local interest in The Iron Yard to places like The HiveTampa Hackerspace, and Eureka! Factory to the ex-Marine who’s doing good and helping your beard feel good at the same time. I see a lot of the necessary ingredients for change here that I saw in Toronto in the mid-2000s, and so does GeekWire…and with a subtropical climate to boot!

I hope that like those 42 people who attended that Sex Pistols concert in 1976, that some of the people at Tampa Bay Startup Week’s events will get inspired, start their own businesses, and shake the universe.

(I’ll be at tonight’s tech cocktail mixer with my accordion. If you ask, I’ll gladly play you my rendition of Anarchy in the UK.)

Upcoming Tampa Bay Startup Week events

Today:

Tomorrow:

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

Categories
Current Events Tampa Bay Uncategorized

Scenes from Tampa Bay Startup Week’s kickoff party

tampa bay startup week

Photo by David Betz.

tampa bay startup week buttonMonday marked the beginning of Tampa Bay Startup Week, a five-day-long series of events meant to bring creatives, techies, entrepreneurs, and anyone who’s a combination of any of those together to meet, plot, and party. There’s a small but interesting tech scene here in the Tampa Bay area, and a number of factors including the subtropical climate, low cost of living, and the influx of people to the area — you might call it a brain gain — could help it grow dramatically over the next few years.

joey and anitra at startup week tampa bay kickoff

Me and Anitra, working the room. Photo by Laicos.

The week’s kickoff party took place at the Chase Basecamp, a rented venue on 7th Avenue, the main street of Ybor City (pronounced “EE-bor”), Tampa’s nightlife and party neighborhood. The Basecamp (located at the corner of 7th Avenue and 20th Street), serves as the central meeting place for Startup Week participants, as well as a venue for many of the scheduled events.

tbstartupweek kickoff 1

Photo by Laicos.

While chatting up the people from local mobile development shop Sourcetoad, I was introduced to the friendly-looking gentleman below, who went up to me and said “I just have to tell you, I love that accordion!”

bob buckhorn 1

Photo by Laicos.

As he walked away, Anitra told me that I just shook hands with Bob Buckhorn, mayor of Tampa. I’m a relatively recent transplant from Toronto, so I’ve never seen a photo of him, and I’m too used to picturing the mayor as either a sweaty, drug- and booze-addled, embarrassing mess, or too attached to highfalutin’ extravaganzas that are full of sound and fury but ultimately signifying nothing to care about a small grassroots effort like this one. I’m also not used to a mayor with his approval rating.

bob buckhorn 3

Photo by Yours Truly.

He gave a short speech to the crowd, in which he encouraged everyone to meet other people of like minds and ambitions, do what we do, “be a little crazy”, disrupt things, and start businesses. He talked about the brain drain that existed until recently, when people would leave Tampa in search of their fortunes. The situation has been turned around, what with Florida being one of the most moved-to states in the U.S. (as of this writing, it’s the third most populous state, after California and Texas), the population growth in the Tampa Bay/Jacksonville corridor and “Orlampa”, and Penske rental truck data that suggests that the Tampa Bay/Sarasota area is in the top 10 most moved-to locales. He asked the group to keep working to make Tampa a better place to be, if only to make sure that his daughters don’t move away to Atlanta, Austin, or anyplace else.

The money quote that got the audience to really put their hands together:

“I want Tampa Bay to be the economic engine of the southeast.”

It’s bold. It’s ambitious. I like it.

After all the speechifying, he then did what any good mayor would do: take control of the decks and drop a fat beat.

bob buckhorn 2

Photo by Laicos.

Anitra and I spent the rest of the evening either catching up with or getting to know the people in attendance, including:

tampa bay startup week banner

Here’s what’s happening with Tampa Bay Startup Week today and tomorrow. These events are free — just visit the Tampa Bay Startup Week site and sign up!

Today (Tuesday, February 3):

Tomorrow (Wednesday, February 4):

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