used car salesman

Beware of these guys — they’re the used car salesmen of B2B marketing.

About once a month for the past year, I’ve been receiving emails from various seemingly mid-tier enterprise technology magazines offering to feature my company in a “Top 10” or “Top 20” list of B2B companies…for a price. In exchange for that price, which is always $3,000, they promise to feature us in an article listing the best players in a particular B2B space. If you’ve ever received a similar email, you’ve probably wondered if it’s worthwhile investment.

The email usually comes from someone with a white-bread name, typically something like “Amy Smith” or “Chris Miller”, but writes in that clunky, awkward way that people do when not working in their native tongue. If you visit the magazine’s site and go through the articles, you’ll find that most of them seem to be “advertorial” pieces whose feature photo is a head shot of the author. The magazine sells for more than $10 an issue, but if you visit the “subscribe” page on their site, they’re more than happy to offer a FREE (it’s always in all-caps) subscription to “qualified readers” who provide them with contact information.

The invitation always follows the same template. Here’s the latest one I received, which should give you an idea of how they generally read:

email horizontal rule

Hi Joey,

Great to be connected here,

As mentioned below, we shortlisted your company to be featured in “Top 10 [players in my company’s space]” which we are covering in [crappy site name redacted] special edition on [space that my company is in].

You can also go through the following media kit link.
[Link redacted]

Investment: $3000


  • Recognition of your company as “Top 10 [players in my company’s space]” is indeed a great honor and you can utilize it effectively for several of your marketing campaigns.
  • This honor can effectively be used by your business development/ sales team as an additional tool to win clients.
  • Top 10 [players in my company’s space] will have a shelf life of one year.
  • Logos of “Top 10 [players in my company’s space]” can be used in all your marketing collateral and also prominently displayed on your website. This will enhance the brand visibility for your company.
  • We will provide the full digital re-print rights for one full page profile in the print magazine and online magazine about your company, along with CEO picture.
  • We will provide you a quote from our Managing editor. You can send out a press release to local media and also put up the press release in your website.
  • Your current customers will also be a lot more comfortable doing business with you as you are recognized by a media company.
  • Your prospective customers will be more than happy to work with you as you will be projected trust worthy player in the market.
  • You can promote this recognition and honor in social media (Facebook/ Twitter/ LinkedIn)
  • The certificate of honor can be utilized to be displayed at your office lobby, which indeed will motivate your employees as well contribute towards your company growth.

Once you confirm your participation we will schedule an interview call with your CEO to feature in the magazine.

Please review our opportunity and let me know your interest to take it forward.

Looking forward to hear from you,

[Editor’s name]

email horizontal rule

I’d already rejected the idea after reading the email, but I thought I’d back my gut-based decision with some empirical data. I did a quick check of their site’s ranking on Alexa. Here’s what I found:

crappy pay to play site

Their global rank was below 10 million. To give you an idea of how tragically, pathetically, hilariously poor this ranking is, consider Alexa’s ranking for this site, which I’d admit could use a little more of my love, attention, and promotion:


Global Nerdy’s Alexa rank is 336,874 globally, it’s in the top 200,000 in the US, and in the top 100,000 in India and Australia.

Even my personal blog, The Adventures of Accordion Guy in the 21st Century, does better than their site, with its Alexa ranking of 342,151 globally, and 84,883 in the U.S.:


Looking at the difference between my sites’ numbers and theirs, the people from these magazines should be paying me $3000 to promote them. I suspect that most of the pageviews for these magazines’ articles are from framed copies on the authors’ office walls.

If you have an extra $3,000 in your marketing budget, there are far better ways to spend it than on a vanity piece in a “pay-to-play” magazine.

{ 1 comment }

tampa ios meetup

Last Saturday, Angela Don and I gave a well-attended presentation on getting started with iOS development using Swift. It went so well that we decided to make it a regular thing, and thus the Tampa iOS Meetup was born. We’re having our inaugural gathering next Wednesday, October 28th at 7:00 p.m. in South Tampa at 3825 Henderson Blvd., Suite 300, and if you’re interested in getting started with iOS development and Swift, or if you’re an old hand looking for another get-together of like-minded people, come join us!

tampa ios meetup 2

Me and Angela presenting at BarCamp Tampa Bay 2015.

I had the great fortune of meeting Angela at OpenHack Ybor, Tony Winn’s monthly gathering of local developers and techies who enjoy catching up over beer and tech talk in Ybor City, Tampa’s party district (Here’s my recent writeup about OpenHack Ybor). She was talking about doing a presentation at BarCamp Tampa Bay 2015, I told her that I’d been thinking about doing the same, and a couple of days later, we had a full-fledged presentation where we demoed a couple of quick Swift apps and playgrounds.

tampa ios meetup banner

If you’ve got an interest in developing for iOS, whether you’re new to coding or an old hand at it, or if you’re a designer or entrepreneur who wants to make iOS apps, or if you’re just curious, you’re invited to come! We’ll talk about iOS development, go over what you’d like to see in upcoming meetups, and of course, talk about iOS. Bring your projects — we love show and tell! We’ll provide pizza and pop, too.

Once again:

We hope to see you there!

Special thanks to Jamie Johnson, who’s loaning us the boardroom of his company, Energy Sense Finance, to hold these events!


meanwhile at vw's emissions test center

Inspired by the recent scandal in which Volkswagen programmed the engines in their cars to detect if they were undergoing an emissions test and alter their behavior so that they’d pass, a couple of developers have created modules that enable your test suite to detect if they’re running on a continuous integration server , and if that’s the case, report all tests as passing. Think of all the time you could save!

PHPUnit VW Extension

phpunit-vw logoIf you’ve got a PHP project that absolutely, positively, needs to pass the automated testing phase because you’ll go postal if you have to deal with yet another bug, you want phpunit-vw, also known as PHPUnit VW Extension. Hugues Maignol, a developer based in Grenoble, France, made his initial commits of this project not long ago — September 28th — and it’s now his most popular GitHub repo.

phpunit-vw checks for the commonly-used continuous integration tools’ default environment variables, and ensures that all unit tests pass if it detects the presence of any of these:

If your CI tool isn’t in the list, but makes use of environment variables commonly used by test suites (such as BUILD_ID), phpunitvw might work with it.


transformers g1 bumblebeeIf your project is Node-flavored, you’ll want to get your hands on the Node package named volkswagen. Written by Kenneth Auchenberg and “heavily inspired” by phpunit-vw, it’s also his most popular GitHub repo. It can detect the following CI servers:

…as well as any server that exposes an environment variable like CI or CONTINUOUS_INTEGRATION.

Why should Volkswagen have all the fun? Get these add-ons and start passing tests with flying colors today!


In case of fire…

by Joey deVilla on October 5, 2015

in case of fire

Found on Imgur. Click to see the source.


burning fuse
swift kick

Sometimes, you want some code to execute after a specified delay. For me, this happens often in user interfaces; there are many cases where I want some notification or other interface element to appear and then disappear after a couple of seconds. I used to use an NSTimer to make it happen, but nowadays, I call on a simple method called delay().

Consider the simple “Magic 8-Ball” app design shown below:

magic 8-ball app

The two functional interface items are the Tap me button and a label that displays a random “yes/no/maybe” answer in response to a button tap. The button should be disabled and the answer should remain onscreen for three seconds, after which the app should revert to its initial state, with the button enabled and the answer label blank.

Here’s the action method that responds to the Touch Up Inside event on the “Tap me” button:

Don’t worry too much about the randomAnswer() method; it simply returns a randomly-selected string from an array of possible answers. The really interesting method is delay(), which takes two parameters:

  • A number of seconds that the system should wait before executing a block of code. In this particular case, we want a 3-second delay.
  • The block of code to be executed after the delay. In our block, we want to blank the label and enable the button.

The block of code that we’re passing to delay() is a closure, which means it will be executed outside the current ViewController object, which in turns means that we’ve got to be explicit when capturing variables in the current scope. We can’t just refer to the button and label as tapMeButton and predictionLabel, but by their fully-qualified names, self.tapMeButton and self.predictionLabel.

Here’s the code for delay():

delay() is just a wrapper for dispatch_after(), one of the functions in Grand Central Dispatch, Apple’s library for running concurrent code on multicore processors on iOS and OS X. dispatch_after() takes three parameters:

  • How long the delay should be before executing the block of code should be,
  • the queue on which the block of code should be run, and
  • the block of code to run.

We could’ve simply used dispatch_after(), but it exposes a lot of complexity that we don’t need to deal with. Matt Neuburg, the author of the O’Reilly book iOS 9 Programming Fundamentals with Swift, found that he was using dispatch_after() so often that he wrote delay() as a wrapper to simplify his code. Which would you rather read — this…

…or this?

Here’s the code for the example “Magic 8-Ball” app, which I’ve put entirely in the view controller for simplicity’s sake:


zip file iconYou can see this code in action by downloading the zipped project files for the demo project, DelayDemo [220K Xcode 7 / Swift 2 project and associated files, zipped].

If you’d like to learn more about coding for concurrency with Grand Central Dispatch, a good starting place is the tutorial on Ray Wenderlich’s site. It’s a two parter; here’s part 1, and here’s part 2.

I found Matt Neuburg’s delay() method in his answer to this Stack Overflow question.

{ 1 comment }

BlackBerry CEO John Chen’s demo of the Priv to BNN’s Amber Kanwar, their new Android-based QWERTY phone, should’ve been the bright spot in a bad news-filled day (they’d missed their 2Q15 target, for which the bar was already pretty low). Unfortunately, he was unprepared, improvising, and working with a device that hadn’t yet been fully set up and whose OS was unfamiliar to him.

The Android OS that the Priv runs on was so new to him that he had trouble launching Chrome, which meant that he couldn’t do a proper demo of the keyboard’s capacitive-touch scrolling, and the swiping motions he was using had no effect because they were BlackBerry 10 gestures. The most telling thing, however, was his saying that the Priv “runs Google“.

The “priv [rhymes with give] stands for privacy” line was also painful, and it telegraphs Chen’s general unpreparedness for Amber Kanwar’s questions in the rest of the video. I understand that he’s got a lot on his plate, but maybe it’s time for someone else to do these demos, and let Chen focus on his reputed turnaround magic.

blackberry priv

If you take away just one lesson from this video, let it be this: if you’re expected to demo something that’s new to you (like a new product that uses an operating system you normally don’t use), you need to practice, practice, and practice again. If you want to take away an additional lesson, it’s that you should try to anticipate the questions you’ll be asked, and try to have some answers — or be ready to change the topic.


dark mobile

Tomorrow — Tuesday, September 29th — at 1:00 p.m. eastern (10:00 a.m. Pacific), GSG and Enterprise Mobile will host a webinar titled The Secrets Nobody Tells You About Dark Mobile. It’s free to attend, and you can register here.

In this webinar, GSG’s Platform Evangelist Joey deVilla will talk about that area of an organization’s mobile telecom environment that goes, unobserved, unknown, or unmanaged — the terra incognita that we call “Dark Mobile”. We look at the negative effects it has on a company’s…

  • spending,
  • management,
  • security, and
  • efficiency

Join us in this quick webinar (it’ll be about half an hour) as we look at the four kinds of Dark Mobile and how we can shed some light into this crucial area of your IT environment.

this article also appears in the GSG blog

{ 1 comment }