Thursday, October 12, 2017

Facebook and the Problem of 'Bots'

Recently, there has been growing coverage in the media about Russian advertising (and influence) during the run up to the 2016 election. Some of this was driven by fake users (bots) on Facebook. While I'm thinking about writing a longer post about the election influence operation and online marketing in a broader context, one thing jumped out at me recently that I think is worth highlighting as it's somewhat misrepresented in the media.

In this USA Today article, the author wants Facebook to "Guarantee that bots will no longer be able to impersonate humans on the platform."

This fundamentally misunderstands the problem with "Bots". It's not like Facebook ever sat down and invited Bots onto the platform. Bots are carefully crafted bits of code that are scripted to mimic humans as you go through typical online activities. Bots are not obviously bots.

On one of the web sites I run, over the years I've had bots submitting inquiry forms thousands of times (Dear Web-to-Lead/Case Spam Sucks). Often, the form submission is some form of Spam. Even an inquiry form on a site in a niche industry can be a target for this type of activity. But what was actually interesting, in a way, was watching the form bots evolve. Essentially, when even when you make it more difficult for the bot to fill out the form, the bot kept exploring the parameters and requirements until you'd see it coming through again.

In that way, initally, my best defense against the form spam bots were to look for aspects that made them seem not human and try to filter against those. But eventually, you get to a point where if the bot fills out the form like a human would, you can't tell the different between an automated form engine and a human.

As you'll note in my Spam Post, at the time, recommended that I install a Captcha, one of those image recognition test tools on the form. You know the tests, sometimes they're difficult to solve, even as a human. Sure, they provide an increased barrier for bot traffic, but they also provide a significant barrier to user engagement. Imagine if every time you wanted to post something on Facebook, you had to face a Captcha test?

And this is the fundamental problem with the "don't allow bots on your platform" arguement. It's just BS. Something being promoted by someone with a very simplistic view of the problem.

Friday, October 6, 2017

Apple iOS 11: "No" doesn't really mean "No"

Recently, Apple acknowledged that when you use the control center to turn off Bluetooth or Wifi in iOS 11, it doesn't actually turn those services "off". Instead it just disconnects from the things you were connected to -- except Apple devices and some Apple services. That's right. Apple's iOS 11 now features "No" doesn't mean "No" technology.

The Electronic Frontier Foundation warns about this in an article, iOS 11’s Misleading “Off-ish” Setting for Bluetooth and Wi-Fi is Bad for User Security, regarding this issue. They note that
When a phone is designed to behave in a way other than what the UI suggests, it results in both security and privacy problems. A user has no visual or textual clues to understand the device's behavior, which can result in a loss of trust in operating system designers to faithfully communicate what’s going on.
In gets worse.
The Wi-Fi will turn back full-on if you drive or walk to a new location. And both Wi-Fi and Bluetooth will turn back on at 5:00 AM. This is not clearly explained to users, nor left to them to choose, which makes security-aware users vulnerable as well.
Wifi and Bluetooth also reactivate when you reboot your phone.

Why did Apple build iOS 11 this way? Because Apple decided that it would be better for them -- make their device interworkings seem better -- than it would be to honor the "no" implied by the controls in the Notification Center.

This isn't the only thing that sucks about iOS 11, but it may be one of the more troubling ones.

Monday, October 2, 2017

Airpods: Apple's Imperfect Audio Port Solution

With the introduction of the iPhone 7, Apple decided to remove the classic audio port from the phone. They claimed to address the elimination of the audio port with a brand new product, Airpods, wireless Bluetooth headphones that would be so awesome, you'd never miss your old headphones. Skip the part about how Airpods weren't even available for the first three months or so of the iPhone 7. Oh, and the part about the limited availability of Airpods even today. Airpods were promised to be be so great, we'd never want to go back to wired headphones.

I have a set of Airpods, had them for several months, and I can only say, "Airpods, you are no wired headphones."

Don't get me wrong, Apple has accomplished something impressive with Airpods. They are, hands down, the best wireless iPhone headset that I've used to date. But that comes with a large number of caveats. But what's important to understand is that, while they're a nice iPhone accessory, they don't come close to replacing my earbuds.

Bluetooth < Wires
Fundamentally, Airpods suffer from the Bluetooth wireless connection. Using them in my office where there are numerous other Bluetooth devices, I experience a lot of drop-outs from both the speakers and the microphone. I blame this on Bluetooth interference. It's so bad that if I have a call, I use my wired earbuds.

But the drop-out problems aren't limited to "Bluetooth noisy" environments. Using the Airpods while listening to music walking around at night, I found the sound dropped several times also. Potentially, this could be related to software that has each ear piece to check in with the other one and verify that it's there -- the auto-detect ear software. Apparently, you can turn this off, but I think I saw where disabling this disables stereo -- which makes sense if you consider that it needs to know whether there is a second headphone in order to send a stereo signal. However, it should be noted that my wired headphones don't experience similar drops.

This brings me to the sensors in the Airpods. With most Bluetooth headsets, there is some functionality that enables you to answer calls with a tap -- similar to hitting the start-stop button on the wired headphones. Unfortunately, with several months of use, all I've succeeded in doing with my Airpods is opening the voice interface at various times. I'm sure that if I were running battery-wasting, time-wasting Siri, I could have asked Siri to answer the phone, but mostly I've had to default to scrambling around, trying to find my phone in order to answer calls on the iPhone instead of the Airpods.

On a related note, I can't count how many times I've accidentally fumbled with one of the Airpod earpieces, only to accidentally bring up the voice interface -- enough to make me cautious about handling the earpieces.

The Good
Let me say that I understand the interest in having a wireless headset. How many times have I found myself listening to music while doing something like cooking when the wire on my headphones gets caught on a knob or the corner of a cabinet? Having my ear yanked or sending my iPhone flying sends me cursing the wire and everything it stands for. With the Airpods in a quiet Bluetooth environment like my home, I can wander around with audio, safe from worrying about whether the cable is about to get caught on something. Do I still experience drop-outs? Yup. But the trade-off of no wires is usually worth it for kitchen tasks.

Airpods also work reasonably well when driving in my non-Bluetooth-enabled vehicles. The wire doesn't usually get in the way while driving, but it's still potentially a concern. Meanwhile, the variability of cell coverage when you're on the road means that the wireless connection is only one of multiple connectivity issues that you deal with.

Finally, another nice thing about the Airpods is that you can use one or both. If you use just one, you can get some pretty serious battery life out of the set by periodically switching earpieces and letting the other one charge.

All trade-offs aside, Apple's Airpods provide a nice Bluetooth headset experience. At the same time,  one of the reasons that I chose the iPhone 5se was the inclusion of the headset port. Having experienced both the "antique" and what Apple promises us to be the "future" of audio on a phone, I must say that the removal of the audio port still ranks as one of the worst design choices Apple has made.

Thursday, September 7, 2017

The iPhone 7 gets a Headphone Jack!

Here's a story I came across on MacRumors this morning. Essentially, this guy modded an iPhone 7 and added a fully functional headphone jack. However, it's an interesting underscore to the BS that they had to eliminate it to make room for the camera.

Tuesday, September 5, 2017

Must Hate Dogs - The Pet-Friendly Hotel Downside

While I was putting together my recent post on the Hotel Nikko, I began thinking about the implications of "pet-friendly" hotel positioning. The more I thought about it, the more I wondered, "what are the rules for pet friendly hotels?"
  • Do they have special rooms for pet people?
  • Do you have any assurances that you won't wind up in a room that had pets?
  • Do they do any special clean-up for pet hair, dander, etc.?
  • Do they make any effort to post or publish these policies?
And so, I took to the Internet to search, but I was initially surprised by what I found. As I searched, most of the posts that I found about pet-friendly hotels were places promoting their pet friendly business. Others, like this post from the Chicago Tribune, were about how businesses were making more money by accommodating pets. The actual number of posts dealing with non-pet owners and pet friendly hotels were extremely limited. I did find this one post from, but it's actually written from the pet-owning perspective. I also found a few comments and questions on TripAdvisor, but nothing formal.

Typically the tone of the these pieces -- if they approached the non-pet-owner point of view -- was, sort of a "what's wrong, don't you like dogs?" For the record, I don't not like dogs, nor do I not like cats. That being said, I currently have neither and my allergies thank me for it. And my wife's allergies are worse than mine. Similar to non-smoking rooms, I expect a level of not having to worry about some things in my environment. I also loath overly perfumed hotel rooms (the ones that smell like a potpourri exploded).

For most of these posts, one of the bigger concerns tended to be noise and concerns as to what happens if the pet owner leaves their pet in their room while they're gone -- followed by numerous pet owners talking about how they've found people in hotels to be more noisy than their pets. Apparently some hotels offer pet-sitting services to mitigate this issue.

To answer the questions I raised:
  • Do they have special rooms for pet people? Probably not.
  • Do you have any assurances that you won't wind up in a room that had pets? No. Further, service dogs can stay with their owner in any room).
  • Do they do any special clean-up for pet hair, dander, etc.? Maybe. Some hotels mentioned extra clean up, but there are no guarantees.
  • Do they make any effort to post or publish these policies? No. As I mentioned. there's little published on this subject.
So, if you're somebody with allergies or you don't want to be in an environment with pets, it looks like the advice most people would offer is what you'd find in the post I mentioned:
If the prospective guest has a serious allergy to pets or just does not like animals, you may be better off suggesting they stay at the Inn down the road. It's better than having them check out early, demanding their money back and leaving you an empty room that you perhaps could have sold to someone else.
At the same time, based on what I've seen, the likelihood is that if you do raise questions about the subject, their response is probably going to be, "what, do you just hate dogs?"

Friday, September 1, 2017

3 Design Aspects I Already Hate on the iPhone 8

With Apple announcing it's September 19th event and the expectation that they will roll out the new iPhone 8, Right now, everything we know about it is really based on rumors and info extracted from Apple's Homepod firmware. That being said, among the media that track Apple's upcoming products, confidence about many aspects of the iPhone 8 is high.

Based on the current rumors, I thought I would share a few aspects of the iPhone 8 design that I hate and consider deal-breakers for purchasing an iPhone 8.
  • No Audio Port. I know that they'll probably never go back on this, but the idiocy of this decision is unparalleled. The lightning-based headset sucks. It doesn't work on anything other than an iPhone 7 (7s, 8, perhaps, but no iPad, Macbook, Mac, or other device). Apple would probably counter with, "what about AirPods?" I have a set of AirPods that I use with my 5se. They work okay, but there are times -- like when I'm in the office with lots of Bluetooth devices -- that the cable just works much better. Better audio, more reliable.
  • Facial recognition-based unlock. This rumored feature seems like its designed to appeal to the technology pundit class. Technology companies love this idea. Customers, not so much. See XBox One Kinnect original implementation for a reminder.
  • The stupid lens protrusion on the back of the phone. This design flaw was introduced in the iPhone 6 and we've been living with it since. It's essentially a "must use case" feature. Wanna make the iPhone 8 better? Use that difference in space between the current design and a flat back design and fill it with more battery. Yet another reason why the iPhone 5se design is better.
Anyway, maybe you're excited.

Thursday, August 31, 2017

Yet Another Dreamforce FAIL

I've posted about this quite a bit on Twitter, but I felt it was time to put together a longer synopsis of the great FAIL that is Dreamforce registration.

First, background. I've been eight Dreamforce events over the years. There are upsides and downsides to the conference, but if there is one overarching theme for Dreamforce, it's oversized crowds overwhelming insufficient resources. And it's been that way at every Dreamforce I've been to. Sometimes it is simply an annoyance -- like long lines or the inability to get into a session. At other times, like at last year's Dreamforce Gala, it's kind of surprising that people haven't gotten hurt.

When you look at the history of Dreamforce, you see aspects where things evolve to address the crowds. Aspects like multiple locations for lunches and conference sessions reflect thoughtful efforts to address the crowds and adapt. Even the one year where they brought in the cruise ship as an additional hotel, while it may have been a failed experiment, was a step to addressing the oversubscribed hotel market.

Last year was the first year when I actually saw Salesforce change the conference web site to say that the conference was sold out. This happened a couple of weeks prior to the event (it's possible that it may have happened in year's past, but I didn't see it). Practically speaking, the conference was sold out long before that time, as the available hotel space was essentially gone about a day after registration was opened.

Salesforce has known about the sold out hotel problem for several years (thus, the cruise ship), but when you're using (and selling out) all of the available space, broadly, across the region. there are actual commodity limits that you face. And this brings me to the core strategy that Salesforce has employed in an effort to address this. Their strategy is essentially this:
"Surprise, registration is open!"
Last year, Salesforce introduced a tool that would email you as soon as registration opened. As it happened, I was at San Jose airport waiting to board an early morning flight when I received the email (6:05am), and I jumped through hoops to register before my flight boarded. I was able to book the Hotel Nikko (my preferred hotel) that morning. I also reached out to my colleagues, but they didn't register until that afternoon and the nearest good hotel they could find was the Hilton Financial District.

This year, we'd been planning to send a larger group to Dreamforce and help build some sales manager / power user / evangelists (over the years, one thing that we've found is that when our staff attends Dreamforce, it really opens their eyes to the much broader potential of enterprise software). So, the morning that I received the email announcing that Dreamforce registration had started, the first thing that I did was email my colleagues.

It's worth noting that this year's announcement and registration opening came on the Thursday, June 29th, right before what was for most people in the states, a four-day fourth of July weekend. Many people take the entire week of the fourth off and quite a few leave before that weekend arrives. Not only was this true for our staff, I later learned that our Salesforce AE was also out on vacation at that time. Again, remember the strategy:
"Surprise, registration is open!"
By the time I'd emailed my colleagues and gotten through the registration screen, I couldn't find the Hotel Nikko on the list. Part of the problem is that they way that the Dreamforce registration portal shows available hotels, it can be difficult to sort them. As I searched through the list, it wasn't just the Nikko that was unavailable, all of the Marriott properties in the convention center area were gone. I opted for the Hilton, knowing that some of my colleagues were Hilton loyalists (I used to be, but having "lost" hundreds of thousands of Hilton points multiple times, they're no longer a preferred choice).

While dealing with my own registration, I decided to text one of my colleagues to see if she'd seen my email. She replied via text, asking me to register her as she only had her phone and poor network access. One of the great failures of the Dreamforce registration process is that there is no way to register multiple attendees at the same time. This is also true for their room reservation system. That means that, if you want to make reservations for your entire team so that they can stay at the same hotel, you are hosed. By the time I'd finished my colleagues reservation, the Hilton was no longer an option and I had to put her in the Parc 55.

As the minutes ticked away, I realized that, if my colleagues that I'd emailed hadn't started the registration process on their own already, they were hosed. And if they were on vacation, forget about it. Since some of our colleagues were coming from the east coast, they needed hotel rooms -- commuting wasn't an option. In short, any plans that we might have had for a bigger, more useful Dreamforce -- hosed.

The Aftermath of Registration
As you can imagine, I was feeling pretty frustrated with Salesforce that morning. To have registered twice in succession and not be able to have our team in the same hotel? What's worse, it just kept eating at me, particularly as it became clear that my colleagues hadn't seen my email, hadn't registered, and were probably on vacation. I decided to draft an email to our Salesforce AE with a CC to It was not a short email.

Of course, I didn't hear back from our AE until a week and half later, on Monday July 10. Like many of my colleagues, he was on vacation.

When it became clear that I wasn't going to get a quick response back from my AE, I turned to Twitter. I sent out my first tweet at 9:43 that morning. After numerous tweets that day, @Dreamforce began following my Twitter feed. I continued to post complaints about the process and my experience. On July 10th when our Salesforce AE replied, his only real response to the Dreamforce issue was, "Unfortunately, I have no control over the SF hotel market but I had clients last year that had success renting places on Airbnb or VRBO, so if you are still looking you could explore that as an option." 

I continued to post my issues about Dreamforce on and off again until, on Thursday July 27th, almost a month after registration opened, Salesforce's Twitter Customer Support team @asksalesforce replied to me asking if there was anything that they could do to help. They actually referred me to @Dreamforce, where they'd been following me the entire time (hats off to their team for actually trying to help).

But, in case you missed it -- or anyone at Salesforce is actually listening -- I'm still pissed off about the registration process. In this report card, you failed to meet expectations. To make it easy for you, here is a simple list of things that I think would make this better.
  • Why can't Salesforce Account Execs work with customers to understand their expectations and intentions for Dreamforce? Your internal team knows when registration will open. If they are intend to bring a block of users, why not create a select number of carve-outs for pre-registration and hotel booking? 
  • Why not let customers know when registration will open in advance of the date? That way, rather than being stuck with whatever situation you're in when registration opens, you can plan for it -- if it's important to you. Seriously, even concerts let you know in advance what day that tickets will go on sale.
  • Why not allow people to register and reserve rooms for up to four people? Dreamforce is better when it's groups of colleagues attending at the same time. And frankly, the idea that each user gets stuck with whatever hotel (as opposed to housing in groups) is just ridiculous.
  • The Promo code option in the registration on the first day is not helpful. I spent several minutes searching the Internet for a promo code to apply. If nothing else, allow people to apply one retroactively, since the housing block allocation is the problematic window.
  • There should be something like a waiting list for hotel rooms such that, if a reservation opens up at a hotel, you draw from the waiting list pool first. That way more people could have access to their preferred locations.
Frankly, I suspect that it's likely that Salesforce does provide carve-outs for their top tier customers. I'm sure that their sales teams also work closely with them to ensure that their needs for Dreamforce are met. What that says to me -- along with the "that's a bummer man. I don't control the San Francisco hotel market, so I can't do anything for you" response from our Salesforce AE -- is that there is a layer of customer lip service going on here. As customers, we matter in that way of "customers matter" slogans, but not in us, the guys who've been on the platform for over 10 years now, but who don't have hundreds or thousands of seat licenses. At Dreamforce last year, they gave us this 10 year customer award.

At the time, I couldn't help but notice the phallic shape of the award. It was probably the funniest aspect of Dreamforce last year, as I couldn't help but feel like it doubled as a reminder for all of the times I felt like I'd been screwed by Salesforce. But hey, I'm sure it wasn't intentional. 

Just for the record, it's now been over two months since registration opened. I'm still pissed off. And I still haven't heard anything from Salesforce except for the aforementioned contacts.