• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Dion Almaer

Software, Development, Products

  • @dalmaer
  • LinkedIn
  • Medium
  • RSS
  • Show Search
Hide Search

Archives for May 2016

The Beyonce Law of Machine Learning

May 24, 2016 Leave a Comment

AI/ML and the important role in forgiveness with technology evolution

There is a lot of chatter on AI and Machine Learning, and recently on specific user experiences they open up: e.g. chat bots, as shown by Benedict Evans:


Others are discussing the overall role of machine learning and how it is becoming a vital component in all great experiences.

So, it is fascinating to hear the perception on how close we are to a particular break through, and when an application of ML can be actually used in production.

For some examples you see real world use cases right now, and for others it feels like we are so far away. Why is that? It is partly due to the complexity of the solution, but I also think there is another important element… the element of forgiveness and resilience that the solution can have. If you can provide forgiveness, it is easier to ship ML today and iterate on it.

Beyonce’s Law is the forgiveness curve of a solution.

Let’s look at some examples.

Search


A Google search has a lot of forgiveness built in. When it launched it gave back a series of blue links, but a human could help select the result from there (that human being: you). Compare this to search that only have the “I’m Feeling Lucky” feature, where you don’t have the option. Over time a search engine can improve, and there is a high likelihood that you will tap on the top result or two, but nothing is perfect and you can play an important role.

Chances are that you will find a result that works for you, so you will feel pretty satisfied if you tap and get some kind of answer to your query. This satisfaction will occur even if there is actually a “better” answer elsewhere. If you are looking to define a word and you get to dictionary.com, chances are you are OK with that, even if Wordnik had something more compelling.

One thing you really care about is performance, and top search engines always respond quickly. This gives you the confidence to come back for more. Google has always known this, and Jeff Dean has talked about all of the layers of resilience that Google has to make sure that it gets good results back to you.

Ilya brought this up in the context of modern web applications just last week at Google I/O and reiterated that:

Search of 99.9% of docs in 200ms is better than 100% in 1000ms

Perfect is very much the enemy here, and it is important to realize that. Now, search has evolved a lot over the years and we see more and more one box answers that try to solve your issue there and then, and that bar is much higher. Get that wrong and you lose trust, but all in all search has a high forgiveness factor.


Hints on Maps


Another example of something with high forgiveness is hints on Google Maps. I am sure you have seen an area where a few landmarks are highlighted for you.

Sometimes the selection feels magical “wow it put my kids school and the lil coffee shop I always go to!”, yet there may also be other landmarks that don’t make sense to you, but chances are you just don’t notice them.

In the map above, I see areas that make sense to me (Googleplex, shoreline movie theater), but I also see Costco, a store I have never been too in my life. Some of these may be personalized, but many may just be popular enough to show almost anyone.

The Maps team can slowly tweak things and get better and better at showing me what I need for my current context. A great forgiving experience.


Go and DeepMind

Move 37. Creativity in A/I.

Winning at Go is an epic achievement in computing, and it was very exciting to watch. It has also been fascinating to see how Lee Sidol has been playing so well after that match, winning his last series of matches and talking about how he feels his game has changed.

As amazing as DeepMind is, it got to a level of “good enough” to beat the worlds best player over time, but who knows how much further it can go. You can never tell if certain moves are “the best move” as the game is so complex.


Conversational UI

So, what else is on the low side, maybe even lower? I think that conversational UI (and thus chat bots, voice UI, and the like) are right up there.

When a human interacts with a bot they are looking for the mistake and the minute one comes back they often throw up their hands with “a ha! see! I can’t trust it. I am done!”.

You see a lot of demos of chat bots and them truly seem magical, but have you gotten your hands on one and fully gotten there yet? I was using one recently and even on a happy path it quickly got confused and started telling me about restaurants on “Pork Lane”, instead of restaurants that have good pork sandwiches.

It is just bloody hard to nail it time and time again, with each interaction. How can you hack something to be a lil more forgiving? Is it enough to have humans behind the bots, able to jump in from time to time to take control? It feels like for plenty of use cases this would allow the bar of the bot to be a bit lower, but that obviously comes with its own issues.

Having other UI that works alongside voice is also a useful technique. It allows you to get deep to an action with voice, and then go through some selection process that could be more suited to tactile feedback and the UI of a screen.

We saw the pain of voice systems in telephony. How many people jumped to hit “0” to speak to a human rather than go through the phone tree? How many of you still do that? At least it gave these companies a line of defense and they can keep improving their offerings to a point where they can actually be much *better* than humans, since they can interface into multiple systems easier than the human on the other end.

We can see where this is going, and we see glimpses of this with voice tech such as Alexa. Going from simplish commands to rich back and forth interaction is going to be fun to see, as is solving the current discovery problem. How do you know what capabilities you can tap into with voice? Trial and error.

The a-ha! Moment

For use cases where it is hard to have forgiveness, you often just need to keep grinding and making progress.

With the iPhone, hard work and engineering over generations got us to the point where the electronics were small enough to fit the form factor, screens were powerful enough to display, and touch sensitivity had the right level of resistance. And all of this could be produced at industrial scale with systems that could handle daily usage.

We will always see “it won’t happen for ten years!” and sometimes get surprised. Those surprises will happen most often for scenarios where the forgiveness factor is low, and thus it is hard to get into market.

Google I/O: Return of the Web!

May 16, 2016 Leave a Comment


Mobile Web: Open For Business

1) Solve problems
2) Ship solutions
3) Show successes <= we are now here

— Dion Almaer (@dalmaer) May 11, 2016

For the last few years, my “superbowl” event has been Black Friday, but this year it has reverted to an old highlight, Google I/O. The excitement is really brewing at the office, with people flying in from all around the world, as we get into the week of the event, and once you check out the venue you end up getting even more excited to get started.

This Google I/O is going to feel different in a few ways, and one of them revolves around the theme of the Web.

Last year, the Web content was a little thinner than in the past, and the contrast to the over 30, high quality sessions is stark. I know that I have much bias, but I want to go to every one of them. I have seen the extended team work their tails off too to bring their best to the event.

To get an overall view on what Google thinks of the Web, make sure to watch Rahul Roy-chowdhury’s State of the Union. I think it will paint a great picture on our opinion of where the Web is and how it has been evolving as of late.

I have talked about the journey that the Web has been on as it evolved its DNA to deal with the world changing around it (with Mobile) and it really has been a multi-year journey.

I characterize it as:

2014: Do a lot of the work to enable mobile capabilities

This was the meat of the hard work to take the new mobile world and map it to the benefits of the Web. At the other end of this we saw the standardization of service workers, saw multiple browsers implementing them, and saw the killer features on top (e.g., push notifications)

2015: Get them out there and evolve

Then we had to get more implementations out there, and evolve the offerings. We had to learn the best practices and the gotchas of the new technologies.

Many mobile browsers also had to rework their engines to deal with mobile constraints. Desktop browsers had become powerhouses with the ability to run rich applications, but mobile browsers had to be trimmed to run on much different hardware.

ASIDE: We also launched efforts such as AMP to quickly solve other pain points (content performance), and you will see sessions on this too.

We started to see certain companies jump in and experiment with these new capabilities to help their businesses.

2016: Business Results

We all continue to do all of these things. There is still room for a lot of iteration in the browsers and in the realm of web developers. One thing does feel very different in 2016 though, and that is the fact that we are seeing actual business results.

We have seen several case studies, and will surely see a lot more at I/O, that show that this all works for users and businesses. This isn’t just about technology for technologies sake.

This is exciting as it means that we are all on to something, and we can now keep pulling on that thread.


Rebalancing the force

So, why the renewed focus on the Web? I think it is quite natural. When a new explosion happens you find yourself wanting to dive in. That happened with the app ecosystem. Companies had to dive into a new world, they had to ramp up teams to build applications with new technologies all as they learn how it all applies to their business.

We are several years into the mobile economy, which gives us enough data for companies to see how things are shaping up.

For example, if you are an ecommerce company, you may have found that a lot of your revenue is still coming through the Web channels. This makes total sense as the low friction and “access a product from anywhere thanks to the URL” makes that world work.

Thus, we are seeing a rebalancing. This isn’t a “Web will kill apps!” moment, just as it wasn’t a “Apps will kill Web!” moment. Each has their place and trade offs. We keep seeing how the Web is gaining more native capabilities just as apps have gained more Web features, and this is all good.

2016 is the year to take a step back, look at your numbers, and reinvest in the Web.

I am excited to meet with the community at I/O in a couple days, because we can share what is working for their businesses, as well as the technical approaches.

See you at the Amphitheater!

Open source shouldn’t mean closed protocols

May 11, 2016 Leave a Comment

”An open source infrastructure for a centralized network now provides almost the same level of control as federated protocols, without giving up the ability to adapt. If a centralized provider with an open source infrastructure ever makes horrible changes, those that disagree have the software they need to run their own alternative instead” — @moxie0

I enjoyed reading moxie0’s post on ecosystems and their evolution but the paragraph above is concerning. I don’t think it is really true.

If Facebook open sourced every line of code and I took it to setup Dionbook, could I compete? The lock-in of a service isn’t in its source code, it is often elsewhere. In the case of Facebook they have the social graph of their massive user base.

We can also look at some of the other examples used:

Slack vs. IRC: You could look at this as an example of the fast startup beating the slow standard. But is that the full story? There have been hundreds of group chat services, and non of them managed to get the lightning strike success that Slack has gotten so far. Many never got any steam, and even mild successes like Campfire had the team think that the space was feature complete and it slowed to a halt too!

It turns out that speed of innovation can have a lot of stop energy put on it. Success is often a large slowing force here. As soon as you have a large user base things change. Take Twitter. They had to famously take a step back and deal with the scaling challenges of their success. Subtle features such as how mentions work had a huge effect on the backend scaling needs of the data model. A slew of Twitter clones have popped up, and many of them have far more “features” (and some are successful in other regions: Weibo).

You can also look at some of the original Web hits, such as Craigslist. If I had a dollar for every time someone in the valley said to me that “I want to create a modern craigslist” I would be a rich man. But, it hasn’t happened yet. The value is in the market, similar to eBay. Disruption can come, but it often needs to disrupt the model. Slack can grow quickly and be a lil better as its ecosystem is teams. AwesomeMobileEbay doesn’t have that luxury, you end up with a chicken and egg problem.

What about the slow growth of Internet protocols?

“We got to the first production version of IP, and have been trying for the past 20 years to switch to a second production version of IP with limited success. We got to HTTP version 1.1 in 1997, and have been stuck there until now. Likewise, SMTP, IRC, DNS, XMPP, are all similarly frozen in time circa the late 1990s. To answer his question, that’s how far the internet got. It got to the late 90s.”

Once again, this is partially being a victim of success, and how interoperability is taken as a big deal. Also, HTTP is getting a lot more attention and HTTP/2 is doing great (in relative time). What would the world look like if a company owned these protocols? Imagine paying an IP tax per packet. Would that company be incented to innovate? Or, if they got enough support, would they be big enough to not have to, and instead the incentive is to be rock solid and get as many packets moving?

I think it is really important to think through the incentive structures, as they are the best way to understand and predict things. You have to ask “where is the money going to be made and by whom?” If there isn’t money, that is a problem itself. Maybe that is why IRC never took off, as it was hard to differentiate… but it could also be because the UX and feature set wasn’t there.

The ecosystem is moving, but it moves at a large scale across the experiments of open systems (the Web) and closed ones. We often end up comparing this to forms of government. One of the reasons I am a fan of democracy, even if it isn’t efficient, is that even if you have a benevolent king, you don’t know what his son will be like.

When you enter into an ecosystem it is prudent to think through the incentives and see if you are aligned to the folks with power, and also think through how their goals may change in the future.

But to the main point that open source allows for something almost as future proof as open protocols doesn’t ring true to me. One of the reasons that I am a fan of the Web is because, as messy as it is, it doesn’t empower any one player too much.

« Previous Page
Next Page »

Primary Sidebar

Twitter

My Tweets

Recent Posts

  • Stitching with the new Jules API
  • Pools of Extraction: How I Hack on Software Projects with LLMs
  • Stitch Design Variants: A Picture Really Is Worth a Thousand Words?
  • Stitch Prompt: A CLI for Design Variety
  • Stitch: A Tasteful Idea

Follow

  • LinkedIn
  • Medium
  • RSS
  • Twitter

Tags

3d Touch 2016 Active Recall Adaptive Design Agile AI Native Dev AI Software Design AI Software Development Amazon Echo Android Android Development Apple Application Apps Artificial Intelligence Autocorrect blog Bots Brain Calendar Career Advice Cloud Computing Coding Cognitive Bias Commerce Communication Companies Conference Consciousness Cooking Cricket Cross Platform Deadline Delivery Design Design Systems Desktop Developer Advocacy Developer Experience Developer Platform Developer Productivity Developer Relations Developers Developer Tools Development Distributed Teams Documentation DX Ecosystem Education Energy Engineering Engineering Mangement Entrepreneurship Exercise Eyes Family Fitness Football Founders Future GenAI Gender Equality Google Google Developer Google IO Google Labs Habits Health Hill Climbing HR Integrations JavaScript Jobs Jquery Jules Kids Stories Kotlin Language LASIK Leadership Learning LLMs Lottery Machine Learning Management Messaging Metrics Micro Learning Microservices Microsoft Mobile Mobile App Development Mobile Apps Mobile Web Moving On NPM Open Source Organization Organization Design Pair Programming Paren Parenting Path Performance Platform Platform Thinking Politics Product Design Product Development Productivity Product Management Product Metrics Programming Progress Progressive Enhancement Progressive Web App Project Management Psychology Push Notifications pwa QA Rails React Reactive Remix Remote Working Resilience Ruby on Rails Screentime Self Improvement Service Worker Sharing Economy Shipping Shopify Short Story Silicon Valley Slack Soccer Software Software Development Spaced Repetition Speaking Startup Steve Jobs Stitch Study Teaching Team Building Tech Tech Ecosystems Technical Writing Technology Tools Transportation TV Series Twitter Typescript Uber UI Unknown User Experience User Testing UX vitals Voice Walmart Web Web Components Web Development Web Extensions Web Frameworks Web Performance Web Platform WWDC Yarn

Subscribe via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Archives

  • October 2025
  • September 2025
  • August 2025
  • January 2025
  • December 2024
  • November 2024
  • September 2024
  • May 2024
  • April 2024
  • December 2023
  • October 2023
  • August 2023
  • June 2023
  • May 2023
  • March 2023
  • February 2023
  • January 2023
  • September 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • November 2021
  • August 2021
  • July 2021
  • February 2021
  • January 2021
  • May 2020
  • April 2020
  • October 2019
  • August 2019
  • July 2019
  • June 2019
  • April 2019
  • March 2019
  • January 2019
  • October 2018
  • August 2018
  • July 2018
  • May 2018
  • February 2018
  • December 2017
  • November 2017
  • September 2017
  • August 2017
  • July 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012

Search

Subscribe

RSS feed RSS - Posts

The right thing to do, is the right thing to do.

The right thing to do, is the right thing to do.

Dion Almaer

Copyright © 2026 · Log in

Loading Comments...