Shared posts

10 Apr 05:55

Data Science is Hard: History, or It Seemed Like a Good Idea At the Time

by chuttenc

I’m mentoring a Summer of Code project this summer about redesigning the “about:telemetry” interface that ships with each and every version of Firefox.

The minute the first student (:flyingrub) asked me “What is a parent payload and child payload?” I knew I was going to be asked a lot of questions.

To least-effectively answer these questions, I’ll blog the answers as narratives. And to start with this question, here’s how the history of a project makes it difficult to collect data from it.

In the Beginning — or, rather, in the middle of October 2015 when I was hired at Mozilla (so, at my Beginning) — there was single-process Firefox, and all was good. Users had many tabs, but one process. Users had many bookmarks, but one process. Users had many windows, but one process. All this and the web contents themselves were all sharing time within a single construct of electrons and bits and code and pixels: vying with each other for control of the filesystem, the addressable space of RAM, the network resources, and CPU scheduling.

Not satisfied with things being just “good”, we took a page from the book penned by Google Chrome and decided the time was ripe to split the browser into many processes so that a critical failure in one would not trouble the others. To begin with, because our code is venerable, we decided that we would try two processes. One of these twins would be in charge of the browser and the other would be in charge of the web contents.

This project was called Electrolysis after the mechanism by which one might split water into Hydrogen and Oxygen using electricity.

Suddenly the browser became responsive, even in the face of the worst JavaScript written by the least experienced dev at the most privileged startup in Silicon Valley. And out-of-memory errors decreased in frequency because the browser’s memory and the web contents’ memory were able to grow without interfering with each other.

Remember, our code is venerable. Remember, our code hearkens from its single-process past.

Our data-collection code was written in that single-process past. But we had two processes with input events that need to be timed to find problems. We had two processes with memory allocations that need to be examined for regressions.

So the data collection code was made aware that there could be two types of process: parent and child.

Alas, not just one child. There could be many child processes in a row if some webpage were naughty and brought down the child in its anger. So the data collection code was made aware there could be many batches of data from child processes, and one batch of data from parent processes.

The parent data was left looking like single-process data, out in the root of the data collection payload. Child processes’ data were placed in an array of childPayloads where each payload echoed the structure of the parent.

Then, not content with “good”, I had to come along in bug 1218576, a bug whose number I still have locked in my memory, for good or ill.

Firefox needs to have multiple child processes of different types, simultaneously. And many of some of those several types, also simultaneously. What was going to be a quick way to ensure that childPayloads was always of length 1 turned into a months-long exercise to put data exactly where we wanted it to be.

And so now we have childPayloads where the “weird” content child data that resists aggregation remains, and we also have payload.processes.<process type>.* where the cool and hip data lives: histograms, scalars, and keyed variants of both.

Already this approach is showing dividends as some proportions of Nightly users are getting a gpu process, and others are getting some number of content processes. The data files neatly into place with minimal intervention required.

But it means about:telemetry needs to know whether you want the parent’s “weird” data or the child’s. And which child was that, again?

And about:telemetry also needs to know whether you want the parent’s “cool” data, or the content child’s, or the gpu child’s.

So this means that within about:telemetry there are now five places where you can select what process you want. One for “weird” data, and one for each of the four kinds of “cool” data.

Sadly, that brings my storytelling to a close, having reached the present day. Hopefully after this Summer’s Code is done, this will have a happier, more-maintainable, and responsively-designed ending.

But until now, remember that “accident of history” is the answer to most questions. As such it behooves you to learn history well.

:chutten


10 Apr 05:54

Symantec deserves a certificate for shouting about Google

by Josh Bernoff

Google’s Chrome browser is going to stop accepting security certificates from Symantec. This is a big deal: for a browser to recognize a site as secure, it has to accept that site’s certificate, and more than 30% of all sites use Symantec certificates. Google announced this is a direct but technical way, then Symantec responded with exaggerated whining … Continued

The post Symantec deserves a certificate for shouting about Google appeared first on without bullshit.

10 Apr 05:54

It's time to discover Prince

by Anil

With the return of Prince’s classic 80s and 90s catalog to the most popular streaming services, now’s a great time to (re?)discover the breadth of Prince’s incredible body of work.

Prince circa 1991, by Herb Ritts

The full scale of Prince’s music is probably too much for any unfamiliar listener to just dive into; he released nearly 40 albums under his own name(s), regularly enhanced his single releases with extended versions, remixes that could sometimes comprise an entire EP on their own, and legendary B-sides that were often as strong as the single being released to radio. That’s not even counting the literally hundreds of songs he wrote (and often performed on) for others.

So, here’s an easier way to dive into his catalog, broken down by the type of listener you are, and what genres of music you prefer. I’m assuming little to no familiarity with Prince’s catalog here, beyond staples like the song Purple Rain. The nice thing about Prince’s work is that there are no bad starting points; if you don’t like what you hear at first, he almost certainly made a song in the complete opposite style as well.

The basics

If you’ve never really listened to Prince’s work, there’s a reason his 80s albums are revered. They hold up favorably against the very best albums in pop music.

  • Purple Rain (1984)

    Spotify | Apple Music | Amazon | Tidal

    It really is that good. Half the songs on the album became hit singles, and the other half would have except they were too sexy.

  • 1999 (1982)

    Spotify | Apple Music | Amazon | Tidal

    This one will surprise you. Though Purple Rain has more, bigger hits, this is the album that shaped the sound of 80s radio. And, well, a lot of the Top 40 to this day. The songs really stretch out, and this is the album that turned a lot of casual Prince fans into diehards.

  • Sign O’ The Times (1987)

    Spotify | Apple Music | Amazon | Tidal

    If you want to hear Prince at his experimental best, this is almost every hardcore Prince fan’s favorite album.

The greatest hits

There are a number of Greatest Hits collections for Prince’s work. None of them are terrible, but all of them ignore the second half of his career which, while uneven, still had dozens of truly great songs.

  • Ultimate (2006)

    Spotify | Apple Music | Amazon | Tidal

    The best overall collection of Prince’s work, this includes a number of his best b-sides and extended versions, amply demonstrating why those non-album tracks were essential to understanding his range. And if you like big hits like Little Red Corvette, it shows up here in the full 8-and-a-half-minute glory of its 12" Dance Mix.

  • The Hits/The B-Sides (1993)

    Spotify | Apple Music | Amazon | Tidal

    The first compilation of Prince’s work is still the only one to collect a large number of his b-side recordings. Even if you’ve heard most of his 80s albums, there are almost certainly songs here that you missed.

Specially-crafted starting points

I made a number of playlists that are specifically aimed at people who feel like they’ve never really gotten Prince. I often hear people say, “I know he’s supposed to be super talented, but I never saw him live, and I don’t know what song of his I would love.” This is especially poignant for those of us who were fans because his live shows were amazing, often radically recasting his recorded material, and because his hit pop singles, while brilliant and unique, often didn’t resemble the more obscure works that won us over.

These playlists are necessarily incomplete, because of the inconsistent way Prince’s catalog is made available. Tidal comes closest to including all of these songs, though even at its peak Tidal still omitted hundreds of Prince’s songs from its service. I’ve included Spotify versions of the playlists if most of the songs are available from the service.

  • Discover Prince

    Spotify | Apple Music | Tidal 
    This is a playlist of the most “Prince-sounding” tracks in his catalog, a great way to hear work that a lot of serious fans would say could only have come from Prince.

  • Prince: Guitar Pop

    Spotify | Tidal
    Prince’s most riff-driven rock tracks, showing off both his pop songcraft and his predilection for shredding. This list shows off how his work became more conventionally guitar heavy in this century.

  • Prince: Electronic

    Spotify | Tidal
    The signature sound Prince was known for was his extraordinary and cutting-edge adoption of the latest electronic technologies like drum machines, synthesizers, samplers and sequencers. By bringing all these tools to bear, he changed the sound of popular music. These are some of the songs that caused that change, and some showing off how he kept evolving.

  • Prince: Piano

    Spotify | Tidal
    In his final tour, Prince performed solo at the piano, reaffirming his raw showmanship and the strength of his songwriting. But throughout his career, he showed off his skills on the keys, as these songs amply demonstrate.

More to come

There are, of course, a nearly infinite number of ways to slice and dice a catalog that comprises over a thousand songs. None of these playlists even includes the work that Prince created for other artists. And it’s easy to imagine playlists like “Here are the Prince songs you’ll like if you love Hendrix” or “These are the Prince tracks that Justin Timberlake clearly loved the most”.

But what’s most exciting is the idea that a new wave of listeners can find their own gems in a body of work that offers enough surprises and delights to last for decades to come. If you’re just getting into Prince, I hope these lists form a good starting point, and don’t hesitate to reply to me at @anildash if you’ve got questions or want suggestions of how to get started.

10 Apr 05:54

Tech and the Fake Market tactic

by Anil

In one generation, the Internet went from opening up new free markets to creating a series of Fake Markets that exploit society, without most media or politicians even noticing.

1. The open internet markets

American culture loves to use the ideal of competitive free markets as the solution to all kinds of social problems. Though the vaunted Free Market has no incentives to, say, take care of babies with cancer, a well-functioning market can definitely be a great way to see which provider offers the cheapest price for a roll of toilet paper or a bushel of apples.

Given that cultural predilection, some of the first things people made in the early days of the web were new markets. Perhaps the canonical example was eBay; anybody (well, almost anybody) could list their ceramic figurines for sale on eBay and participate in a relatively fair market. On one side, a gaggle of figurine aficionados, enthusiastically searching for the best deals. On the other, a bunch of figurine vendors, competing on price, quality and service. In the middle, a neutral market that just helps connect buyers and sellers through instantly updated information. Everybody’s happy!

Fake Markets: Open

Later, a seller could buy preferred positioning for their products in eBay’s search results, and some product categories started to be dominated by wholesale suppliers, but it still remained a relatively open system. Everybody’s mostly happy!

Not long after eBay started, Google launched, as a sort of market of content, with its PageRank system choosing which pages show up in our search results, ranked by the number of inbound links. On one side were readers, and on the other side we had publishers, and in between was Google using a mysterious but still kind of comprehensible algorithm to create a market where almost everybody felt like they could participate.

But before long, those rankings started to be tainted by spammers, due to the fact that higher ranking in those listings suddenly had monetary value, and making spam links was cheaper than paying for Google’s advertising products. What was an open market to do?

2. The rise of rigged markets

The inevitable automated gaming of the early open digital markets inadvertently catalyzed the start of the next era: rigged markets. Google got concerned about nefarious search engine optimization tricks, and kept changing their algorithm, meaning that pretty soon the only web publishers that could thrive were those who could afford to keep tweaking their technology to keep up in this new arms race. After just a few years, this became a rich-get-richer economy, and incentivized every smaller publisher to standardize on one of a few publishing tools in order to keep up with Google’s demands. Only the biggest content providers could afford to build their own tools while simultaneously following the demands of Google’s ever-changing algorithm.

The problem inevitably became most pronounced in the most valuable markets. Eventually, in lucrative vertical markets like travel, Google started showing its own flight booking tools ahead of the third-party results from travel booking sites, based on the idea that their experience was better for consumers than the confusing and inconsistent results from third parties. This was true, but it was also pretty damn convenient for Google, which now started to make more money on those links.

Fake Markets: Skewed

This was the start of a subtle but critically important pattern on the web: A short-term improvement in user experience helped a single dominant tech company to take over a legacy market in the long term.

Amazon went through a similar process, when it started putting its thumb on the scale, showing its own products first when doing a product search, even if they weren’t the cheapest. We saw a rapid shift where the companies hosting formerly-open markets started to give themselves unfair advantages that couldn’t be countered by the other sellers in the market.

We saw a rapid shift where the companies hosting formerly-open markets started to give themselves unfair advantages that couldn’t be countered by the other sellers in the market.

This shift to rigged markets was perfected in the app stores, where the major players like Apple and Google choose which apps get featured and promoted, and prevent the creation of any apps that would displace or threaten their market dominance. Even if an app does succeed, the app stores promote an ad-supported model that makes app creators dependent on the tech company’s platform for distribution, instead of an app deriving revenues directly from its users.

But even today’s rigged markets have some ways that new players can compete. You could release a new photo-sharing app and theoretically try to compete with Instagram or Snapchat on Apple’s app store. An ordinary shopper could search for “bedsheets” on Amazon’s website and expect to get a list of linens to purchase, both from independent manufacturers and from Amazon’s own Pinzon brand. Even if these markets are skewed, they’re still markets, and that leaves some opportunity.

That’s not to say these systems are fair: the big companies can pick which players in the market get to compete, and issues of network inequality mean people or companies that are privileged enough to be early adopters get unfair advantages. But even with these inequities, we could muddle through and new products or competitors could sometimes emerge.

This has been the status quo for most of the last decade. But the next rising wave of tech innovators twist the definition of “market” even further, to a point where they aren’t actually markets at all.

3. Now: The Fake Markets

Uber‘s promise is simple: you use their app to hail a car, and one driver from a pool of independent drivers agrees to pick you up, and everybody’s happy. In their formulation, they’re a neutral marketplace connecting customers and service providers — kinda like eBay!

But unlike competitive sellers on eBay, Uber drivers can’t set their prices. In fact, prices can be (and regularly have been) changed unilaterally by Uber. And passengers can’t make informed choices about selecting a driver: The algorithm by which a passenger and driver are matched is opaque—to both the passenger and driver. In fact, as Data & Society’s research has shown, Uber has at times deliberately misrepresented the market of available cars by showing “ghost” cars to users in the Uber app.

Fake Markets: Fake

It seems this “market” has some awfully weird traits.

  1. Consumers can’t trust the information they’re being provided to make a purchasing decision.
  2. A single opaque algorithm defines which buyers are matched with which sellers.
  3. Sellers have no control over their own pricing or profit margins.
  4. Regulators see the genuine short-term consumer benefit but don’t realize the long-term harms that can arise.

This is, by any reasonable definition, no market at all. One might even call Uber a “Fake Market”. Yet, by carefully describing drivers in their system as “entrepreneurs” and appropriating the language of true markets, Uber has been welcomed by communities and policymakers as if they were creating a new marketplace. That has serious implications for policy, regulation and even civil rights. For example, we can sincerely laud Uber for making it easier for African American passengers to reliably hail a car when they need a ride, but if persistent patterns of bias from drivers arise again in the Uber era, we’ll have a harder time regulating those abuses because Uber doesn’t usually follow the same policies as licensed taxis.

These pseudo-market patterns also mask patterns of subsidy, like the fact that Uber’s current operations are subsidized by investors to the tune of $2 billion per year. That’s a cost that will be immediately passed along to consumers as soon as Uber succeeds in displacing conventional taxis.

Uber subsidy

The Financial Times states the implications of this economic arrangement very clearly:

[A]ll this equates to is an economic transfer from the working class over to urban metropolitan elites, which benefits one particular corporation over others. This is plainly crazy.

These new False Markets only resemble true markets just enough to pull the wool over the eyes of regulators and media, whose enthusiasm for high tech solutions is boundless, and whose understanding of markets on the Internet is still stuck in the early eBay era of 20 years ago.

Fake markets don’t just happen in traditional products and services — they’re coming to the world of content and publishing, too. Publishers are increasingly being incentivized to use platforms like Facebook’s Instant Articles and Google’s AMP format. Like Uber’s temporarily-subsidized cheaper prices and broader access to ride hailing, these new publishing formats do offer some short-term consumer benefits, in the form of faster loading times and a cleaner reading experience.

But the technical mechanism by which Facebook and Google provide that faster reading experience happens to incidentally displace most of the third-party advertising platforms — the ones that aren’t provided by Facebook and Google themselves. Facebook publishers who use these new distribution channels are incentivized to use Facebook’s advertising platform, where payment rates and profit margins can be unilaterally changed at any time. Just as Uber subsidizes fares during the phase when they’re displacing regulated taxis, Facebook subsidizes publishers’ ad rates during the phase when they’re displacing third-party advertising networks.

In addition to making publishers even more dependent on the two tech titans for revenues, there’s the issue of the algorithms used to discover content. Almost everyone who uses Facebook has become aware that its algorithm for showing content is opaque, to both publishers and readers. As a result, there are fewer understandable tricks that publishers can use to ensure that readers will see their content — and publishing in the Instant Articles format is one of the few that’s known to work. It also happens to require a publisher to invest scarce resources in supporting the Facebook format, with the result of that publisher becoming even more dependent on Facebook for distribution.

So: Neither readers nor publishers know why Facebook shows a particular story in a feed. And media regulators and policymakers can’t see past the short-term benefit of faster-loading stories.

The Fake Market for content looks like this:

  1. Readers can’t trust the information they’re being provided to make a content decision.
  2. A single opaque algorithm defines which readers are matched with which publishers.
  3. Publishers have no control over their own ad rates or profit margins.
  4. Regulators see the genuine short-term reader benefit but don’t realize the long-term harms that can arise.

4. After Markets: Self-Driving News

But wait, it gets worse. Next we replace the sellers in the market.

What we have in ride sharing or content publishing is a rapid move to locked-down systems controlled by one, or at most two, privately-held corporate players. But even in these fake markets, there are currently multiple providers offering their services within the ecosystem. The providers are those Uber drivers or Facebook publishers being lauded as independent entrepreneurs thriving on the platform.

But Uber has already plainly announced its roadmap: Self-driving cars. The much-lauded independent driver-entrepreneurs will be replaced by completely automated service providers as quickly as possible, and not only will those new self-driving cars not have drivers who need to be paid, they will all be owned by Uber itself. When this transition happens over the next decade, we’ll have entire markets of independent contractors displaced by the transition, precisely at the point when the social safety net is being dismantled. In the meantime, politicians across the political spectrum have been presenting these “gig economy” non-jobs as the future of work.

Fake Markets: Closed

Self-driving cars are hard, though. Making a robot that can navigate through a city and deliver a passenger safely and reliably to their destination is an incredibly hard problem that will take a long time to get exactly right.

By contrast, what are the barriers to self-driving news? We’ve already seen that a lot of news consumers aren’t interested in being safely and reliably delivered to accurate news. Success in this case will be much easier: A robotic publisher only has to deliver content that’s emotionally engaging enough to earn a person’s readership for a few moments. That’s even easier to do if the publisher or distributor of the content doesn’t care if the story is true or not. Peter Thiel is on Facebook’s board of directors.

And remember, Facebook tends to subsidize publishers taking advantage of its new platform features just until the point at which those publishers become dependent on them. Publishers are already struggling with overall media industry economics; Facebook’s promised payouts may be an offer they don’t feel like they can refuse.

So what do we do?

Most of the people building these features at these companies don’t mean to undermine markets. The coders and designers at companies like Uber and Facebook and all the others are usually well-intentioned and genuinely see their work as benefiting users. In the immediate term, they’re not even wrong; being able to easily hail a cab or quickly read a story is a real benefit. But most tech workers, including at the biggest tech companies, are blind to the radical political and social agendas of their companies’ owners and investors.

Worse, we’ve lost the ability to discern that a short-term benefit for some users that’s subsidized by an unsustainable investment model will lead to terrible long-term consequences for society. We’re hooked on the temporary infusion of venture capital dollars into vulnerable markets that we know are about to be remade by technological transformation and automation. The only social force empowered to anticipate or prevent these disruptions are policymakers who are often too illiterate to understand how these technologies work, and who too desperately want the halo of appearing to be associated with “high tech”, the secular religion of America.


It’s essential we develop a vocabulary for talking about these issues, and perhaps the single most effective action we can take is to educate our elected officials about the changes that are happening. This stuff is complex, and it’s going to take time to teach all our representatives about why all the changes wrought by these new high-tech apps aren’t necessarily the best thing for our communities in the long term.

But there’s still time to get it right. It’s not inevitable that we have to give over our open markets to new Fake Markets dominated by one or two giant tech companies. And perhaps the single biggest thing we can do is both the hardest and the easiest: We can change our own behaviors. Look at the apps on your phone right now. Are you sure you are comfortable with what’s going to happen when everyone’s running the same apps that you are?

Fake Markets: End

10 Apr 05:54

Software engineering, responsibility, and ownership

by David Baron

One of the ways to advance as a software engineer is to be in charge of something, such as a one-time project like implementing a new feature or leading a software release, or an ongoing task such as triaging incoming bugs or analyzing crash reports.

One thing that makes it more likely that you'll be in charge of something is if others trust you to be in charge of that. And you're more likely to be trusted if you've consistently behaved like somebody who is responsible for that thing or similar things.

So what does being responsible look like? Largely, it looks like the behavior you'd expect from a project owner, i.e., the way you'd expect the person in charge of the project to behave. In other words, I think it helps to think of yourself as having the responsibility of the project's owner. (But, at the same time, remember that perhaps you don't, and collaborate with others.) Let's look at two specific examples.

First, what do responsibility and ownership look like for somebody doing triage of incoming bugs? One piece is to encourage more and better bug reports by acting in ways that acknowledge the bug reporter's contribution, such as: making the reporter feel their concerns are heard, not making the reporter waste their time, and improving the bug report on the way (making the summary accurate, adding clearer or simpler testcases, etc.). Another is taking responsibility and following up to make sure important things are handled, and to make it clear that you're doing so. When you do this (or many other things), it's important to make appropriate commitments: don't commit to things if you can't honor the commitment, but avoiding committing to anything is a failure to take responsibility.

Second, what do responsibility and ownership mean for somebody writing code? I think one big piece is that you should do the things you'd do if you were the sole maintainer of the code before you submit it for review. That is, submit code for review when you're actually confident it's ready to be part of the codebase. This implies doing many things, from high level tasks like having a clear model of what the code is supposed to do, to having appropriate tests, assertions, and structure that make future modifications easier and reduce their risk, to more low-level things like looking at all the callers of a function when a change you make to what the function does requires doing so.

Another big piece of responsibility when writing code is taking responsibility for and fixing the problems that you cause. (As you take on more responsibility, you might find others to help you do this, but you're still responsible for it.) How to do this depends on the seriousness of the problems. It sometimes means temporarily reverting the changes while figuring out the longer term fix. In other cases it means writing patches for serious problems promptly. And in less serious cases a quick response may not be needed, but it's useful to communicate that you've concluded the problem is lower priority in case others have a different view of the seriousness.

Having engineers exercise responsibility and ownership in this way is important because having more engineers take responsibility makes a project run better. So it's a characteristic that I like to see in software engineers and one of the characteristics that defines what I see as a good engineer.

10 Apr 05:53

An ancient memorization strategy and becoming a Mentat

by charlie

I was an avid reader of Frank Herbert’s Dune series of novels. One interesting thread in the books was that at some point, long before the start of the first novel, humans revolted against thinking machines (and in Herbert’s politico-religio-scientific melange, he called it the Butlerian Jihad). A response to the destruction of all the thinking machines was the Mentat, a human trained and drugged to replace computer thinking and feats of calculation.

The concept has alway fascinated me. And when I think of all the things the mind has been shown to do I can’t help but think that we can indeed map what a modern-day Mentat might be able to do.

Remember well
Have you ever read an ancient epic poem, such as Homer’s Iliad? The Iliad, like many other ancient epic poems, was initially an oral poem, passed on from person to person, long before it was a written poem. While we think of this as a feat of memory, clearly this is something we see in other areas with people who can remember Pi to many digits, pianists who can play long orchestral concerts, and little kids who can memorize cards before they can read.

A recent article in The Verge mentions a study of “loci,” a method also knows as the “memory palace,” where a mental map of places is used to remember objects. Indeed, this process might affect the brain.

“It shows that superior memory on that level is not something that is just inborn talent, but is something that essentially can be learned by everyone”

Source: An ancient memorization strategy might cause lasting changes to the brain – The Verge

Savants
When I hear that techniques like this one actually cause changes to the brain, I start thinking again of Mentats.

For example, I have heard tales of savants who can make highly detailed drawings in a distributed fashion, the final drawing only revealing itself as the patches grow and connect. Or the folks who can name the day of the week if you give them a date, or, even, remember a day completely if you give them a date. Or how about folks who can calculate large numbers instantly?

These abilities are in our brain and technically we should be able to train for them. My one concern is whether these Mentat-like abilities and our neurotypical abilities are mutually exclusive, sort of like an autism spectrum.

Pulling it all together?
One last thing: Adderall is a common drug to treat attention deficit and hyperactivity disorder. But it also a coveted college studying drug, as it seems to help one concentrate and focus (and if you catch The Expanse, you’ve seen the Martians use something similar).

What other drugs out there allow us to tap into our mental skills? How can we start training our brain for feats of memorization, calculation, recitation?

For sure, these capabilities are out there and we have many examples. But can we pull them together and give someone the wide-ranging computational and inference abilities of a Mentat?

What do you think?

Image from The Verge

10 Apr 05:53

Announcing the Equal Rating Innovation Challenge Winners

by Katharina Borchert

Six months ago, we created the Equal Rating Innovation Challenge to add an additional dimension to the important work Mozilla has been leading around the concept of “Equal Rating.” In addition to policy and research, we wanted to push the boundaries and find news ways to provide affordable access to the Internet while preserving net neutrality. An open call for new ideas was the ideal vehicle.

An Open and Engaging Process

The Equal Rating Innovation Challenge was founded on the belief that reaching out to the local expertise of innovators, entrepreneurs, and researchers from all around the world would be the right way for Mozilla to help bring the power of the Internet to the next billion and beyond. It has been a thrilling and humbling experience to see communities engage, entrepreneurs conceive of new ideas, and regulatory, technology, and advocacy groups start new conversations.

Through our Innovation Challenge website, equalrating.com, in webinars, conferences, and numerous community events within the six week submission period, we reached thousands of people around the world. Ultimately, we received 98 submissions from 27 countries, which all taken together demonstrates the viability and the potential of the Equal Rating approach. Whereas previously many people believed providing affordable access was the domain of big companies and government, we are now experiencing a groundswell of entrepreneurs and ideas celebrating the power of community to bring all of the Internet to all people.

Our diverse expert Judges selected five teams as semifinalists in January. Mozilla staff from around the world provided six weeks of expert mentorship to help the semifinalists hone their projects, and on 9 March at our Equal Rating Conference in New York City, these teams presented their solutions to our panel of Judges. In keeping with Mozilla’s belief in openness and participation, we then had a one-week round of online public voting, the results of which formed part of the Judges’ final deliberation. Today, we are delighted to share the Judges’ decisions on the Equal Rating Innovation Challenge winners.

The Winners

With an almost unanimous vote, the Overall Winner of the Equal Rating Innovation Challenge, receiving US$125,000 in funding, is Gram Marg Solution for Rural Broadband. This project is spearheaded by Professor Abhay Karandikar, Dean (Faculty Affairs) and Institute Chair Professor of Electrical Engineering and Dr Sarbani Banerjee Belur, Senior Project Research Scientist, at Indian Institute of Technology (IIT) Bombay in Mumbai, India.

Dr Sarbani Banerjee Belur (India) presenting Gram Marg Solution for Rural Broadband at Mozilla’s Equal Rating Conference in New York City

Gram Marg, which translates as “roadmap” in Hindi, captured the attention of the Judges and audience by focusing on the urgent need to bring 640,000 rural villages in India online. The team reinforced the incredible potential these communities could achieve if they had online access to e-Governance services, payment and financial services, and general digital information. In order to close the digital divide and empower these rural communities, the Gram Marg team has created an ingenious and “indigenous” technology that utilizes unused white space on the TV spectrum to backhaul data from village wifi clusters to provide broadband access (frugal 5G).

The team of academics and practitioners have created a low-cost and ruggedized TV UHF device that converts a 2.4 Ghz signal to connect villages in even the most difficult terrains. Their journey has been one of resilience and perseverance as they have deployed their solution in 25 pilot villages, all while reducing costs, size, and perfecting their solution. This top prize of the Innovation Challenge is awarded to a solution the Judges recognize as creating a robustly scalable solution – Gram Marg is both technology enabler and social partner, and delivered beyond our hopes.

“All five semifinalists were equally competitive and it was really a challenge to pitch our solution among them. We are humbled by the Judges’ decision to choose our solution as the winner,” Professor Karandikar told us. “We will continue to improve our technology solution to make it more efficient. We are also working on a sustainable business model that can enable local village entrepreneurs to deploy and manage access networks. We believe that a decentralized and sustainable model is the key to the success of a technology solution for connecting the unconnected.”

As “Runner-Up” with a funding award of US$75,000, our Judges selected Afri-Fi: Free Public WiFi, lead by Tim Human (South Africa). The project is an extension of the highly awarded and successful Project Isizwe, which offers 500MB of data for free per day, but the key goal of this project is to create a sustainable business model by linking together free wifi networks throughout South Africa and engaging users meaningfully with advertisers so they can “earn” free wifi.

The team presented a compelling and sophisticated way to use consumer data, protect privacy, and bolster entrepreneurship in their solution. “The team has proven how their solution for a FREE internet is supporting thriving communities in South Africa. Their approach towards community building, partnerships, developing local community entrepreneurs and inclusivity, with a goal of connecting some of the most marginalized communities, are all key factors in why they deserve this recognition and are leading the FREE Internet movement in Southern Africa”, concluded Marlon Parker, Founder of Reconstructed Living Labs, on behalf of the jury.

Finally, the “Most Novel” award worth US$30,000 goes to Bruno Vianna (Brazil) and his team from the Free Networks P2P Cooperative. Fueled by citizen science and community technology, this team is building on the energy of the free networks movement in Brazil to tackle the digital divide. Rather than focusing on technology, the Coop has created a financial and logistical model that can be tailored to each village’s norms and community. The team was able to experiment more adventurously with ways to engage communities through “barn-raising” group activities, deploying “open calls” for leadership to reinforce the democratic nature of their approach, and instituting a sense of “play” for the villagers when learning how to use the equipment. The innovative way the team deconstructed the challenge around empowering communities to build their own infrastructure in an affordable and sustainable way proved to be the deciding factor for the Judges.

From left to right: Steve Song (Canada), Freemium Mobile Internet (FMI), Dr Carlos Rey-Moreno (South Africa), Zenzeleni “Do it for yourselves” Networks (ZN), Bruno Vianna (Brazil), Free Networks P2P Cooperative, Tim Genders (South Africa), Afri-Fi: Free Public WiFi, Dr Sarbani Banerjee Belur (India), Gram Marg Solution for Rural Broadband

Enormous thanks to all who participated in this Innovation Challenge through their submissions, engagement in meetups and events, as well as to our expert panel of Judges for their invaluable insights and time, and to the Mozilla mentors who supported the semifinalists in advancing their projects. We also want to thank all who took part in our online community voting. During the week-long period, we received almost 6,000 votes, with Zenzeleni and Gram Marg leading as the top two vote-getters.

Mozilla started this initiative because we believe in the power of collaborative solutions to tackle big issues. We wanted to take action and encourage change. With the Innovation Challenge, we not only highlighted a broader set of solutions, and broadened the dialogue around these issues, but built new communities of problem-solvers that have strengthened the global network of people working toward connecting the next billion and beyond.

At Mozilla, our commitment to Equal Rating through policy, innovation, research, and support of entrepreneurs in the space will continue beyond this Innovation Challenge, but it will take a global community to bring all of the internet to all people. As our esteemed Judge Omobola Johnson, the former Communication Technology Minister of Nigeria and partner at venture capital fund TLcom, commented: “it’s not about the issue of the unconnected, it’s about the people on the ground who make the connection.” We couldn’t agree more!

Visit us on equalrating.com, join our community, let your voice be heard. We’re all in this together – and today congratulate our five final teams for their tremendous leadership, vision, and drive. They are the examples of what’s best in all of us!

The post Announcing the Equal Rating Innovation Challenge Winners appeared first on The Mozilla Blog.

10 Apr 05:53

Abandoning Tumblr

I’m picking up sticks, after many years on Tumblr. Moved to Medium. Only back here to pilfer.

Check me out there: medium.com/@stoweboyd

10 Apr 05:53

Bike Spotting: Do you shop on Bloor?

by dandy

The Bloor Bike Lane pilot project has been installed for about six months now. Since its installation local businesses have cited a drop in sales because of the loss of on street parking.The city released a survey last week to gauge the public's reception of the long awaited lane. But we didn't feel like waiting around to hear  the results. So we popped down to Spadina Ave and Bloor  St to see what people were up to themselves.

Caroline

"I live near Christie Pits and I ride my bike and walk pretty much everywhere within a one hour radius. I use Bloor a lot and as you can see I've got my shopping bag and am about to go pick up some groceries on my way home. That being said I could go on and on about the Bloor bike lane  and how it's not good enough. There is the added danger of passengers opening their doors into the lane who aren't used to it. It's so dangerous. It's much better when the lane is on the outside of the parking."

Gary and his son Alan 

"We do everything by bike! Toronto is one of the best places in the world to cycle and the Bloor Bike Lane is one of the best."

Sarah

"I picked up some carrots today! But I do go shopping along Bloor and always use the bike lane."

Sean

"I'm not shopping today just heading to class but I do use my bike to run errands. To be honest I don't usually use Bloor I don't like the lane. I almost got doored just west of Bathurst a couple of minutes ago and it's too narrow. I think there are better cycling infrastructure options around the city-Sherbourne's good, Harbord's good. I prefer Dundas even though there isn't a bike lane there because it's wider."

Related Articles on dandyhorse.com 

Kensington Market Bike Spotting: Theft Prevention

Bike Spotting: How Has the City Been Doing With Bike Lane Maintenance This Winter?

Bike Spotting on Bloor at Shaw: What do you think of the new bike lane?

Bike Spotting: What do You Think of the Plan to Install Barriers to Separate the Existing Bloor Street Bike Lane?

10 Apr 05:53

Where Are You Really From

by Zara Rahman

“But where are you really from?”

Sigh. This again.

Say what you mean, please: Are you actually asking why I have the accent I do? Is it my skin color that prompted your question? Perhaps you’re wondering where I live, or how I got to where we’re meeting today? Sometimes I’ve already answered your question, but somehow you don’t accept my answer.

As a British citizen with Bangladeshi heritage who’s lived in Germany for the past six years and is currently in the U.S. for a few months, I always struggle to answer the question of where I am from, and it’s getting harder with time. What would you like to hear today? I could say the UK, but I haven’t lived there for years and never lived in London, so I can’t be impressed by mentions of your favorite London hangouts. I could say Germany, but then you’ll assume I’m German with an exceptionally convincing British accent and compliment me on it undeservedly. I could say Bangladesh, but I’ve never lived there for more than three months at a time and it feels artificial to claim that. This, though, seems to be the only answer that will satisfy you. It seems to fit the preconceptions that make you refuse to accept that a brown woman could be “from” anywhere but Asia.

Confronted with a drop-down menu of countries, I think again of what you’re actually asking. Borders change, divide, rejoin. Do your menu options keep pace?

I’m baffled at your sense of entitlement. It’s not that you ask in the first place; it’s that you ask again, after I’ve answered. No, where are you really from? Is there any other personal question to which you would outright reject my answer? Would you say that about my height, or my profession? I can refuse — no, it’s not your role to define my identity, to put boundaries on who I can and can’t be — and yet you do it over and over.

I can’t spend too much time thinking about you, though. I meet people like you regularly, at least once a week. It’s exhausting. Sometimes I will say whatever I think you want to hear, anything to make the conversation progress before we get to the awkward part where you realize that you wouldn’t be talking to me like this if I were white.


I find traces of people like you online. I realize you must have been involved in building the digital systems I interact with, the ones that force me to identify just one place, one country, one state as my permanent location.

In person, I can dodge the question, refuse it, change the subject. Online, in the way you’ve designed those systems, I can’t. There, to my frustration, I can’t refuse the terms of your question and the way you define how I can answer and how I can identify myself.

For all the 1990s utopian dreams of the internet as a space where nation-state borders don’t matter — typified by John Perry Barlow’s 1996 “Declaration of the Independence of Cyberspace,” in which he declares that “our identities may be distributed across many of your jurisdictions” and that “the only law that all our constituent cultures would generally recognize is the Golden Rule” — what we’ve ended up with is an online version of our offline realities, in which borders are not transcended but instead exaggerated. Citizenships aren’t ignored but instead enforced more strongly, with internet users being put into stronger categories rather than having boundaries blurred like we had hoped. Data and the categorization of people and their identities have become more important than we ever imagined it would.

Confronted with a drop-down menu of countries, I think again of what you’re actually asking. Countries are complicated. Borders change, countries change names, divide, rejoin. Do your menu options keep pace? Who decides what makes a country a country? There must be different versions of the lists of “all” the countries in the world, tailored to different political conditions, and the official recognition of different prevailing institutions. No Taiwan, if you’re building a form for the United Nations. No Palestine, if you’re creating a system for the United States. What about the people of Transnistria, a self-proclaimed republic on the Ukraine-Moldova border, recognized by only three states? I wonder about my friends from countries not universally recognized: Do they ever get to answer the question the way they want to?

Until 2015, there were within Bangladesh 102 areas that were considered part of India, 21 of which themselves contained little areas considered part of Bangladesh, one of which contained yet another counter-enclave of India — the world’s only third-order enclave. Similarly, in India there were 71 Bangladeshi enclaves, three of which contained Indian counter-enclaves. Almost 52,000 people live in one of these pieces of land. How on earth would this complicated narrative of geopolitics fit into a drop-down menu?


The way our digital systems are set up hide a lot from the individual. You ask where I’m from in a form, and I have no way of knowing what you mean, or why you’re asking until I’ve reached the end. Sometimes your purpose goes unexplained except in the fine print, and even then I have no way of knowing how the location I select will be used to profile me or to “give me the best service” until it’s too late. But worst of all, most of the time I have no idea why you’re asking where I’m from at all, or if there’s hidden purposes that you won’t ever reveal to me: Are you selling this information to a third party? Providing it to governments? Using it to profile me so you can serve me more “appropriate” advertisements to reinforce those stereotypes? As an individual, I have little power to find out. You have no incentive to show me, and keeping me in the dark enables you to categorize and stereotype to your heart’s content without the real versions of your stereotypes complicating your data.

Something confuses me though. Migration is as old as time. Humans have been moving across continents, exploring, colonizing, adapting to new climates and leaving others, for many centuries. Some have been forced to move; others have migrated out of necessity or desire. Societies have sought to extend their borders and take land from others for centuries — is that what you’re seeking to do here too? A sort of digital conquest, where you impose your terms on people and make it so that if they want to exist on online platforms, they have to play by your rules?

Your systems are set up to judge me based on where I’m from, but like millions around the world, I’m not from one place. Yet you have chosen not to develop ways of computing multiple locations. Instead of adjusting your system to reflect reality, I’m forced to conform.

Like millions around the world, I’m not from one place. Instead of adjusting your system to reflect reality, I’m forced to conform

Digital technologies seem to have ignored how people actually move around in geographic space: It’s relatively new that some of us have fixed locations or even addresses at all, and in some regions, nomadic cultures still exist. In Somalia, over a quarter of the population is nomadic; in Mongolia, just under a third are still nomadic, moving from place to place with their herds. Seasonal migration from rural areas to urban ones is a way of life for many, or from poorer countries to richer ones, as Bangladeshi migrant workers who find work in countries in the Gulf do. For millions, location is and always has been fluid and complex, dependent upon a myriad of factors, from climate to the economy to geopolitics.

Yet specifying a single location as one’s place of “being” in a format that online systems recognize is posited as a prerequisite to modern digital life — or at least the financial parts of it. Now we enter systems with a particular credit card, which requires a bank account, which requires a fixed address. And of course, specifying one’s country of origin generates different treatment both within and outside these systems. Prioritizing and sorting people according to their assigned location makes it easy to discriminate accordingly, as the U.S. travel ban makes explicit. For those whose location answers relate in any way to countries with significant Muslim populations, now is a worrying time.

Under the veneer of national security concerns, rights are being denied based on prejudice against those countries and against a religion. Years of colonialism and imperialism have created perceived hierarchies among nations that have deep, persistent ramifications, maintaining oppression and uneven distributions of power. Stereotypes abound based on the countries we say we’re from, some with deeply racist undertones, strengthened by a lack of diversity in popular culture and an ignorance of the “other.”

I think twice about mentioning Bangladesh anywhere online; most of the time I decide to do it anyway. I’m lucky though: I can pick between a few countries and two of those — the UK and Germany — give me more privileges. Sometimes this works in my favor. My British accent gets me undeserved praise in the U.S. for being funny or smart, and undeserved respect in former British colonies. But this merely mirrors and ultimately reinforces the stereotyping. I don’t know how to make it stop.

I’m frustrated that this approach to identity has become entrenched in our digital technologies. Instead of building that “cyberspace” that John Perry Barlow described, we’ve re-created conditions where citizenship and location not only retain their importance but have their impact extended.

Perhaps it’s here that the roots of the internet reveal themselves. Developing digital systems has never been about building a space apart from reality, not really, but about establishing new systems of control, integrated with the offline. It’s always been a power struggle, with military interest and money.

“Cyberspace” gave us a fantasy to lose ourselves in, a cloak to hide the real power at play — and now those tentacles of power are strong. They push us toward single identities, gender binaries, only certain racial identities, these singular location categories. Who are these systems built for? Whose values are embedded within them, and whose values are we striving to achieve?


I assume that you aren’t faced with this problem, that you have the privilege of facing the question of where you are from with just one answer that you don’t ever worry about giving. You probably also don’t know exactly what’s done with your answer, how it’s filed away, what it affects. If you had ever worried about it like that, you wouldn’t have allowed it to be set it up and asked this way.

Or perhaps your narrative is more complicated: You might be an immigrant too, but being able to identify yourself as from the country you’ve arrived in is part of your integration. Naming the place you want to call home in these menus gives you more social clout, it signals success, it gives you an opportunity to put down in a database that You’ve Made It. Associating location with your identity is a sign of success for you, and it’s not my place to question that.

The forces pushing us toward a single identity are likely to get stronger. This provides the appearance of more social control

But there seems to be a clear profile privileged in digital systems, and I feel like slowly, slowly, we’re realizing that the bearers of this profile already hold the most power, already sit at the table making those decisions, and rarely have to compromise to fit into someone else’s idea of who they should be. The many, many of us who don’t fit that profile deserve better.

We respond however we can. Just as I want to dodge your question in person, I try to dodge it online, to confuse your desire to categorize me against my will. I want my people to know who I am and how I identify, I want that to be fluid and changing, and I want the machines to have to struggle to sort me into one of its pre-programmed groups.

Other people share this desire. There’s a trend of people putting their locations not in the Twitter’s location field, but in the name field instead, where the machines don’t look for it. Real people know how to make sense of it: Zara @ NYC, Zara @ Berlin. It’s easy to change so people know where to find me and when, but the machines are none the wiser.

The forces pushing us toward a single identity are likely to get stronger. Establishing a single identity and enabling interoperable data sharing across commercial entities provides the appearance of more social control. On the commercial side, incentives for creating a single identity system are strong — for commercial entities collecting our data, it would allow them to share what they know, to broaden their knowledge of their customer base, to “understand” their customers better, or at least to believe they do, and sell that belief.

Digital mechanisms of identification are being implemented more widely, like Aadhaar, a multipurpose 12-digit identification number assigned to all Indian citizens and based on their biometric and demographic data. But data is shared between governments and international agencies, and an error or false data point might have far-reaching consequences. A fingerprint shared at one border might be easily accessible on the other side of the world. Identities are valuable, powerful resources that can permit or deny access to all varieties of spaces.

Increased awareness of these problems of inclusion and exclusion are growing. Some groups have moved toward data minimization: collecting only necessary data rather than all the data. The temptation is still there though, and the hype around “more data, better decisions” is still very much alive.

In most of the digital spaces I’m currently in, there is little space for fluidity. The limits around what I know and what I am able to find out about where that data goes are strong. In my ideal digital space, my identity would be mine to define, locations would be mine to pick, and I would know for what purpose you’re asking.

More diversity among the people designing these systems might finally mean that the questions asked about who we are and where we are from are more easily answerable for more people, not just a certain lucky few. Ideally, we wouldn’t have to answer them at all, and we could define ourselves, what we want, and who we are online. You wouldn’t be able to reject my answer as you do online and offline; you wouldn’t know anything that I don’t want you to know. Now, though, all I can do is respond to the question you ask me in person and perhaps make you rethink these systems and the part you play in them.

10 Apr 05:53

How to Skylark – the class

by Kristina Chodorow

I’ve heard a lot of users say they want a more comprehensive introduction to writing build extensions for Bazel (aka, Skylark). One of my friends has been working on Google Classroom and they just launched, so I created a build extensions crash course. I haven’t written much content yet (and I don’t understand exactly how Classroom works), but we can learn together! If you’re interested:

It’s free and you can get in on the ground floor of… whatever this is. If you’ve enjoyed/found useful my posts on Skylark, this should be a more serious business and well-structured look at the subject.

I’ll try to release content at least once a week until we’ve gotten through all the material that seems sensible, I get bored, or people stop “attending.”

10 Apr 05:53

Google’s wandering, inevitable path to ambient augmentation

by Marek Pawlowski
Orbital system concept for ambient augmentation

Would you like to explore a tangent? It concerns chickens, antiques and the future of ambient augmentation.

About twice a week I like to buy eggs from a local farm. It is a walk of a few miles, along a country road at first and then across fields. I enjoy it for the exercise and because I find a good walk often prompts new thinking.

Google knows all about this. There is a screen on my Android phone which can tell me exactly where I have been, how long for and whether I walked, cycled or drove my car.

Google also already knows the answers to all the random thoughts prompted by the visual stimuli I encountered on this walk.

Visual stimuli on my computer vision ramble

However, there’s a problem. While Google knows the answers, it doesn’t know the questions – yet:

  • What am I doing on 14th and 15th April?
  • Where could I find out more information about the Peterborough Antiques Fair?
  • Do I need to book a ticket?
  • Why does gorse smell like coconut?
  • Is the blossom earlier this year than last?
  • What kind of chickens are those?
  • Will those mushrooms kill me?

In the moment the questions materialised I was more interested in my walk. I was conscious of the visual stimuli flooding into my eyes – the sign advertising the antiques fair, the spring blossom opening in the hedgerows, the chickens pecking in the farm yard – but my desire for answers was far exceeded by wanting to be in the present, enjoying the experience of the walk.

There’s a limit to how many questions a user can ask explicitly in a day and, currently, Google needs that kind of specific input to know about the infinite curiosity of the world’s citizens. The two trillion searches Google processes every year may sound like a huge number, but it is not even the tip of the iceberg. For every question I type into my computer or speak into my phone, there are countless others I never will.

At some point, I am sure I will want the answers to all of those random, weird, highly personalised questions I thought about on that walk. I am also sure Google would like to answer them: its business is built on that premise.

How might a good digital experience complete the loop connecting this insatiable curiosity of humans with the infinite knowledge of the web?

Consider the limitations in the moment when the visual stimuli became questions:

  • I did not want to be interrupted.
  • I wanted to know more, but I didn’t know when, or how.
  • The only digital tool I was carrying (a smartphone) was designed for person-to-person communications rather than to interpret the world around me.

Now, consider the opportunities:

  • Much of my behaviour is already encoded in digital form (Google knows my movements, search history, calendar, photos and more).
  • Its search engine already knows the answers to the questions I had.
  • Machine learning techniques can already accurately interpret the visual stimuli I encountered and turn them into usable data.

We’re already close – very close – to closing the loop, but there are two missing links:

  1. A socially acceptable form-factor for a universal computer vision sensor. The next phase requires digital to see the user’s world in real-time and that will only happen once a novel form-factor is found. Smartphones and Glass-style headsets aren’t it.
  2. A digital exploration interface which subscribes to principles of quiet design. Answers should remain hidden until they’re summoned, awaiting the user’s command and never presuming to interrupt.

We know this storm is coming. We’re already seeing the first breeze stirring the trees with augmented reality products like Microsoft HoloLens, Google Glass and Pinterest Lens. Individually they are rightly regarded as niche experiments, but collectively they’re waypoints on a path to the next generation of digital experiences.

If you think back to my questions and imagine that Google could have seen and encoded my visual world in real-time, the technology already exists to answer them all:

  • Once recognised, the sign advertising the antiques fair in Peterborough on 14th and 15th April could be used to search my calendar availability, find the relevant web-site and offer me a simple confirmation to book a ticket.
  • Google’s image algorithms already recognise the distinctive bright yellow gorse flowers and could link me to the Wikipedia page which explains their coconut smell.
  • I take photos of spring blossom every year. My Google Photos account already contains the automatically geo-tagged, time-coded photos. Given that Google’s image algorithms can recognise blossom and that it has access to millions of other accounts which might contain corroborating images, answering the question ‘did photos of X appear earlier this year or last?’ is relatively straightforward.
  • The mushrooms, of course, are more challenging given the potential consequences, but the same principles apply to surfacing relevant information. (I didn’t risk it, in case you were wondering…and the elaborate chickens were actually guinea fowl!)

The greater challenge is knowing when and how to surface these results. Every object Google recognises in my world could lead to myriad different answers. Google is already using machine learning at vast scale to become very good at guessing what a given user might be looking for: think about how often it suggests the right query from just the first few letters you entered into the search bar.

However, when a user initiates a search through keyboard or voice, they are signalling implicit confirmation that they’re ready to receive the result. In contrast, the answers Google could surface by visually decoding the world around its users might be wanted immediately, in a few seconds or several weeks later. Get this wrong and you risk a degree of cognitive overload which would fatally flaw the experience:

  • I might want near real-time information about the mushrooms. Unless they’re definitely edible, I won’t pick them. The answer could be presented in my field of vision through augmented reality or be present on the lockscreen of my phone when I pull from it my pocket to check.
  • The question about the blossom might be something I returned to later that day. Maybe it could be surfaced when I was writing a diary entry in the evening?
  • The information about the antiques fair, however, might not become relevant for several days or weeks. As the event approached, a sidebar in my Google Calendar on my PC could suggest it, along with the link to book.

We might conceptualise the lifecycle of these answers as an orbital system. The user has the ability to pull answers into their gravity when needed, but otherwise the answers remain at a distance, waiting to be called. Some may gradually move closer of their own accord in response to changing contextual factors like time, social relationships and environment. As they do so, they may emit ambient signals at the edge of the user’s digital sub-consciousness – not so loudly as to interrupt the conscious present, but quietly and patiently.

The experience design challenges highlighted by this scenario leave me pondering several thoughts:

  1. While I used Google as my example, this could be any current or aspiring tech giant. Google has some scale advantages in refining machine learning and access to existing user data, but it could be undermined by a new entrant better able to reassure users about their privacy concerns.
  2. Creating an experience like the one described will require a multi-touchpoint and multi-sensory design approach from the outset. These are the user-centred design skills of the future.
  3. The biggest conceptual design challenge as we move towards these augmented and mixed reality experiences is how to give access to vastly more data while reducing cognitive load on the user. Principles of quiet and ambient design will be essential.
  4. Hardware still matters. Several new device types will be required, such as the universal computer vision sensor I mentioned and a way of getting a digital display direct to the eye. It will take incredible industrial design skills to make these simultaneously desirable, affordable and functional.

That was the tangent I explored on my walk. What do you think will come next?

10 Apr 05:53

These Weeks in Firefox: Issue 13

by mconley

Highlights

 

Friends of the Firefox team

Project Updates

Add-ons

Activity Stream

  • timspurway reports that the team has re-evaluated their schedule for landing in Nightly – new estimate puts Activity Stream in Fx57

Electrolysis (e10s)

Firefox Core Engineering

Form Autofill

Mobile

  • The team ran user testing of Prox v2, which emphasizes local sights, events, and multiple sources – full conclusions upcoming!
  • Firefox for Android 53 coming soon with RTL support for Urdu, Persian, Hebrew and Arabic!
  • Activity Stream is going live for 50% of the Firefox for Android Nightly audience this week. All Nightly users will see a setting to opt-in / opt-out (Settings -> Advanced -> Experimental Features).

Platform UI and other Platform Audibles

Privacy/Security

Project Mortar (PDFium)

  • evelyn reports that the front-end work for Mortar is almost done! A few bugs remaining, but it’s getting pretty polish-y.
  • The team is currently dealing with process separation work, and waiting on this bug to land which will allow us to create a special type of JS-implemented plugin
  • The team is also tackling the printing engine as well, as we want to make sure we print PDFs as accurately as possible
  • Blocked on spinning up QA help for manual testing, but we will first add more automation test and compare the result of pdf.js to understand how much improvement we gain. (Thanks to bsmedberg’s suggestion!)
  • Talking to release team on release to-dos, and how best to keep the system add-on up to date

Quality of Experience

  • New preferences organization should land sometime this week
  • Engineers now mostly segueing into Photon stuff (which should will probably get its own section in future meetings?).

Search

  • Phase 1 of the hi-res favicons work should land before the next meeting.
  • The last big issue with one-off search buttons in the awesomebar is very close to landing.
  • Various miscellaneous fixes for the search and location bars.

Sync / Firefox Accounts

  • Fixes:
    • Sync will discard folder child order if the local timestamp is newer than the remote. This shows up most frequently on first syncs.
    • First sync for passwords was broken in Aurora and Nightly.
  • Push-driven sign-in confirmation is coming! Design doc in progress; should have more updates in the next meeting.
  • If you’re curious…

Storage Management

  • [fischer] The project target due date is 4/17.
  • [fischer] The implementations are almost done. The remained 3 bugs are expected to be resolved before the target 4/17.
  • [fischer] Bug 1312349: Hide the section of Offline Web Content and User Data in about:preferences
    • Because the Storage management handles appcache as well, after the Storage management completes, the Offline(Appcache) group will be hidden.
    • The pref to control hide the Offline group is browser.preferences.offlinegroup.enabled

Test Pilot

  • We are trying to track down some performance issues with the Test Pilot addon (“Test Pilot is making FF run slowly”). Any advice is welcome, ping fzzzy in #testpilot
  • First ever Test Pilot QA community event happened in Bangladesh last week!
    • Volunteers installed Test Pilot & did some manual testing of the Test Pilot addon and experiment addons
    • Event page
    • Tweets and photos of the event!

Here are the raw meeting notes that were used to derive this list.

Want to help us build Firefox? Get started here!

Here’s a tool to find some mentored, good first bugs to hack on.

10 Apr 05:52

The Arrival of Artificial Intelligence

by Ben Thompson

Chris Dixon opened a truly wonderful piece in the Atlantic entitled How Aristotle Created the Computer like this:

The history of computers is often told as a history of objects, from the abacus to the Babbage engine up through the code-breaking machines of World War II. In fact, it is better understood as a history of ideas, mainly ideas that emerged from mathematical logic, an obscure and cult-like discipline that first developed in the 19th century. Mathematical logic was pioneered by philosopher-mathematicians, most notably George Boole and Gottlob Frege, who were themselves inspired by Leibniz’s dream of a universal “concept language,” and the ancient logical system of Aristotle.

Dixon goes on to describe the creation of Boolean logic (which has only two values: TRUE and FALSE, represented as 1 and 0 respectively), and the insight by Claude E. Shannon that those two variables could be represented by a circuit, which itself has only two states: open and closed.1 Dixon writes:

Another way to characterize Shannon’s achievement is that he was first to distinguish between the logical and the physical layer of computers. (This distinction has become so fundamental to computer science that it might seem surprising to modern readers how insightful it was at the time—a reminder of the adage that “the philosophy of one century is the common sense of the next.”)

Dixon is being modest: the distinction may be obvious to computer scientists, but it is precisely the clear articulation of said distinction that undergirds Dixon’s remarkable essay; obviously “computers” as popularly conceptualized were not invented by Aristotle, but he created the means by which they would work (or, more accurately, set humanity down that path).

Moreover, you could characterize Shannon’s insight in the opposite direction: distinguishing the logical and the physical layers depends on the realization that they can be two pieces of a whole. That is, Shannon identified how the logical and the physical could be fused into what we now know as a computer.

To that end, the dramatic improvement in the physical design of circuits (first and foremost the invention of the transistor and the subsequent application of Moore’s Law) by definition meant a dramatic increase in the speed with which logic could be applied. Or, to put it in human terms, how quickly computers could think.

50 Years of AI

Earlier this week U.S. Treasury Secretary Steve Mnuchin, in the words of Dan Primack, “breezily dismissed the notion that AI and machine learning will soon replace wide swathes of workers, saying that ‘it’s not even on our radar screen’ because it’s an issue that is ’50 or 100 years’ away.”

Naturally most of the tech industry was aghast: doesn’t Mnuchin read the seemingly endless announcement of artificial intelligence initiatives and startups on Techcrunch?

Then again, maybe Mnuchin’s view makes more sense than you might think; just read this piece by Maureen Dowd in Vanity Fair entitled Elon Musk’s Billion-Dollar Crusade to Stop the A.I. Apocalypse:

In a startling public reproach to his friends and fellow techies, Musk warned that they could be creating the means of their own destruction. He told Bloomberg’s Ashlee Vance, the author of the biography Elon Musk, that he was afraid that his friend Larry Page, a co-founder of Google and now the C.E.O. of its parent company, Alphabet, could have perfectly good intentions but still “produce something evil by accident”—including, possibly, “a fleet of artificial intelligence-enhanced robots capable of destroying mankind.”

The rest of the article is pre-occupied with the question of what might happen if computers are smarter than humans; Dowd quotes Stuart Russell to explain why she is documenting the debate now:

“In 50 years, this 18-month period we’re in now will be seen as being crucial for the future of the A.I. community,” Russell told me. “It’s when the A.I. community finally woke up and took itself seriously and thought about what to do to make the future better.”

50 years: that’s the same timeline as Mnuchin; perhaps he is worried about the same things as Elon Musk? And, frankly, should the Treasury Secretary concern himself with such things?

The problem is obvious: it’s not clear what “artificial intelligence” means.

Defining Artificial Intelligence

Artificial intelligence is very difficult to define for a few reasons. First, there are two types of artificial intelligence: the artificial intelligence described in that Vanity Fair article is Artificial General Intelligence, that is, a computer capable of doing anything a human can. That is in contrast to Artificial Narrow Intelligence, in which a computer does what a human can do, but only within narrow bounds. For example, specialized AI can play chess, while a different specialized AI can play Go.

What is kind of amusing — and telling — is that as John McCarthy, who invented the name “Artificial Intelligence”, noted, the definition of specialized AI is changing all of the time. Specifically, once a task formerly thought to characterize artificial intelligence becomes routine — like the aforementioned chess-playing, or Go, or a myriad of other taken-for-granted computer abilities — we no longer call it artificial intelligence.

That makes it especially hard to tell where computers end and artificial intelligence begins. After all, accounting used to be done by hand:

3753191500_c28898135a_o

Within a decade this picture was obsolete, replaced by an IBM mainframe. A computer was doing what a human could do, albeit within narrow bounds. Was it artificial intelligence?

Technology and Humanity

In fact, we already have a better word for this kind of innovation: technology. Technology, to use Merriam-Webster’s definition, is “the practical application of knowledge especially in a particular area.” The story of technology is the story of humanity: the ability to control fire, the wheel, clubs for fighting — all are technology. All transformed the human race, thanks to our ability to learn and transmit knowledge; once one human could control fire, it was only a matter of time until all humans could.

It is technology that transformed homo sapiens from hunter-gatherers to farmers, and it was technology that transformed farming such that an ever smaller percentage of the population could support the rest. Many millennia later, it was technology that led to the creation of tools like the flying shuttle, which doubled the output of weavers, driving up the demand for spinners, which drove its own innovation like the roller spinning frame, powered by water. For the first time humans were leveraging non-human and non-animal forms of energy to drive their technological inventions, setting off the industrial revolution.

You can see the parallels between the industrial revolution and the invention of the computer: the former brought external energy to bear in a systematic way on physical activities formerly done by humans; the latter brings external energy to bear in a systematic way on mental activities formerly done by humans. Recall the analogy made by Steve Jobs:

I remember reading an article when I was about 12 years old, I think it might have been in Scientific American, where they measured the efficiency of locomotion for all these species on planet Earth, how many kilocalories did they expend to get from point A to point B. And the condor came in at the top of the list, it surpassed everything else, and humans came in about a third of the way down the list, which was not such a great showing for the crown of creation.

But somebody there had the imagination to test the efficiency of a human riding a bicycle. The human riding a bicycle blew away the condor, all the way off the top of the list, and it it made a really big impression on me that we humans are tool builders, and we can fashion tools that amplify these inherent abilities that we have to spectacular magnitudes. And so for me, a computer has always been a bicycle of the mind.

In short, while Dixon traced the logic of computers back to Aristotle, the very idea of technology — of which, without question, computers are a part — goes back even further. Creating tools that do what we could do ourselves, but better and more efficiently, is what makes us human.

Machine Learning

That definition, you’ll note, is remarkably similar to that of artificial intelligence; indeed, it’s tempting to argue that artificial intelligence, at least the narrow variety, is simply technology by a different name. Just as we designed the cotton gin, so we designed accounting software, and automated manufacturing. And, in fact, those are all related: all involved overt design, in which a human anticipated the functionality and built a machine that could execute that functionality on a repeatable basis.

That, though, is why today is different.

Recall that while logic was developed over thousands of years, it was only part way through the 20th century that said logic was fused with physical circuits. Once that happened the application of that logic progressed unbelievably quickly.

Technology, meanwhile, has been developed even longer than logic has. However, just as the application of logic was long bound by the human mind, the development of technology has had the same limitations, and that includes the first half-century of the computer era. Accounting software is in the same genre as the spinning frame: deliberately designed by humans to solve a specific problem.

Machine learning is different.2 Now, instead of humans designing algorithms to be executed by a computer, the computer is designing the algorithms.3 It is still Artificial Narrow Intelligence — the computer is bound by the data and goal given to it by humans — but machine learning is, in my mind, meaningfully different from what has come before. Just as Shannon fused the physical with the logical to make the computer, machine learning fuses the development of tools with computers themselves to make (narrow) artificial intelligence.

This is not to overhype machine learning: the applications are still highly bound and often worse than human-designed systems, and we are far, far away from Artificial General Intelligence. It seems clear to me, though, that we are firmly in Artificial Narrow Intelligence territory: the truth is that humans have made machines to replace their own labor from the beginning of time; it is only now that the machines are creating themselves, at least to a degree.4

Life and Meaning

The reason this matters is that pure technology is hard enough to manage: the price we pay for technology progress is all of the humans that are no longer necessary. The Industrial Revolution benefitted humanity in the long run, but in the short run there was tremendous suffering, interspersed with wars that were far more destructive thanks to technology.

What then are the implications of machine learning, that is, the (relatively speaking) fantastically fast creation of algorithms that can replace a huge number of jobs that generate data (data being the key ingredient to creating said algorithms)? To date automation has displaced blue collar workers; are we prepared for machine learning to displace huge numbers of white collar ones?

This is why Mnuchin’s comment was so disturbing; it also, though, is why the obsession of so many technologists with Artificial General Intelligence is just as frustrating. I get the worry that computers far more intelligent than any human will kill us all; more, though, should be concerned about the imminent creation of a world that makes huge swathes of people redundant. How many will care if artificial intelligence destroys life if it has already destroyed meaning?

  1. This is only Part 1! Definitely read the whole thing
  2. Not, to be clear, re-named analytics software
  3. Albeit guided by human-devised algorithms
  4. And, by extension, there is at least a plausible path to general intelligence
10 Apr 05:52

Apple Is Pushing iPad Like Never Before

by Neil Cybart

Apple is pulling out all the stops when it comes to selling iPad. We are seeing the company take its most aggressive stance yet in getting existing iPad owners to upgrade. For the first time, Apple is also making a concerted effort to reach prospective iPad owners by targeting PC users. On the surface, these efforts seem like a last ditch effort to save iPad, which faces continued sales declines. However, Apple is guided by a different motive. There are signs of Apple pushing iPad like never before in order to solve its growing Mac dilemma.

Initial Look at iPad Sales

A quick look at overall iPad sales reveals an ominous trend. Sales have declined for 12 consecutive quarters. After topping out 74M units in 1Q14, the annualized iPad sales rate has declined by 42% to 43M units.

Exhibit 1: iPad Unit Sales (TTM)

When iPad is compared to iPhone and Mac, its sales weakness becomes even more pronounced. The sales gap between iPad and Mac continues to shrink. This has drawn into question Apple's vision for iPad and whether or not the device is the best representation of the future of personal computing. There are even people beginning to question some aspects of the post-PC era as steady Mac sales suggest consumers aren't moving away from laptops and desktops. 

Exhibit 2: iPhone, iPad, Mac Unit Sales (TTM)

For the past four years, we have seen various theories put forth to explain the significant drop in iPad sales. Longer upgrade cycles, larger iPhones, inferior software, lack of professional apps, and even poor Apple storytelling have been given as factors driving iPad sales weakness. 

iPad Strategy Changes

As sales have declined, Apple has implemented a number of significant changes in its iPad strategy. Many of these changes have occurred within the past year and a half. The latest changes were unveiled last week when Apple announced the new 9.7-inch iPad. (My complete review of Apple's new product announcements is available for members here.)

iPad Pro. The most obvious change relates to the iPad Pro line. The defining features of the iPad Pro are the Apple Pencil and Smart Keyboard support, which were introduced in 2015. One of the biggest criticisms facing the iPad over the past few years is that it is a consumption device used primarily for watching video. The iPad Pro seeks to change that narrative. The overall strategy with the iPad Pro is to release higher-priced SKUs offering additional functionality and capability.

Additional Simplicity. The iPad Air era is officially over at Apple. By positioning the new 9.7-inch iPad as the iPad Air 2 successor, the overall iPad line is much simpler. In fact, the iPad line contains the most simplicity in years. The "iPad Air" nomenclature had lost much of its meaning last year following the 9.7-inch iPad Pro unveiling as each device shared similar dimensions and identical weight. 

As seen below, Apple reduced the iPad line by 20% (five models down to four) and simplified the branding. 

   

By removing the iPad Air from the line, Apple made the iPad buying equation that much easier for consumers. This simplicity is a sign of Apple doubling down on the 9.7-inch iPad as the flagship iPad size. (The actual screen size may change slightly going forward depending on the screen to bezel ratio.) The choice is either between an iPad Pro or an iPad. Meanwhile, the iPad mini will become niche, available for consumers wanting an iPad with a smaller footprint.

Aggressive Pricing. Apple slashed the entry-level price for the 9.7-inch iPad to $329 from $399. Special $299 pricing for education institutions is also available. This is an aggressive pricing strategy considering that Apple was selling the 9.7-inch iPad Air 2 for $499 as recently as 12 months ago. The iPad mini had represented the entry-level iPad model when it came to pricing. Since the company is now positioning the smaller iPad as a niche device, the new distinction comes with a higher price.

Clearer Storytelling. Apple recently launched its largest iPad ad campaign to date. In what is called "Real Problems... answered," Apple showcases real tweets depicting computing problems and then demonstrates how the iPad Pro offers solutions. The ad campaign is a big deal for Apple and a sign of management directly reaching out to PC users as potential iPad purchasers. The company has been quite aggressive with its airing of the ads in recent weeks. 

  

One of the more interesting observations about the ads is how they end up making long-time MacBook users nervous. Apple is positioning iPad Pro as a better computer than laptops, and by extension, MacBooks.

Closer Look at iPad Sales

In order to properly assess all of the recent changes to iPad strategy, a closer look at sales is needed. While overall iPad sales have been in decline for years, reports of iPad's death have been greatly exaggerated. There is much more going on behind the scenes.

iPad sales have faced one major headwind in recent years. This item explains a significant portion of the sales decline. It's not inferior software, weak storytelling, or even a longer upgrade cycle. Instead, the iPad's problem has been the iPad mini.

People aren't buying as many iPad mini devices these days. Excluding 7.9-inch iPad mini sales from overall iPad sales results in a completely different sales picture. As seen in Exhibit 3, iPad mini unit sales have declined 70% after peaking in 4Q13 and 1Q14. The product's value proposition has been permanently reduced due to larger iPhones. Apple has clearly experienced Peak iPad Mini. It's not that the iPad mini form factor is going away, but rather that it will play a smaller role going forward. 

iPad mini sales weakness has masked stronger sales trends for larger iPads. In what will come as a surprise to many, the iPad Air 2 has been the best-selling iPad to date. In addition, more than half of people buying an iPad Air 2 were new to iPad. These are very promising signs for the iPad business. Not only are large screen (9.7-inch and 12.9-inch) iPad sales relatively unchanged over the past four years, but they actually have increased year-over-year this past holiday quarter. The iPad Pro line played a major role in this sales rebound. 

Exhibit 3: iPad Unit Sales by Screen Size (TTM)

Given iPad mini sales weakness, management is placing a big bet on larger iPad screens. By lowering the entry-level cost of the 9.7-inch model to $329, Apple is looking to make the most appealing iPad size more accessible. At the same time, the company is offsetting margin and ASP pressure by moving up market with more capable iPad Pro SKUs and accessories. The Apple Pencil accessory is one of the most underrated Apple products in years. 

Solving the Mac Dilemma

Since large screen iPads having shown much more resiliency over the past few years, Apple's recent iPad changes seem peculiar. Why double down on the iPad now?

Apple is pushing the iPad like never before in order to solve its Mac dilemma.

Ultimately, management has two options for the Mac:

  1. Double down. From a product perspective, there is a clear path forward for the laptop and desktop form factors at Apple. The company could continue bringing elements of mobile to the Mac. Apple can control more of the core technologies powering the Mac, and this would include bringing a version of iOS to the laptop and desktop form factors. The effort would take years to accomplish and utilize a significant amount of resources. 
  2. Move beyond the Mac. This option would begin with more sporadic updates to the Mac line and then eventually lead to Apple placing less and less attention on the category as other products gain priority and resources. While Apple would still sell Macs, it would become clear that the company's focus is on newer products designed to handle the tasks currently given to the Mac.

Management faces a difficult choice between the two options as the Mac is still selling very well. The product category is bringing in nearly $23B of revenue per year, $4B more than iPad thanks to a much higher ASP. Some companies are powered by Macs (although Apple executives seem to rely quite a bit on their iPads these days). Tens of millions of users rely on Macs to get work done every day. A portion of these users are adamant that a move away from Mac is nearly impossible given their current workflows.

My suspicion is that Apple is pushing larger screen iPads because management is determined to move beyond the Mac. Apple thinks now is the time to raise awareness that the iPad is a legitimate PC alternative for hundreds of millions of consumers. 

A move away from the Mac goes against much of the public commentary from Apple management. Tim Cook, Phil Schiller, and others have been quick to mention Apple's long-term commitment to the Mac with Phil Schiller even saying the laptop form factor will be around for another 25 years. However, management's recent actions speak louder:

  • Tim Cook calling the iPad the clearest expression of Apple's vision of the future of personal computing.
  • The new iPad Pro ad campaign elevating the iPad at the expense of Mac.
  • Aggressive iPad pricing highlighting Apple's desire to position the device for mass market consumption, while Mac pricing is more reflective of a niche product.

The iPad Strategy

As seen in Exhibit 4, the sales gap between large screen iPads and Mac peaked five years ago. The gap has since closed, with large screen iPad sales bouncing around 30M units annually and Mac sales seeing a slight improvement to 19M units. If Mac were to outsell iPad, this would certainly make Apple's goal in moving beyond the Mac that much more difficult. It would demonstrate how Apple has a serious problem on its hand as the iPad is not able to entice users away from Mac. Management is interested in avoiding that outcome.

Apple wants to push iPad sales now like never before in order to widen the sales gap between iPad and Mac. Large screen iPads have experienced some momentum in recent months. Management is building off that strength to unveil a broader campaign to boost iPad sales. If Apple is successful in increasing large screen iPad sales to a 40M unit sales annual pace (a 30% increase from current levels), iPad would be outselling Mac by 2x. This would certainly help change the iPad versus Mac narrative in the marketplace, giving Apple that much more motivation to dedicate attention and resources to other products. 

Exhibit 4: Mac, Large Screen iPad Unit Sales (TTM)

Apple is making its iPad sales pitch to two groups: existing iPad users and long-time PC users. According to my estimates, there are 100M users still using older iPads (iPad 1, iPad 2, iPad 3, iPad 4, iPad mini). A significant portion of these users are using devices that don't even support the latest iOS release. Management thinks simpler storytelling and an aggressively low $329 price will entice these users to upgrade to the new 9.7-inch iPad.

The fact that 100M people are still using older iPads demonstrates that the product provides value. Apple is also confident that users will see the significant improvement between the latest iPads and models from five to seven years ago. As for PC users, Apple thinks the iPad Pro line is capable of handling the vast majority of tasks currently given to laptops. Apple looks at the iPad Pro line, which includes Apple Pencil and Smart Keyboard, as a better solution for consumers than even the Mac. This is quite telling as to management's long-term motivation. 

While the iPhone has likely reduced the iPad's long-term sales trajectory, the iPad category is being underestimated. Apple thinks that now is the time to become much more aggressive in selling iPad. Fortunately, we will be able to judge Apple's progress by monitoring quarterly iPad sales. With a dramatic price cut, simpler sales pitch, reduced headwind from iPad mini sales, and a differentiated product line, Apple is confident the iPad will return to growth. A growing iPad business will then make it that much easier for Apple to move beyond the Mac and focus on creating a new breed of personal gadgets that make technology more personal. 

Receive my analysis and perspective on Apple throughout the week via exclusive daily emails (2-3 stories a day, 10-12 stories a week). To sign up, visit the membership page.

10 Apr 05:52

Yeah Missoula!!! Check out this great pic in th...

by jared madsen

Yeah Missoula!!! Check out this great pic in the Missoulian at missoulian.com.

http://missoulian.com/news/local/baby-in-a-basket-in-bonner-park/article_3d959bbe-f12f-5173-bc65-7fced721167f.html

image from http://bloximages.chicago2.vip.townnews.com/missoulian.com/content/tncms/assets/v3/editorial/9/bd/9bda6f4b-2507-593d-af59-84c3f6438cc0/58dadf0157ef6.image.jpg?resize=1200%2C911

10 Apr 05:51

Working Through A Problem Manually

by Eugene Wallingford

This week, I have been enjoying Eli Bendersky's two-article series "Adventures in JIT Compilation":

Next I'll follow his suggestion and read the shorter How to JIT - An Introduction.

Bendersky is a good teacher, at least in the written form, and I am picking up a lot of ideas for my courses in programming languages and compilers. I recommend his articles and his code highly.

In Part 2, Bendersky says something that made me think of my students:

One of my guiding principles through the field of programming is that before diving into the possible solutions for a problem (for example, some library for doing X) it's worth working through the problem manually first (doing X by hand, without libraries). Grinding your teeth over issues for a while is the best way to appreciate what the shrinkwrapped solution/library does for you.

The presence or absence of this attitude is one of the crucial separators among CS students. Some students come into the program with this mindset already in place, and they are often the ones who advance most quickly in the early courses. Other students don't have this mindset, either by interest or by temperament. They prefer to solve problems quickly using canned libraries and simple patterns. These students are often quite productive, but they sometimes soon hit a wall in their learning. When a student rides along the surface of what they are told in class, never digging deeper, they tend to have a shallow knowledge of how things work in their own programs. Again, this can lead to a high level of productivity, but it also produces brittle knowledge. When something changes, or the material gets more difficult, they begin to struggle. A few of the students eventually develop new habits and move nicely into the group of students who likes to grind. The ones who don't make the transition continue to struggle and begin to enjoy their courses less.

There is a rather wide variation among undergrad CS students, both in their goals and in their preferred styles or working and learning. This variation is one of the challenges facing profs who hope to reaching the full spectrum of students in their classes. And helping students to develop new attitudes toward learning and doing is always a challenge.

10 Apr 05:51

New Web Features in Safari 10.1

by Jon Davis

A new version of Safari shipped with the release of iOS 10.3 and macOS Sierra 10.12.4. Safari on iOS 10.3 and Safari 10.1 on macOS adds many important web features and improvements from WebKit that we are incredibly excited about.

While this release makes the web platform more capable and powerful, it also makes web development easier, simplifying the ongoing maintenance of your code. We’re excited to see how web developers will translate these improvements into better experiences for users.

Read on for quick look at the features included in this release.

Fetch

Fetch is a modern replacement for XMLHttpRequest. It provides a simpler approach to request resources asynchronously over the network. It also makes use of Promises from ECMAScript 2015 (ES6) for convenient, chain-able response handling. Compared to XMLHttpRequest, the Fetch API allows for cleaner, more readable code that is easier to maintain.

let jsonURLEndpoint = "https://svn.webkit.org/repository/webkit/trunk/Source/WebCore/features.json";
fetch(jsonURLEndpoint, {
    method: "get"
}).then(function(response) {
    response.json().then(function(json) {
        console.log(json);
    });
}).catch(function(error) {
    console.error(error);
});

Find out more in the blog post, A Few Words On Fetching Bytes.

CSS Grid Layout

CSS Grid Layout gives web authors a powerful new layout system based on a grid of columns and rows in a container. It is a significant step forward in providing manageable page layout tools in CSS that enable complex graphic designs that respond to viewport changes. Authors can use CSS Grid Layout to more easily achieve designs normally seen in print, that before required the use of layout quirks in existing CSS tools like floats and Flexbox.

Read more in the blog post, CSS Grid Layout: A New Layout Module for the Web.

ECMAScript 2016 & ECMAScript 2017

WebKit added support in Safari 10.1 for both ECMAScript 2016 and ECMAScript 2017, the latest standards revisions for the JavaScript language. ECMAScript 2016 adds small incremental improvements, but the 2017 standard brings several substantial improvements to JavaScript.

ECMAScript 2016 includes the exponentiation operator (x ** y instead of Math.pow(x, y)) and Array.prototype.includes. Array.prototype.includes is similar to Array.prototype.indexOf, except it can find values including NaN.

ECMAScript 2017 brings async and await syntax, shared memory objects including Atomics and Shared Array Buffers, String.prototype.padStart, String.prototype.padEnd, Object.prototype.values, Object.prototype.entries, and allows trailing commas in function parameter lists and calls.

IndexedDB 2.0

WebKit’s IndexedDB implementation has significant improvements in this release. It’s now faster, standards compliant, and supports new IndexedDB 2.0 features. IndexedDB 2.0 adds support for binary data types as index keys, so you’ll no longer need to serialize them into strings or array objects. It also brings object store and index renaming, getKey() on IDBObjectStore, and getPrimaryKey() on IDBIndex.

Find out more in the Indexed Database API 2.0 specification.

Custom Elements

Custom Elements enables web authors to create reusable components defined by their own HTML elements without the dependency of a JavaScript framework. Like built-in elements, Custom Elements can communicate and receive new values in their attributes, and respond to changes in attribute values using reaction callbacks.

For more information, read the Introducing Custom Elements blog post.

Gamepad

The Gamepad API makes it possible to use game controllers in your web apps. Any gamepad that works on macOS without additional drivers will work on a Mac. All MFi gamepads are supported on iOS.

Read more about the API in the Gamepad specifications.

Pointer Lock

In Safari on macOS, requesting Pointer Lock on an element gives developers the ability to hide the mouse pointer and access the raw mouse movement data. This is particularly helpful for authors creating games on the web. It extends the MouseEvents interface with movementX and movementY properties to provide a stream of information even when the movements are beyond the boundaries of the visible range. In Safari, when the pointer is locked on an element, a banner is displayed notifying the user that the mouse cursor is hidden. Pressing the Escape key once dismisses the banner, and pressing the Escape key again will release the pointer lock on the element.

You can get more information from the Pointer Lock specifications.

Keyboard Input in Fullscreen

WebKit used to restrict keyboard input in HTML5 fullscreen mode. With Safari 10.1 on macOS, when using HTML5 fullscreen mode, WebKit removes the keyboard input restrictions.

Interactive Form Validation

With support for HTML Interactive Form Validation, authors can create forms with data validation contraints that are checked automatically by the browser when the form is submitted, all without the need for JavaScript. It greatly simplifies the complexity of ensuring good data entry from users on the client-side and minimizes the need for complex JavaScript.

Read more about HTML Interactive Form Validation in WebKit.

Input Events

Input Events simplifies implementing rich text editing experiences on the web in contenteditable regions. The Input Events API adds a new beforeinput event to monitor and intercept default editing behaviors and enhances the input event with new attributes.

You can read more about Enhanced Editing with Input Events.

HTML5 Download Attribute

The download attribute for anchor elements is now available in Safari 10.1 on macOS. It indicates the link target is a download link that should download a file instead of navigating to the linked resource. It also enables developers to create a link that downloads blob data as files entirely from JavaScript. Clicking a link with a download attribute causes the target resource to be downloaded as a file. The optional value of the download attribute can be used to provide a suggested name for the file.

<a href="https://webkit.org/favicon.ico" download="webkit-favicon.ico">Download Favicon</a>

Find out more from the Downloading resources section in the HTML specification.

HTML Media Capture

In Safari on iOS, HTML Media Capture extends file input controls in forms to allow users to use the camera or microphone on the device to capture data.

File inputs can be used to capture an image, video, or audio:

<input name="imageCapture" type="file" accept="image/*" capture>
<input name="videoCapture" type="file" accept="video/*" capture>
<input name="audioCapture" type="file" accept="audio/*" capture>

More details are available in the HTML Media Capture specification.

Improved Fixed and Sticky Element Positioning

When using pinch-to-zoom, fixed and sticky element positioning has improved behavior using a “visual viewports” approach. Using the visual viewports model, focusing an input field that triggers the on-screen keyboard no longer disables fixed and sticky positioning in Safari on iOS.

Improved Web Inspector Debugging

The WebKit team added support for debugging Web Worker JavaScript threads in Web Inspector’s Debugger tab. There are also improvements to debugger stepping with highlights for the currently-executing and about-to-execute statements. The highlights make it much clearer what code is going to execute during debugging, especially for JavaScript with complex control flow or many expressions on a single line.

Learn more about JavaScript Debugging Improvements in Web Inspector.

CSS Wide-Gamut Colors

Modern devices support a broader range of colors. Now, web authors can use CSS colors in wide-gamut color spaces, including the Display P3 color space. A new color-gamut media query can be used to test if the display is capable of displaying a given color space. Then, using the new CSS color() function, developers can define a color in a specific color space.

@media (color-gamut:p3) {
    .brightred {
        color: color(display-p3 1.0 0 0);
    }
}

For more information, see the CSS Color Module Level 4 standards specification.

Reduced Motion Media Query

The new prefers-reduced-motion media query allows developers using animation to make accommodations for users with conditions where large areas of motion or drastic movements can trigger physical discomfort. With prefers-reduced-motion, authors can create styles that avoid motion for users that set the reduced motion preference in system settings.

@keyframes decorativeMotion {
    /* Keyframes for a decorative animation */
}

.background {
    animation: decorativeMotion 10s infinite alternate;
}

@media (prefers-reduced-motion) {
    .background {
        animation: none;
    }
}

Read more about Responsive Design for Motion.

Feedback

We’re looking forward to what developers will do with these features to make better experiences for users. These improvements are available to users running iOS 10.3 and macOS Sierra 10.12.4, as well as Safari 10.1 for OS X Yosemite and OS X El Capitan.

Most of these features were also previewed in Safari Technology Preview over the last few months. The changes included in this release of Safari span Safari Technology Preview releases 14, 15, 16, 17, 18, 19, and 20. You can download the latest Safari Technology Preview release to stay on the forefront of future web features.

Finally, we’d love to hear from you! Send a tweet to @webkit or @jonathandavis and let us know which of these features will have the most impact on your design or development work on the web.

10 Apr 05:51

Cars and second order consequences

by Benedict Evans

There are two foundational technology changes rolling through the car industry at the moment; electric and autonomy. Electric is happening right now, largely as a consequence of falling battery prices, while autonomy, or at least full autonomy, is a bit further off - perhaps 5-10 years, depending on how fast some pretty hard computer science problems get solved. Both of these will cycle into essentially the entire global stock of (today) around 1.1bn cars over a period of decades, subject to all sorts of variables, and both of them completely remake the car industry and its suppliers, as well as parts of the tech industry. 

Both electric and autonomy have profound consequences beyond the car industry itself. Half of global oil production today goes to gasoline, and removing that demand will have geopolitical as well as industrial consequences. Over a million people are killed in car accidents every year around the world, mostly due to human error, and in a fully autonomous world all of those (and many more injuries) will also go away. 

However, it's also useful, and perhaps more challenging, to think about second and third order consequences. Moving to electric means much more than replacing the gas tank with a battery, and moving to autonomy means much more than ending accidents. Quite what those consequences would be is much harder to predict: as the saying goes, it was easy to predict mass car ownership but hard to predict Wal-mart, and the broader consequences of the move to electric and autonomy will come in some very widely-spread industries, in complex interlocked ways. Still, we can at least point to where some of the changes might come. I can't tell you what will happen to car repairs, commercial real-estate or buses - I'm not an expert on any of those, and neither can anyone who is - but I can suggest that something will happen, and probably something big. Hence, this post is not a description of what will happen, but of where it might, and why, with some links to further reading. 

Electric

Moving to electric reduces the number of moving parts in a car by something like an order of magnitude. It's less about replacing the fuel tank with a battery than ripping out the spine. That remakes the car industry and its supplier base (as well as related industries such as machine tools), but it also changes the repair environment, and the life of a vehicle. Roughly half of US spending on car maintenance goes on things that are directly attributable to the internal combustion engine, and much of that spending will just go away. In the longer term, this change might affect the lifespan of a vehicle: in an on-demand world vehicles would have higher loading, but absent that, fewer mechanical breakages (and fewer or no accidents) might mean a longer replacement cycle, once the rate of technology implementation settles down. 

BLS car maintenance statistics, Automotive service employment

Next, gas itself is bought in gas stations, of which there are about 150k in the USA. Those will also go away (unless there are radical changes in how long it takes to charge an EV). Since gas is sold at very low margins, these retailers make their actual money as convenience stores, so what happens to the products that are sold there? Some of this demand will be displaced to other retailers, and some may be going online anyway (especially if an Amazon drone can get you a bag of Cheesy Puffs in 15 minutes). But snacks, sodas and tobacco sell meaningful proportions of their total volume as impulse purchases attached to gasoline. Some of that volume might just go away. 

Tobacco in particular might be interesting - well over half of US tobacco sales happens at gas stations, and there are meaningful indications that removing distribution reduces consumption - that cigarettes are often an impulse purchase and if they're not in front of you then many smokers are less likely to buy them. Car crashes kill 35k people a year in the USA, but tobacco kills 500k. 

CDC on smoking deaths, Availability changes demand, gas station tobacco sales

Gasoline is taxed, much less in the USA than in many other developed markets: it is 4% of UK tax revenue, for example. That tax revenue will have to be replaced, with other taxes on things that may be more elastic, and there will be economic and political consequences to that. In the USA, for example, highways are funded partly from gas taxes that have not risen to match inflation since 1993 - if just keeping it flat in real terms was politically impossible, how hard will it be to take that revenue from some other part of the economy? 

Conversely, in many places (especially emerging markets) fuel is subsidised by the state - coal, gasoline and kerosene (for light and heat - see for example kerosene subsidies in India). EVs on one hand and solar on the other may change this as well. 

IMF on energy subsides, UK tax revenue, US gas taxes, World Bank on global gas taxes

Meanwhile, of course, we will still actually need to charge our EVs. Most estimates suggest that charging a fully electric fleet would lead to 10-20% more electricity demand. However, a lot depends on when they're charged: if they're charged off-peak this might not need more total generating capacity, though it would still change output and perhaps local distribution. The carbon impact of shifting electricity generation in this way is pretty complex (for example, over 75% of French electricity generation today comes from nuclear power), but in principle at least some grid generation almost always now comes from renewables. 

More speculatively (and this is part of Elon Musk's vision), it is possible that we might all have large batteries in the home, storing off-peak power both to charge our cars and power our homes. Part of the aim here would be to push up battery volume and so lower their cost for both home storage and cars. If we all have such batteries then this could affect the current model of building power generation capacity for peak demand, since you could complement power stations with meaningful amounts of stored power for the first time. 

Summary of EV power generation research, UK government study on options for charging infrastructure

Autonomy

The really obvious consequence of autonomy is a near-elimination in accidents, which kill over 1m people globally every year. In the USA in 2015, there were 13m collisions of which 1.7m caused injuries; 2.4m people were injured and 35k people were killed. Something over 90% of all accidents are now caused by driver error, and a third of fatal accidents in the USA involved alcohol. Looking beyond deaths and injuries themselves, there is also a huge economic effect to these accidents: the US government estimates a cost of $240bn a year across property damage itself, medical and emergency services, legal, lost work and congestion (for comparison, US car sales in 2016 were around $600bn). A similar UK analysis found a cost of £30bn, which is roughly equivalent adjusted for the population. This then comes from government (and so taxes), insurance and individual pockets. It also means jobs, of course. 

Even simple 'Level 3' systems would cut many kinds of accident, and as more vehicles with more sophisticated systems, moving up to Level 5, cycle into the installed base over time, the collision rate will drop continuously. There should be an analogue of the 'herd immunity' effect - even if your car is still hand-driven, my automatic car is still much less likely to collide with you. This also means that cycling would become much safer (though you'd still need to live close enough to where you wanted to go), and that in turn has implications for public health. You might never get to zero accidents - the deer running in front of a car might still get hit sometimes -  but you might get pretty close. 

US crash statistics, Effects of auto-braking, US economic impact of crashes, UK accident costsanalysis of pedestrian deaths, effect of L3 on crashes, cycling potential in London

That, in turn, has consequences for vehicle design - if you have no collisions then eventually you can remove many of the safety features in today's vehicles, all of which add cost and weight and constrain the overall design - no more airbags or crumple zones, perhaps. A decade ago the NHTSA estimated that the safety measures that it mandates collectively added $839 (in 2002 dollars so $1,136 now) and 125 pounds of weight, which was 4% of both average cost and average weight - this is probably a lower bound. That, of course, presumes that there are no other changes to the design as a result of removing the human controls - which is like removing the reins from a horseless carriage and thinking nothing else will change. 

NHTSA on the costs of safety measures

What else, though?

As more and more cars are driven by computer, they can drive in different ways. They don't suffer from traffic waves, they don't need to stop for traffic signals and they can platoon -  they can safely drive 2 feet apart at 80 mph. There is a whole range of human behaviors that reduce road capacity, especially on freeways: it's not just that people make mistakes, but that computers can drive in totally different ways to even a perfect human driver. The video below illustrates one of these issues, familiar to anyone who's been stuck in a traffic jam on a highway and got to the front to find no apparent cause - human behaviour causes traffic waves, which cause 'phantom jams'. Computers wouldn't do this, and if they did, we could stop them. 

A full autonomous road system changes traffic less from fluid dynamics than from circuit-switched to packet-switched, or, more precisely, from TDMA to CDMA. No lanes, no separation, no stopping distances, and no signals, (except of course for pedestrians to cross), means profoundly different traffic patterns. 

Clearly, all of this will have some effect on congestion and road capacity. Accidents themselves cause as much as a third of congestion (estimates vary a fair bit and depend whether you're talking about highways or city centres), even if there are no changes from different driving behavior. How much changes over all, though - how much more traffic can a highway hold? How much more quickly do you get to school in the morning if you drive at the same speed but don't have to stop at every stop sign just in case there's someone there? We'll find out. 

OECD on causes of congestion, phantom jams, transport in London (congestion on page 170)

However, the impact of autonomy on traffic and congestion is more complex than just making driving itself more efficient. Though automatic driving should increase capacity, we have known for a long time that increased capacity induces more demand - more capacity means more traffic. If you reduce congestion, then more people will drive, either taking new trips or switching from public transport, and congestion might rise back to where you started. Conversely, removing capacity can actually result in less congestion (and there's more complexity here too - for example, Braess' paradox). So, autonomous driving gives us more capacity, and in a sense it does so for free, since we don't have to build roads, just wait for everyone to buy new cars, but it also gives us more use. 

Parking is another way that autonomy will add both capacity and demand. If a car does not have to wait for you in walking distance, where else might it wait, and is that more efficient? Does that enable better land use, better traffic routing and more or less congestion? And, in parallel, everything that you do to make traffic, driving and now also parking more efficient tends to generate more demand.

So, the current parking model is clearly a source of congestion: some studies suggest that a double-digit percentage of traffic in dense urban areas comes from people circling around looking for a parking space, and on-street parking ipso facto reduces road capacity. An autonomous vehicle can wait somewhere else and an on-demand one just drops you off and goes off to collect other people. On the other hand, both of these models create new trips as well - both your car and an on-demand car would have to come to get you (though, since cars will be automatic, they will form an orderly queue). But with enough density of on-demand, the car you get into might be the car that's already passing, or that dropped someone else off 50 feet away - it all depends on the load factor. 

Parking itself is important not just as a part of the traffic and congestion dynamic but as a cost and as a use for property. As mentioned above, some parking is on-street, and so removing it adds road capacity or allows you to add more space for pedestrians. Some of it is at work or retail, or more generally in city centres, and so that land becomes available for other uses. And some of it is at home, either on-street (again using capacity) or in drives and garages, parking lots or parking structures, which add to the cost of housing. The extreme case here is Los Angeles: it has been estimated that 14% of the incorporated land of LA county is used for parking. Adding parking to a new development pushes up construction costs: parking garages cost money, and so does leaving land vacant for parking lots. A study in Oakland, in the San Francisco Bay Area, found that government-mandated parking requirements pushed up construction costs per apartment by 18%. Back in LA, adding underground car-parking to a shopping mall might double the construction cost. If you both remove those costs on new construction, and make that space available for new uses, how does that affect cities? What does it do to house prices, or to the value of commercial real-estate?

Los Angeles parking. Summary of research on the costs of parking, Costs in LA,  Chester et al on parking costs, Lisbon study

Pretty much all of these themes feed into the potential of on-demand. If you remove the cost of the human driver from an on-demand trip, the cost goes down by perhaps three quarters. If you can also remove or reduce the cost of the insurance, once the accident rate has fallen, it goes down even further. So, autonomy is rocket-fuel for on-demand. This makes it much easier for many more people to dispense with a car, or only have one, or leave their car at home and take an on-demand ride for any given trip. 

This obviously has consequences for parking - an on-demand ride to work or a restaurant removes parking in the city centre, and not owning a car and substituting on-demand entirely removes demand for residential parking. And, as mentioned above, using an on-demand ride instead of looking for parking gets rid of one kind of traffic but creates a new kind - potentially a smaller one, through. 

However, truly cheap on-demand has more consequences still. For example, it displaces demand from public transport - though the cost of a bus driver is also large part of the cost of the trip, and those drivers might not be needed either, so buses might also be cheaper. Conversely, if congestion falls then buses could become more attractive than other forms of transport (both cars and also subways) because the journey time would be shorter (or at least more predictable). This of itself has all sorts of cascading effects. Do you end up with reduced bus schedules? Do marginal bus-routes close, pushing people onto on-demand who might not otherwise have used it - if they can use it? Does a city provide, or subsidise, its own-demand service to replace or to supplement buses in lower-density areas? Does your robotaxi automatically drop you off at a bus stop on the edge of high-traffic areas, unless you pay a congestion charge? This all then ripples back into congestion - buses carry people at higher density than cars, and so replacing a fully loaded bus with cars would inherently create more traffic volume, but buses do not in fact travel full all of the time, and can create their own congestion (an endemic issue in London's Oxford street, for example). And, especially on Oxford Street, they carry more people than cars because they're aggregating people onto a single route who might otherwise have taken many other separate, more direct or more efficient routes. If 50 people on a bus switch to cars, they won't all be on the same road at the same time. Meanwhile, the fixed cost of a bus creates a minimum loading level and density at which a bus is practical - breaking this apart into smaller vehicles - maybe with one passenger, maybe with 10 - might extend 'public' transport to many more people.  

Perhaps the most useful way to think about this is that, just as on-demand erodes the difference between marked and mechanically metered taxis and car-services, so it also erodes the difference between both of those and buses. What exactly are the differences in traffic dynamics between a Lyft Line shuttle with 5 passengers and a municipal bus with an off-peak load of 10? Recall, too, that buses weren't always municipal, and there are parallel commercial alternatives today - see Chariot, or matutus.

The point here is not remotely to suggest that it is inherently good or desirable to replace public transport with cars, but that it now becomes possible to do so, if we want, and that it might be cheaper and more efficient in some circumstances. And, indeed, that the distinction between 'car' and 'bus' might break down. 

TfL on Oxford Street (bus loading stats), TfL on London transportation needs

Then, of course, there are the drivers. There are something over 230,000 taxi and private car drivers in the USA and around 1.5m long-haul truck-drivers. The question of what happens to taxi and on-demand drivers has been discussed too widely and publicly for me to add anything here, but long-haul truck drivers have some interesting nuances (I'm here excluding local delivery drivers as they're often needed for more than driving the truck itself and robotics is a whole other conversation). The average age of a long-haul driver is now 49, and around 90 thousand leave the industry every year, half though retirement. The industry thinks it has a shortage of around 50,000 drivers, and growing - people are leaving faster than they can be replaced. Truck driving can be an unhealthy, uncomfortable job with a difficult lifestyle. Hence, on these numbers, over half the current driver base will have left in ten years, around the time that most people think full, level 5 autonomy might be working. In the short term, level 4 autonomy makes truck-driving more attractive, since you can rest in the back of the truck until you're needed instead of having to stop at mandated times. But on a 20-30 year view, which is really the timeline to think about this transition, effectively all current truck drivers will have quit anyway - you won't replace them, but you won't necessarily put anyone directly out of work - until you start looking at truck stops, which takes us right back to the convenience store discussion at the beginning of this piece. And meanwhile, truck-stop operators are already starting to think about the fundamentally different trucking patterns that might come from a shift in the logistics industry away from serving traditional retail and towards serving ecommerce (i.e Amazon). 

The US Truck Driver shortage, BLS on US taxi driversand on heavy truck drivers

Pulling all of these threads together: if parking goes away, road capacity increases by, perhaps, several times, and an on-demand ride is the cost of a coffee, then one needs to start thinking much more generally, not just about cars, trucks and roads but cities, land use and real-estate. In fact, one needs to think about cities. Cars have remade cities over the past century, and if cars are now going to change entirely, cities will change too. 

So, big-box retail is based on an arbitrage of land costs, transport cost and people's willingness to drive and park - how does autonomy change that? How do cities change if some or all of their parking space, especially in town centres, is now available for new needs, or dumped on the market, or moved to completely different places? Where are you willing to live if 'access to public transport' is 'anywhere' and there are no traffic jams on your commute? Does an hour-long commute with no traffic and no need to watch the road feel better or worse than a half-hour commute stuck in near-stationary traffic staring at the car in front? How willing are people to go from their home in a suburb to dinner in a city centre on a dark cold wet night if they don't have to park and an on-demand ride is cheap? What happens to rural pubs if you don't have to worry about drink-driving anymore? And what do you DO in the car, while it's taking you somewhere? Long Netflix and brewers, short BAT - and medevac helicopters.

Finally, remember the cameras. Pretty much every vision of automatic cars involves them using HD, 360 degree computer vision. That means that every AV will be watching everything that goes on around it - even the things that are not related to driving. An autonomous car is a moving panopticon. They might not be saving and uploading every part of that data. But they could be. 

By implication, in 2030 or so, police investigating a crime won't just get copies of the CCTV from surrounding properties, but get copies of the sensor data from every car that happened to be passing, and then run facial recognition scans against known offenders. Or, perhaps, just ask if any car in the area thought it saw something suspicious. 

10 Apr 05:51

Persistence of Vision

by Franceska Rouzard

Last year, Mark Zuckerberg introduced Facebook Live via a post on his personal account. “Live is like having a TV camera in your pocket,” he wrote. “Anyone with a phone now has the power to broadcast to anyone in the world. When you interact live, you feel connected in a more personal way. This is a big shift in how we communicate, and it’s going to create new opportunities for people to come together.”

To complement and reinforce this announcement, Facebook released its first ad campaign in the U.S. and UK since its launch 13 years ago. After over a decade of exponential growth, the company was beginning to plateau in active monthly users. Ads showed vignettes captured by Facebook Live users: a three-two-one countdown to adorable footage like a puppy dressed as a teddy bear surrounded by actual teddy bears, or a baby boy bracing for his first haircut. Other, pictorial ads demonstrated the ease and simplicity of going “live” in familiar situations: “How to go live when you see someone walking an animal that is not a dog,” read a bus stop. An ad perched above a luggage carousel read, “How to go live while everyone is waiting for the first suitcase to drop.”

Live streaming collapses the distance between the viewer and the viewed, between the viewer and the event itself. We feel more directly involved, and more intensely helpless

It did not take long for other social media platforms to embrace the live video feature. A live component launched on Instagram (owned by Facebook) in November, with a short companion video showing users aged 25 and under sharing the milestones of an average person who has not lived very long: silly dance moves, new braces, a colorful cast on a first broken arm. In December, Twitter announced Go Live, the fruit of its procurement of Periscope, a live streaming application, almost two years prior: “Exploring a new city? Find yourself in the middle of something amazing? Celebrating your team’s big end of season win? Go live on Twitter and let others experience it with you.”

In marketing materials, there was little to indicate the range of experiences these live streams would soon capture. Nor was there evidence of preparedness for them, an omission that seems inexcusable: Before live streaming was widely available, cruelty made a regular appearance in comments, pictures, and videos on all platforms, and violent images were shared widely across social media. Live streaming collapses the distance between the viewer and the viewed, between the viewer and the event itself. The intimacy of a live video allows us to share a moment. We feel more directly involved, and sometimes intensely helpless. A live stream can further victimize its subjects, and turn its viewers into powerless bystanders.


Three months to the day after Zuckerberg introduced Facebook Live, Diamond Reynolds broadcasted the aftermath of the shooting of her boyfriend, Philando Castile, by a police officer, while her daughter sat in the backseat. Police shootings were becoming a regular occurrence in the news cycle and the video went viral like several others. By the following morning, thousands had seen Reynolds’s partner bleed to death while gasping for his last breath. The video’s temporary disappearance from Facebook was explained away by a representative as a “technical glitch.” It resurfaced with a graphic violence warning: “Are you sure you want to see this?”

The next day, Zuckerberg offered a post in response, a little longer than his post introducing Facebook Live: “My heart goes out to the Castile family and all the other families who have experienced this kind of tragedy. My thoughts are also with all members of the Facebook community who are deeply troubled by these events. The images we’ve seen this week are graphic and heartbreaking, and they shine a light on the fear that millions of members of our community live with every day. While I hope we never have to see another video like Diamond’s, it reminds us why coming together to build a more open and connected world is so important — and how far we still have to go.”

Zuckerberg was strategically vague and generalizing. He invoked the idea of community, without the responsibility or engagement the term would demand. To avoid alienating Facebook users, he purposefully omitted an important detail of the story: Castile and his family were black. They were a part of demographic that suffers daily the tragedy of being murdered by police. Connecting to Facebook means connecting to the experience of black people, who make up a large percentage of Facebook’s community. Zuckerberg did not cite any articles, documentaries, or any other resources that could provide context for what had happened. He made no mention of the GoFundMe set up for the four-year-old daughter left behind, who would need support of every kind to recover from the trauma of watching her father die. He offered no next steps beyond echoes of white liberal rhetoric about hope, openness and coming together, and fell short of grasping the magnitude of Facebook Live’s effect on the lives of users.

Livestreaming heightens the violence it shows. It can be an instrument of violence in itself

At this moment, googling “Facebook Live” reveals “death” and “torture” as the top two options in the suggested search. The act of livestreaming cruelty is not only used to “shine a light” on injustice. In February of 2016, 18-year-old Marina Lonina broadcasted the rape of a 17-year-old friend using Periscope. Unlike in the case of Castile, when live streaming was meant to raise awareness of inhumane precedent, Lonina paraded inhumanity for her audience. She and the victim met the attacker, 29-year-old Raymond Gates, at a shopping mall. The next day they met at a residence where Gates pinned down the victim and raped her while Lonina recorded. Lonina was also charged with live streaming her friend’s naked body the day before. Later, she would tell authorities she recorded the attack in the hopes of providing evidence of the crime, not to embarrass or titillate anyone.

The prosecutor, Ron O’Brien, said for roughly 10 seconds of the 10-minute live stream, Lonina held the victim’s leg while she cried and struggled. Lonina did not call 911. “For the most part she is just streaming it on the Periscope app and giggling and laughing.” It was a friend in another state who saw the broadcast and called the police.

In January, the Wall Street Journal reported that “There have been at least 40 such broadcasts of sensitive, violent or criminal footage on live video over the last 12 months.” In Chicago, four people used Facebook Live to broadcast themselves torturing a disabled man. An audience of 16,000 witnessed the man bound, gagged, beaten, scalped, and forced to drink toilet water for 30 minutes before Facebook removed the video. The name of the victim was never mentioned in subsequent articles. However, his terrified face and the brutality he suffered are preserved in the permanence of the internet. After its removal on Facebook, the video resurfaced on YouTube.

Livestreaming heightens the violence it shows. It can be an instrument of violence in itself. Some with hateful intentions are emboldened by the knowledge of an audience; for those being filmed, the exposure can add humiliation and shame to mounting fear. Murders on livestream become contemporary lynching. Those of us who watch from our iPhones and computers know that what we are witnessing is not over. We are helpless and complicit.


Since its debut, Facebook Live broadcasts at any minute have quadrupled, with broadcasts from all seven continents, as well as from outer space. The Facebook Live Map features a two-dimensional, grey map of Earth, speckled with blue dots that pulse with varying intensities. Each dot represents a live broadcast happening now, and its size correlates to the size of its audience. Hover the cursor over any dot to reveal lines stretching to its viewers in other parts of the world. First, its immensity inspires awe, then dread.

Facebook is quick to highlight its product’s reach, but has made insufficient efforts toward protecting its users from exposure to violence, and responding to the violence broadcast or enabled by its platform. This speaks to its values as a company: attracting more money through more monthly users. Policies in place for overseeing content are ambiguous, and haven’t changed much since the platform’s beginning. This passivity contributes to the mental scars that millions of users sustain.

Facebook’s philosophies and policies are summarized on its Community Standards page. “Facebook has long been a place where people share their experiences and raise awareness about important issues,” reads a paragraph under a section titled Encouraging Respectful Behavior. “Sometimes, those experiences and issues involve violence and graphic images of public interest or concern, such as human rights abuses or acts of terrorism. In many instances, when people share this type of content, they are condemning it or raising awareness about it. We remove graphic images when they are shared for sadistic pleasure or to celebrate or glorify violence.” Despite the company’s intentions, the affect of a broadcast is decided by its audience. While posts may bring awareness to some about a social justice issue, some viewers will be inspirited by the violent footage, sometimes regardless of the creator’s intent.

If Facebook is a community, its “leaders” have additional obligations. Community standards center on loose theory, a bare minimum, more than practice

Enforcement of Facebook’s policies relies on its consumers — it’s up to users to flag posts as inappropriate or offensive. “There are billions of posts, comments and messages across our services each day, and since it’s impossible to review all of them, we review content once it is reported to us,” Zuckerberg wrote recently, in a 5000-plus word letter to Facebook’s 1.8 billion users. “There have been terribly tragic events — like suicides, some live streamed — that perhaps could have been prevented if someone had realized what was happening and reported them sooner. There are cases of bullying and harassment every day, that our team must be alerted to before we can help out. These stories show we must find a way to do more.”

Facebook says it monitors live feeds that have attracted a significant audience, and offers users the option of reporting streams in which something troubling is taking place. In early March, the company introduced new suicide prevention resources. Instead of accepting responsibility for the platform’s role in the onslaught of violence broadcast through Facebook Live, however, Zuckerberg has largely proposed a neighborhood watch tactic to combat cruelty online. A significant number of Facebook users are not equipped with extensive knowledge of world affairs and mental illness. They cannot be expected to make decisions about unpredictable violent content on the website where they share pictures of family reunions and vacation getaways. Once a traumatic event is broadcast live, even effective intervention doesn’t necessarily address the trauma of witnessing it as it happens.

In his letter, Zuckerberg nearly blames the Facebook community for the platform’s recent, and frequent failings, as if Facebook were a public space, and not a corporate property that reaps loads of monetary benefit from live broadcasts. If Facebook is a community, its “leaders” have additional obligations. Community standards center on loose theory, a bare minimum, more than practice: Rather than put any genuine energy into supervising or addressing content, users are individually responsible for their own mental health and safety, for processing and reacting to graphic videos that enter their lives during morning coffee. It adds up to cleverly disguised inaction, and could lead to a decline in active users. It is imperative that Facebook protect its users. Violent content is hard to preempt on any platform, but acknowledging the magnitude of the live feature, and the realities of the world in which it’s being used might be a start.


“Everything feels too intimate, too aggressive; the interfaces that were intended to cheerfully connect us to the world have instead spawned fear and alienation,” wrote Jia Tolentino in an essay for the New Yorker on 2016’s “Worst Year Ever” meme. “No, 2016 is not the worst year ever, but it’s the year I started feeling like the internet would only ever induce the sense of powerlessness that comes when the sphere of what a person can influence remains static, while the sphere of what can influence us seems to expand without limit, allowing no respite at all.”

At this stage livestreaming has made more contributions to collective anxiety and terror than to improving human experience as a whole. “When you interact live, you feel connected in a more personal way,” explained Zuckerberg in his initial post; what Facebook and other platforms have failed to recognize is that connectedness is a complicated good. At the very minimum, it requires awareness and care.

10 Apr 05:50

Customizing class creation in Python

by Brett Cannon

When one thinks of ways of customizing classes at creation time, people probably typically think of metaclasses and class decorators. Metaclasses are at typically viewed as the beginning of class creation while class decorators are at the end. But what you may not know is that there are two other steps in class creation that you can tweak: __prepare__() and __init_subclass__() (added in Python 3.0 and 3.6, respectively).

The __prepare__() hook is used to specify the object used for the class' namespace during construction (the object gets copied into a dict in the end for final storage into __dict__). The method is specified on a metaclass and called before __new__(). Historically the __prepare__() method has been used to return OrderedDict so that the definition order of things in a class can be known later on. But since the returned object is used as the class' namespace you can also use it to inject objects to use in your class' definition.

To take an idea from David Beazley, you can abuse __prepare__() so you can define an ABC so that abstractmethod is implicitly available in the class definition.

import abc

class DaABC(abc.ABCMeta):  
    @classmethod
    def __prepare__(metacls, name, bases, **kwargs):
        return {"abstractmethod": abc.abstractmethod}

Using this metaclass gives you access to abstractmethod without having to get it from abc.

class Foo(metaclass=DaABC):  
    # Notice not `abc.abstractmethod`.
    @abstractmethod
    def meth(self):
        pass

This works because the way classes are created is essentially by taking the class' body and passing it to exec() with the result of calling __prepare__() as the locals.

Another way to tweak class creation is __init_subclass__(). The method gets called when the defining class gets subclassed. It's passed both the subclass and any keyword arguments provided to the class definition line.

To help show a way to use this, I realized that you could abuse variable type annotations to make a "scary" version of Hynek Schlawack's attrs project. Basically the following class automatically defines an __init__() and (optionally) the __repr__() for a class based on variable type annotations.

class ScareHynek:

    def __init_subclass__(cls, **kwargs):
        super().__init_subclass__()
        attrs = tuple(cls.__annotations__.keys())
        def __init__(self, *args, **kwargs):
            # Skimping on the argument-checking because I'm lazy.
            if len(args) > len(attrs):
                raise TypeError("too many positional arguments")
            for attr, val in zip(attrs, args):
                setattr(self, attr, val)
            for attr, val in kwargs.items():
                if attr not in attrs:
                    raise TypeError("got an unexpected keyword argument {!r}")
                setattr(self, attr, val)
        cls.__init__ = __init__
        if kwargs.get("repr", True):
            repr_format = "<"
                + ", ".join(f"{attr}={{{attr}!r}}"
                            for attr in attrs)
                + ">"
            def __repr__(self):
                all_attrs = self.__class__.__dict__.copy()
                all_attrs.update(self.__dict__)
                return repr_format.format_map(all_attrs)
            cls.__repr__ = __repr__

This then lets you create simple Python objects that you may have created using types.SimpleNamespace instead (aside: please don't abuse collections.namedtuple to make a simple Python object; the class is meant to help porting APIs that return a tuple to a more object-oriented one, so starting with namedtuple means you end up leaking a tuple API that you probably didn't want to begin with).

class Simple(ScareHynek):  
    question: str
    answer: int = 42

ins = Simple(question="Ultimate Question of Life, The Universe, and Everything")  
print(repr(ins))  
# Prints "# <question='Ultimate Question of Life, The Universe, and Everything', answer=42>"

You can also use keyword arguments to the class definition to skip the __repr__() definition.

class Plain(ScareHynek, repr=False):  
    x: int

ins = Plain(42)  
print(repr(ins))  
# Prints "<class_creation.Plain object at 0x100f91198>"

As with all things that tweak class creation, you must be very careful to not abuse this stuff. Adjusting how classes are created can be very difficult to debug and so should only be used when you have a really legitimate use-case. But this stuff is worth knowing about in case you run into code that uses it or you have a real need for it when there are no other reasonable options.

09 Apr 03:18

Scrabble data and analysis

by Nathan Yau

Looking for some data to play with? James P. Curley compiled Scrabble data using computer-played games in Quackle Scrabble. Check out his summary analysis or grab the data for yourself in the R package scrabblr.

Tags: R, Scrabble

09 Apr 02:37

Google Calendar Arrives on iPad

by Ryan Christoffel

Google today released an update to its Google Calendar iOS app that brings full iPad support. The app has been optimized for all iPad sizes, including the 12.9" iPad Pro, and it launches with Split View support.

The app is very simple, but attractive. Beautiful illustrations line the background of the calendar, with a different illustration for each month of the year. Hitting the red plus button to add a calendar event provides the option of creating a Goal or Reminder rather than a traditional event. The navigation menu includes a settings button, several different calendar view options, a search function, and a list of all available calendars that you can turn on or off. That's it. There's not much to explore, but then again, maybe that's okay for a calendar app.

On its blog Google states that more improvements to the app will be coming soon, specifically mentioning an upcoming widget that will enable quick viewing of future events.


Support MacStories Directly

Club MacStories offers exclusive access to extra MacStories content, delivered every week; it’s also a way to support us directly.

Club MacStories will help you discover the best apps for your devices and get the most out of your iPhone, iPad, and Mac. Plus, it’s made in Italy.

Join Now
09 Apr 02:37

The Future of Workflow

by Federico Viticci

I've loved Workflow since the first beta I was sent in August 2014. Workflow is my most-used iOS app of all time, and, in many ways, it is the reason my iPad Pro can be my primary computer. I've written thousands of words on the app and have created hundreds of workflows for myself and others over the course of two years.

I referred to Workflow as Minecraft for iOS productivity and the modern bicycle for the mind in the past. I stand by those analogies. There's nothing else on iOS like Workflow, which deftly walked the fine line between absurd innovation and Apple rejections with a bold vision and technical prowess. Workflow embraced the limitations of iOS and turned them into strengths, resulting in a power-user app with no competition. After two years, no app gets remotely close to the automation features shipped by the Workflow team.

And now Workflow and its creators are going to be part of Apple and the company's bigger (and more secretive) plans.

Somewhere in the back of my mind, I had always kept the possibility that Workflow could eventually be discontinued or acquired. In a somewhat prescient move, Stephen quizzed me on this problem a few weeks ago on Connected. My "worst-case scenario" of Workflow going away became the new reality of iOS automation last week.

Workflow as an app is an incredibly good acquisition for Apple, but there's a deeper subtext here. Workflow represents a movement from a large number of users who enjoy working from iOS devices so much, they want to optimize the experience as much as possible. Workflow's goal wasn't to merely provide a capable alternative to the Mac's AppleScript and Automator; Workflow wanted to eclipse legacy scripting environments and usher iOS users into a new era of mobile automation. There's the Workflow app and team – technically impressive and absolutely talented – and there's the bigger theme behind Workflow.

But what has Apple acquired, exactly? Under Apple's control, can Workflow continue on its mission to make automation accessible for everyone? If Apple sees a future in iOS automation powered by Workflow, what else can be done with a virtually infinite budget and stronger ties to the platform? And what does this acquisition mean for Apple's commitment to pro users on iOS?

I've been mulling over these questions for the past week. I don't have any absolute answers at this point, but, after building workflows and following the app's development for two years, I have some ideas on where Workflow can go next.

Below, you'll find two possible scenarios for Workflow as an Apple app, as well as some considerations on how Apple could evolve Workflow into a native feature of iOS devices and a new developer platform.

Worst Option: Workflow Is Abandoned Without a Replacement

If you follow tech startup news, you'd be hard-pressed to get excited about your favorite app shutting down because its founders are going to work for a bigger company. Most of these announcements follow the same playbook:

  • TechCrunch/other publication breaks the acquisition news;
  • Bigger company confirms the deal;
  • Startup confirms the acquisition in a Medium post, says the team is "excited to join Company" and "continue on their vision" for Product;
  • Casey Newton writes a fantastic "behind the scenes" obituary;
  • Product receives no updates for 6-12 months. If it is updated, changes focus on removal of existing features or basic bug fixes;
  • Product is unceremoniously discontinued. A shorter, less inspired Medium post mentions the team's "bigger mission that now goes beyond Product".

In startup lingo, these acquisitions are referred to as "acqui-hires": a bigger company hires a startup's talent by buying their Product, but the purchase is only skin-deep. This is an over-simplification, but, in most cases, the corporation is only interested in the people who built Product and have no motivation whatsoever in continuing to invest in it, its customers, and legacy tech. If Product stays around for a few months, it's because the startup managed to convince the new owners to enable a grace period out of respect for existing users. Both parties are acting in their best interests, but Company has the upper hand. The only constant is customers losing access to the original service sooner or later.

I don't know if Workflow will follow the same path of most startups acquired by Apple and other large companies, but initial signs are already there. The latest version of Workflow has removed some actions (which might be due to legal reasons) and the curated Workflow Gallery no longer highlights user profiles. The app has been made free, Apple has promised to keep it on the App Store for now (grace period), and the core engineering team has joined Apple.

It's easy then to imagine the following scenario: Apple has acqui-hired the Workflow team for their talent, but they have no intention of operating Workflow in its current form going forward. The app will live on the App Store for 6-12 months while the team begins working on something else unrelated to a standalone automation product. Sometime later this year or in mid-2018, Apple will remove Workflow from the App Store and links to public workflows shared by users will redirect to a 'Goodbye' webpage. Following outrage by the community, Apple will issue a statement citing the "great new technologies" in iOS 11 that obviate the need for Workflow and provide a better solution for everyone. Finally, changes in a build of iOS 11 will introduce compatibility issues in the last, abandoned version of Workflow that will prevent normal usage of the app. With no actual replacement, millions of users will forever lose access to the best automation app ever created for iOS, and new features in iOS 11 won't be able to compensate for the demise of Workflow.

Following Apple's acquisition, this is my new worst case scenario for Workflow. While I don't personally believe in such a dark timeline, it is plausible and it has precedents with hundreds of startup acquisitions and discontinued products that came before Workflow.

I should also mention how Apple's spotty performance in automation and recent tumult within the organization lend credence to the common belief that Apple doesn't care about Workflow as a dedicated iOS automation app.

On the Mac side, Automator (the app that inspired Workflow in the first place) has been languishing without major updates for years, while scripting technologies such as AppleScript and JXA have hardly received any attention. Sal Soghoian, former head of Automation Technologies at Apple, left last year and later urged users to be vocal about the need for scripting and automation features. Apple's recent approach to automation and other pro software features epitomize a company that is focused on consumer products. And automation, sadly, has never been a tentpole feature that could appeal to millions of consumers.

From Apple's perspective, it would arguably make sense to kill off a product that doesn't directly contribute to the bottom line of the company, despite the quality of the software and affection from the community.

Best Option: Apple Turns Workflow into a More Powerful, Native iOS Feature

When it comes to high-profile acquisitions of popular iOS apps and services, the modern Apple has a fairly solid track record. The three examples I can think of – Siri, TestFlight, and Beats Music – all blossomed into native successful services that are much better as Apple products today than they could have ever been as third-party additions to the iOS ecosystem. The evolution of Siri is particularly impressive, as it went from a third-party assistant app to an integral part of the entire iOS experience.

Just like abandoning those three services would have destroyed goodwill among existing customers and put Apple at a competitive disadvantage, letting Workflow wither away without a proper replacement would be a deep setback for iOS productivity and send the wrong message to a community of committed users who are embracing iOS devices as post-PC computers.

In a more optimistic outlook, Apple has seen the unparalleled functionality and unique potential of Workflow and convinced the team that the only way to reach the next level of system integration was to have Workflow become part of iOS itself. Similarly to Siri and Beats Music, the vision behind Workflow is ripe for unlimited resources with no restrictions on access to private APIs and system features. Under Apple's guidance, Workflow could grow into a safer, more integrated, extensible automation service and developer platform unlike anything that has ever been attempted on the Mac before.

Workflow was already reshaping iOS automation; as an Apple app, Workflow could lay the foundation for the future of iOS productivity.

I've been thinking about the future of Workflow for a while – ever since I started imagining what "Workflow 2.0" could have been. Apple has a lot of work ahead and I don't think we'll see the results of their automation efforts in iOS 11 this year. With no knowledge of the Workflow team's (or Apple's) actual plans, I've compiled a list of smaller additions and major changes that we could expect from an Apple-made Workflow in the next few years.

Short-Term and Other Obvious Improvements

Bearing in mind that Apple is likely going to rewrite Workflow from scratch, these are some of the less visionary improvements I expect the company to bring to the app.

Workflow Folders and iCloud Sync

Workflow needs better organization for user-created workflows.

While the team has done a remarkable job with the ability to easily reference workflows and a larger collection of icon glyphs, there should be a way to create folders for workflows and control their appearance (with folder icons) and sorting settings. Folder navigation would introduce new challenges1, but the current single-view model doesn't scale anymore.

Furthermore, I expect Apple to replace Workflow's proprietary Workflow Sync service with their own iCloud-based2 solution with support for versions and public sharing. While App Store guidelines prohibit third-party apps from syncing executable code between devices3, I suspect Apple's future Workflow app will eschew such limitations and securely sync your workflows between devices.

A More Flexible Action Extension

Workflow's customizable action extension is one of the strongest arguments in favor of opening up user automation on iOS. By integrating with any app or system feature that supports the share sheet, Workflow's extension enables users to create their own (safe) improvements for iOS apps and make their devices work better for them. There's a lot more to done with the extension, though.

Workflow's current action extension has limited filtering options.

Workflow's current action extension has limited filtering options.

Most notably, Workflow's extension needs more filters to specify where and when a workflow should be available as an extension. Currently, Workflow supports basic type filters for items passed to the share sheet such as "Safari webpages" or "Files". In a future version of Workflow, I would like to see filtering capabilities to control, for instance, workflows that should appear as extensions only at a specific website (filter by domain), with a specific file type shared from an app ("any JPEG shared from Photos"), or for email messages that come from a certain sender or that contain a keyword in their subject.

Some of these ideas can be implemented with a series of manual workarounds in the current Workflow app, while others would require direct access to restricted parts of iOS. As an Apple app, Workflow should make it easier to pick workflows for the extension, and it should also allow users to choose from more options previously not available to a third-party app.

New Privileges

Speaking of limitations in the old Workflow, becoming a first-party app gives Apple the opportunity to grant Workflow new exclusive privileges in terms of performance, iCloud Drive integration, and private API usage. If the company is committed to Workflow, I fully expect them to take advantage of technologies that aren't available to third-party apps.

There are dozens of areas Apple could consider for new Workflow-only integrations. iPad users could gain an option to assign system-wide keyboard shortcuts to workflows and run actions from any app at any time – like they can with scripts on the Mac. Workflow could access device settings such as WiFi, Bluetooth, AirPlay, location, or Accessibility options, and provide contextual actions to modify the behavior of a device depending on the user's preference, network condition, and other criteria.4 Apple could consider giving Workflow full access to iCloud Drive and let the app read files from and write them to any folder from any app – not just the sandboxed /Workflow folder.

Currently, Workflow's iCloud Drive actions can't be as flexible as the Dropbox ones.

Currently, Workflow's iCloud Drive actions can't be as flexible as the Dropbox ones.

Apple could even make special exceptions for increasing the memory allocation to the Workflow widget and extension, enabling users to perform more power-intensive tasks and for longer periods of time in multiple parts of the OS. Combined with extended background execution times, these advantages could allow Workflow's automation engine to become more pervasive and integrated throughout iOS.

My favorite idea, however, is attempting to imagine new "real-time workflows" that would intelligently react to device conditions/environmental triggers and adapt their interface and actions accordingly.

Imagine, for instance, a workflow capable of accessing HomeKit controls, Apple Music, and HealthKit workouts at runtime. A user who goes running every morning could easily assemble a multi-step routine which locks their front door and brings up a collection of music playlists before the run starts. While the user is running, an underlying Workflow engine would put workout-optimized music controls and run details front and center on the Apple Watch or iPhone. Finally, the same routine that "prepares" a new run could automatically unlock the front door, continue playing music on a wireless speaker, and display summary stats for the completed workout on a big screen via the Apple TV as soon as the user gets back home. This automation wouldn't be a standalone "workflow" that is manually executed as much as it'd be an invisible, integrated, and secure automation engine connected to every piece of the Apple ecosystem.

It may sound too futuristic, but many of the key elements required for these ideas are already in place, both in Workflow and in Apple's own frameworks. Workflow can already integrate with Apple Music and control music playback; it doesn't have any HomeKit actions, but it fully supports HealthKit. With iOS 10, Apple added a basic routine-building UI for HomeKit automation, which would greatly benefit from Workflow's more intuitive interface.

Once these two worlds collide, it's reasonable to envision a deeply integrated Workflow that supports Apple technologies such as HomeKit, CloudKit sharing, CarPlay, Siri, and iMessage; it also makes sense to see Apple embrace new home and lifestyle automation features to foster more powerful (and yet secure) connections between all of their services.

As iOS continues to split system apps and features into atomic units available as extensions and widgets across the OS, and as services evolve into a new pillar for the company, Apple's Workflow could be the connective tissue between them all, going far beyond the rudimentary app automations we've seen so far. Rewriting Workflow with exclusive access to iOS features and services would be an obvious first step.

A Bigger Idea: WorkflowKit

One of the unique traits of iOS devices – particularly the iPad – is how they've redefined the concept of modern productivity. As portable screens that can transform into anything, iPhones and iPads are enablers of new jobs to be done that supersede the association of "work" with spreadsheets and meetings. Once the computer is not on every desk but in every hand, the possibilities for productivity and work communications become endless.

Apple has played an essential role in the redefinition of modern productivity with the App Store, but we're reaching the point where Apple and app developers can't make one-size-fits-all solutions for millions of users with ever-changing needs and priorities. Apple can't possibly develop all the productivity features for all the creative professionals, small business owners, educators, and enterprise customers who are adopting iOS.

With Workflow, Apple could lead us into a second generation of iOS productivity apps by turning automation and inter-app communication into an extensible, integrated platform.

In my mind, the next logical move for Workflow is to open up to apps with a new framework that does not require users to edit URL schemes. With a WorkflowKit (my own imaginary name), apps could offer some of their functions and data as discrete modules. These actions would allow users to build more complex and yet easier, faster, and safer workflows that let multiple apps collaborate on the same task in a visually automated fashion.

One of Apple's goals with iOS 8 was to remove the need for URL scheme-based automation by offering extensions to invoke certain app functionalities anywhere on iOS. However, by relegating extensions to the share sheet and preventing developers from referencing individual third-party app extensions, Apple's strategy partially missed the point. Developers who wanted to call a specific extension still couldn't, and remained stuck with the extra step of the share sheet (see: how the 1Password extension has to be embedded in apps). Meanwhile, those developers who wanted to ship third-party app integrations and automation features still had to rely on URL schemes – usually, the popular x-callback-url spec (there are plenty of examples around, including ADA winners and Workflow itself).

As a result, extensions were a fantastic addition, but they didn't address the lack of true inter-app communication and automation on iOS.5

WorkflowKit could help Apple move past URL schemes for good and offer a robust automation framework for developers. The system could be built on iOS' current extensibility model, where a container app offers sandboxed access to extensions that users can invoke outside of the main app experience. Behind the scenes, Workflow's Content Graph engine would take care of connecting any input to any app action, creating a safe automation environment where everything "just works".

This way, rather than exchanging plain text data with a URL scheme (which forces users to jump back and forth between Workflow and apps), an app could offer multiple WorkflowKit extensions (called "actions") to display content and perform rich tasks in Workflow. Permission to use such actions could be granted by users on a case-by-case basis, and actions could be grouped in categories that include running functions from external apps with or without an interface, managing documents, displaying specific app content in a custom QuickLook preview, and more.

Consider the current version of Workflow. The app is effectively split in two macro categories: native actions and third-party app ones. Native actions can be executed inside Workflow and offer features such as displaying menus and lists, opening webpages with Safari View Controller, formatting text and numbers, and more. Third-party app actions try to abstract the complexity of URL schemes with a pretty UI, but, in the end, they're still based on launching URLs and leaving Workflow to open another app.

Despite the native appearance, Workflow's current app actions are based on URL schemes.

Despite the native appearance, Workflow's current app actions are based on URL schemes.

WorkflowKit could dramatically improve the second category of actions and make any app action a native one. Without leaving Workflow, an app like Pixelmator could provide a 'Resize and Crop' action to perform an image editing task inline. A note-taking app like Bear could have an 'Append to Note' action to save some text at the bottom of a note. A task manager could offer an action that presents you with a list of active todos to share with someone in your contacts. None of these actions would ever leave Workflow – they'd always run in-place and they'd come bundled with an app just like extensions and widgets currently do. Users would always grant permission to read, write, and delete third-party app data for WorkflowKit actions, and developers would have to support both visual and headless modes for every action they offer, with mandatory Accessibility integration. The entire system would be heavily influenced by Apple's NSExtension framework and the Workflow team's Content Graph engine.

This isn't an easy task for Apple, though. To achieve such integration between iOS and apps, the company must first build a framework that enables apps to communicate directly with each other in a non-destructive manner. This implies a new set of privacy controls and permissions to avoid the problems inherent to URL schemes, as well as a fundamental rethinking of the iOS sandboxing structure. That system would then provide a new foundation for Workflow 2.0, which would leverage new inter-app communication APIs to deprecate URL scheme automation and allow users to mix and match functions from multiple apps. The Workflow Gallery, now limited to discovering workflows from other users, would also showcase apps that come with Workflow actions, providing a new discovery avenue for developers and, for users, a way to add more powerful functionality to their workflows simply by downloading new apps. Everyone wins.

Workflow already offers limited discovery options for third-party apps.

Workflow already offers limited discovery options for third-party apps.

The true potential for WorkflowKit lies, I believe, in going beyond workflows inside the Workflow app. WorkflowKit would give users a way to turn any action into a system-wide extension or widget. For example, workflows wouldn't have to be grouped under a single 'Run Workflow' extension – instead, users could pin workflows as native extensions in the share sheet or other app toolbars. And if we follow this idea – that automation could trickle down into multiple parts of iOS – it's easy to imagine workflow macros made specifically for Pages, sets of custom actions for Safari, or workflows that are designed as routines for Siri and HomeKit.

Thus, more than a rebranded Automator, an Apple-made Workflow 2.0 could be a comprehensive set of user automation tools that span an app and customizable extension points, all capable of integrating natively and securely with any iOS technology, app, and interface. A new inter-app communication framework and the subsequent WorkflowKit would be the core of this system. App developers (including Apple) would offer actions; users would ultimately remix them and connect them to anything they want.

WorkflowKit would be the framework powering the Workflow app and actions from developers.

WorkflowKit would be the framework powering the Workflow app and actions from developers.

At a fundamental level, I strongly believe that Apple doesn't like the URL scheme-based app actions in the current version of Workflow they just acquired. Using URL schemes for app automation is an unreliable and unsafe workaround. I don't see an Apple-owned Workflow introducing new features based on visible URL schemes.6

Therefore, if we buy into the theory that Apple wants to invest in the Workflow app without crippling it, it's only natural to assume that the company is planning new inter-app communication features with an automation component. That would be WorkflowKit. If done right, WorkflowKit could reimagine iOS productivity by letting us completely personalize our work experience and favorite apps.

The Path Ahead

We're on the cusp of a new beginning for automation on Apple's platforms. With Workflow, Apple has acquired more than an app; they have gained a foothold in a new kind of user automation that is friendly, visual, accessible, and deeply integrated with iOS hardware and software unlike any scripting language before.

In this article, I have outlined the worst and best scenarios for Workflow going forward. Realistically, here's what I expect:

I think Apple acquired Workflow with the intention of building their own automation platform on iOS. Like Siri, TestFlight, and Beats Music, I don't think Apple bought Workflow just to abandon it. I believe both Apple and Workflow saw this as the best possible solution to continue growing the app into a more powerful tool for iOS users. Whatever Apple is planning, however, it won't be ready for iOS 11 in June. I'd expect the Workflow app to remain (mostly untouched) on the App Store until Apple offers a replacement – possibly in Spring 2018 or in iOS 12. If and when that replacement becomes available, I expect it to be a complete rewrite of the app with little to no support for legacy workflows.7

I also assume that Apple wants their take on iOS automation to be tightly controlled by clear user permissions, and that URL scheme callbacks won't be part of Workflow's future. Unless Apple wants to outright remove third-party app support from Workflow, I suspect the company is building "Workflow as a feature" inside iOS with a framework that developers will be able to integrate with. That "WorkflowKit" framework will enable third-party developers to offer discrete app actions that can be embedded in Workflow and other extension points. WorkflowKit will be based on groundwork laid with iOS 11 this year, and it'll tell a bigger story for Workflow 2.0 as the glue between every iOS app, service, or system feature. I'm guessing, but I'd say that all of this is at least a year away.

Apple acquiring Workflow could be a pivotal moment for iOS automation and productivity apps. Two years after the release of Workflow 1.0, we're at a crossroads: Workflow has shown us a future where automation means an intuitive GUI, native integrations with iOS, and none of the baggage of desktop scripting. There's a special beauty in Workflow's underlying message: anyone, whether they consider themselves "programmers" or not, can make a computer their own. The software we use every day doesn't have to be a static experience; with automation and creativity, any app can be remixed, extended, and personalized to our needs.

Workflow gives power back to the users. Now only Apple can turn Workflow's promise into a reality, ushering us into a new era of automation for everyone, on every device, in every app.

I want to believe.


  1. Especially if the app retains a dedicated widget for workflow shortcuts; the widget would have to support folders too. ↩︎
  2. CloudKit↩︎
  3. This is one of the reasons Pythonista doesn't offer device sync, or why Workflow never added JavaScript actions. ↩︎
  4. Imagine workflows that play media on AirPlay speakers only if available, or actions that change their output based on the user's Accessibility settings. ↩︎
  5. I believe Apple is working on a new framework for deeper access to app documents and data in iOS 11, but I want to focus on automation and what WorkflowKit could mean for the future of productivity apps. ↩︎
  6. I wouldn't be too surprised if Apple eventually removes the ability for users to open any URL scheme. The popularity of launchers and the lack of native automation features currently prevent Apple from blocking URL schemes. WorkflowKit could also be the system that lets users launch apps into specific views with "launcher actions". ↩︎
  7. The best case scenario for this: Apple builds a legacy Workflow importer to automatically convert workflows to the new Apple format. It's unlikely, but Apple did build an importer for the transition from Beats Music to Apple Music. ↩︎

Support MacStories Directly

Club MacStories offers exclusive access to extra MacStories content, delivered every week; it’s also a way to support us directly.

Club MacStories will help you discover the best apps for your devices and get the most out of your iPhone, iPad, and Mac. Plus, it’s made in Italy.

Join Now
09 Apr 02:27

A Few Hundred Posts (And The Small Bang)

by Richard Millington

You might also notice from yesterday’s post that a community needs a few hundred posts per month to sustain any level of viability.

A challenge with any client when we begin a community project is to ramp up quickly to 300+ posts per month.

If you’re falling below that level, you’re probably not going to make it.

This sounds like a bigger number than it is.

The secret to this isn’t to have a huge number of members, but to ensure that the members you do have actively participate. This might be 300 people sharing 1 post per month or 50 people sharing 6 posts per month (the former is preferable).

Within the first two weeks, you should know how often people participate and how many members you’re going to need to hit that target.

This means you need to aggressively follow through on the inception stage of the online community lifecycle. Reply to discussions, @mention other members to be involved, initiate new discussions, nudge people to participate, uncover and talk about problems members have.

You don’t need a big bang launch, but you do need a small bang to quickly reach a few hundred posts per month.

09 Apr 02:27

Fun With Real Names In Online Communities

by Richard Millington

If you force everyone to use their real names be aware:

1)  People are afraid to ask questions that will make them look bad in front of friends/colleagues.

2)  It’s common for people to search for website activity of their boss, colleagues, recruits, friends, and relationship partners.

3)  Many languages use letters and diacritics that don’t appear in the English (or even the Latin) alphabet.

4)  The EU’s right to be forgotten law technically requires you to delete the entire history of contributions of inactive members after a specific period of time.

5)  People often change their names when they get married.

6)  People often used shortened versions of their names in everyday life. Should they use their name on the passport or the name they most commonly go by?

7)  Some cultures have multiple names or naturally use pseudonyms.

8)  Many people will share the same name. What should they do?

9)  There isn’t much data to support the supposed benefits of using real names (seeming more professional, greater trust, and better familiarity are largely unproven).

10)  …Yet, in many industries, seeing a response from ‘KitchenDad44’ would seem strange.

11)  If your data is hacked, your problems are much worse with real names.

If you want real names, I’d suggest you use a nudge (default) but don’t force it. Be prepared for each of these challenges.

(p.s. Jeff Atwood blogged about this problem in a post a few years ago I can’t find, sorry Jeff).

05 Apr 14:52

Talking 2x Speed

05 Apr 14:22

Does the Samsung Galaxy S8 Feature an IR Blaster?

by Android Beat
So, do the Samsung Galaxy S8 and the Galaxy S8+ come with an IR blaster? Leaked photos had indicated that Samsung might reintroduce the IR blaster on its flagship devices this year after removing it from the Galaxy S7 last year. Continue reading →
05 Apr 14:09

There’s a Microsoft Edition of the Samsung Galaxy S8

by Rajesh Pandey
Samsung started bundling Microsoft’s suite of Office apps like Skype, OneDrive, and Word etc. on its flagship devices starting from the Galaxy S6. This year though, both companies are taking a different approach as Microsoft will be selling its own customised version of the Galaxy S8. Continue reading →
05 Apr 14:09

Samsung Galaxy S8 Feature Highlight: The DeX Dock Brings an Almost Desktop-like Experience

by Rajesh Pandey
The Samsung Galaxy S8 and Galaxy S8+ comes with a number of new features and enhancements. Among them, the most impressive one is perhaps Samsung DeX or Desktop Experience.  Continue reading →