Stuart Breckenridge

Dashlane Love Marketing of Anonymous Information

Killian Bell, Cult of Mac:

Password management service Dashlane today published its 2018 City Security Rankings, revealing the state of password security in America’s most populous cities — and those that are home to some of the biggest companies and government agencies.

This is covered under their Privacy Policy:

Creation of Anonymous Information. If we have any information that is identifiable with a particular person, we may create Anonymous Information records from such Information by excluding information that makes the information personally identifiable to you. We reserve the right to use Anonymous Information for any purpose and disclose Anonymous Information to third parties. “Anonymous Information” means information that does not, by itself, permit the identification of individual natural persons.

However, three things are worth mentioning:

  1. Why are Dashlane collecting password strength data of their users? (Hint: marketing.)
  2. Why are they sharing it? (Hint: marketing.)
  3. Use 1Password. (Why? This is why.)

— Supported by —

Limitations of MapKit Direction Requests

I’m trying to use MKDirection and MKDirectionsRequest to draw a bus route, but I am running into limitations with the API. I have an array of coordiantes of all 72 bus stops along the route, so my first task was to create an array of MKMapItems from those coordinates:

for item in coords {
    let mapItem = MKPlacemark(coordinate: item)
    mapItems.append(MKMapItem(placemark: mapItem))

So far, so good. The next step was to configure the the MKRoute and MKDirectionsRequest:

var busRoute = MKRoute()
let directionsRequest:MKDirectionsRequest = {
    let request = MKDirectionsRequest()
    request.transportType = .automobile
    request.requestsAlternateRoutes = false
    return request

Finally, iterate through the array of MKMapItems and calculate directions from the first stop to the last stop along the route:

for (count, item) in mapItems.enumerated() {
    if count < mapItems.count - 1 {
        directionsRequest.source = item
        directionsRequest.destination = mapItems[count+1]
        let directions = MKDirections(request:directionsRequest)
        directions.calculate(completionHandler: { (response, error) in 
            if error == nil {
                // Add the route to the map
                OperationQueue.main.addOperation {
                    busRoute = response!.routes[0]
                    self.busRouteMapView.add(busRoute.polyline, level: .aboveRoads)
                } else {

This worked as advertised, but only to a point: 50 direction calculations. When I hit 50 API calls, the error returned is Directions Not Available and it restricts any further API calls for about one minute, preventing any opportunity to chain requests together.1 Left as-is, MapKit would return directions for just under 70% of the route, which is obviously not acceptable.

As a test, I tried to use the first and last set of coordinates and then every second set of coordinates in between. Zoomed out, it looked promising. Zoomed in, not so much — it lead to cut corners.

I don’t want to use MKPolyline to draw a waypoint-to-waypoint look that would ignore the roads. For the moment, I am stuck.

  1. Unhelpfully, I’ve found no mention of this API limitation in the documentation. ↩︎

Vlogger Received Rocks and Bricks Instead of the Canon DSLR He Ordered

Michael Zhang, for Petapixel:

A popular YouTube personality with over 780,000 subscribers has caused a stir by claiming that he ordered a $6,000 DSLR from Amazon but received a camera box filled with rocks instead. And when he was sent a replacement from Amazon, the second box was filled with bricks.

Chaseontwowheels, a motorcycle vlogger, documented his experience in the 12-minute video above. He says that he originally ordered a $6,000 Canon 1D X Mark II from Amazon — it’s unclear whether the order was sold directly by Amazon or was placed with a 3rd party — and received a legitimate camera box filled with heavy rocks instead (you can watch his original rant here).

I was recently very close to ordering a new Nikon DSLR from Amazon (US) but decided against it because I was concerned about Fulfilled by Amazon seller ratings and damage in transit. I can’t imagine how angry I would have been if I had ordered the camera and received rocks and bricks.

Trump Proposes Arming of Teachers

David Smith, The Guardian:

Donald Trump has said he will consider a proposal to arm school teachers in an attempt to prevent mass shootings, a move certain to prove fiercely divisive.


Referring to Aaron Feis, a football coach who used his body as a shield to protect a student during the massacre at Marjory Stoneman Douglas high school in Parkland, the president continued: “If the coach had a firearm in his locker when he ran at this guy – that coach was very brave, saved a lot of lives, I suspect.

“But if he had a firearm, he wouldn’t have had to run, he would have shot him, and that would have been the end of it. This would only obviously be for people who are very adept at handling a gun. It’s called concealed carry, where a teacher would have a concealed gun on them. They’d go for special training and they would be there and you would no longer have a gun free zone.”

Guns in schools is not the solution to school shootings. As other countries have proven, the solution is fewer guns.

HomePod Leaves Prominent Marks on Certain Surfaces

John Chase, Wirecutter:

We quickly discovered through testing that the HomePod leaves prominent white rings on unprotected wood, a potentially disastrous problem for owners of fine furniture. While Apple insists these marks are easily wiped away, it’s still something to consider.

Apple’s HomePod support document:

It is not unusual for any speaker with a vibration-dampening silicone base to leave mild marks when placed on some wooden surfaces. The marks can be caused by oils diffusing between the silicone base and the table surface, and will often go away after several days when the speaker is removed from the wooden surface. If not, wiping the surface gently with a soft damp or dry cloth may remove the marks. If marks persist, clean the surface with the furniture manufacturer’s recommended cleaning process. If you’re concerned about this, we recommend placing your HomePod on a different surface.

It’s not as disastorous as it’s being made out to be by Wirecutter. Just put a cloth under it.

Updated 2018-02-16: This also happens with the Sonos One.