Posts tagged web

Follow "web" posts with Atom or RSS.

A longer commentary on chromecalypse


I think that many people on threads related to the recent Chrome 79 bug are completely missing the important points and are instead doing the “place the blame on developers who should known better” game which is a bad approach to talking about what has happened.

LocalStorage, webSQL, IndexedDB have been rock solid solutions for hybrid apps for probably close to a decade. Data eviction seldom happens for hybrid apps. These are stable APIs and have been working reliably for many years. It is not as if the developers have flocked to a new shiny unstable thing and then got burned by it not failing to work as advertised. This bug completely breaks the way the web platform stores data. It doesn’t matter if these APIs should only be used for caching purposes, that is not how the spec puts it and not how people been developing hybrid apps for years. Google owns Android and Chrome, they know that those hybrid apps are storing data in localStorage. They’ve broken something that was stable. I wonder if people would be placing the blame on third-party developers if Apple or Microsoft made shipped an update to windows or iOS that destroyed the sandbox filesystem.

There is massive damage happening in the real world because of this. From vet hospitals losing animal vaccination data, a process that can’t be repeated. To small business losing their financial data. Users faced with an app with zero data, begun been trying to reinstall the apps in hopes to fix this, which only caused further damage as the data is now unrecoverable. Planting the blame in “developers who should known better” is a complete lack of empathy to both the users and the developers who’ve been affected by something completely out of their control. There are developers pulling their apps out of the Google Play store because the onslaught of bad reviews will kill them or because they can’t provide a solution for a bug that happens in layers beyond their control. The bug is not fixable by the app developers. If you have an app that was affected by this, there is nothing you can do.

And for the “developers should use it only as cache” people out there, this affects this use case as well. Using localStorage as a temporary location for data while you’re offline and pushing this data later has been a best practice for a long time. This bug will erase this temporary data. All those field workers, all the remote data collection, goes poof as soon as the phone goes back into mobile coverage and auto-updates chrome before the app have the chance to sync it up.

Lastly the chrome team is not, in my own personal opinion, having the correct approach here. They failed. Their automated test should have flagged this. There should have never been a release with this bug. Treating responsibility like a hot potato and saying “you developers should have tested the beta and reported back” is acting like they don’t have ownership over their own project.

Playing well with others

My previous post about WhatsApp Web Client generated a lot of feedback and polarizing opinions. From all the comments I’ve received since then there was a point of view expressed by a minority that worried me a lot: some people seem to believe that releasing something only for Google Chrome is the correct thing to do and that is one of the topics I plan to address with this post.

Many who were not web designers or web heavy users during the 90s don’t recall the horrible experiences that were common back them. Stuff such as designed for Internet Explorer and best viewed in 800x600 in Internet Explorer, on a Sunday, in the northern hemisphere, while closing one eye and wearing a funny hat (well this last one was not that common).

Lots of websites back then were designed exclusively for a single browser and made use of non-standard technologies such as ActiveX and others. It was like the wild west but with cities not communicating with one another.

It was not until Mozilla decided to fight monoculture that standards started gaining more importance but thats another tale. The tale today is about monocultures and the horrors that spawn from it.

WhatsApp doesn’t understand the web

Today WhatsApp launched their web client in a way that is sure to upset and disappoint a lot of people. WhatsApp is a very popular instant message solution competing on the same market as LINE, Telegram and others. Here in Brazil WhatsApp is basically ubiquitous since its cheaper to send IM messages than to send SMS.

Unfortunately while other companies embrace the web and third party clients such as Telegram which has a list of official and unofficial clients and a public API, WhatsApp is actively waging war against third-party developers and their users. Last year they issued DMCA takedowns to all popular Github repositories hosting third-party clients and/or libraries interfacing with their API.

WhatsApp provides clients for many platforms but not for all platforms. Users of webOS, Firefox OS, Maemo, Sailfish, Ubuntu Touch had to use third-party libraries and also users of other platforms where there is an official client preferred using a third-party client because of many reasons.

After the takedowns, WhatsApp started banning users that connected to their network using third-party client, a move so evil that deserves a post in its own and the reason I stopped using their service. Since the takedowns and the banishments people waited for the release of a web client that would enable other platforms to use their service thru the beautiful of the world wide web.

Well, they finally launched their web offerring but its such a poor offerring that one wonders if anyone at WhatsApp actually understand the power behind the web. Lets analyse some parts of their launch post from their company blog:

To connect your web browser to your WhatsApp client, simply open in your Google Chrome browser. You will see a QR code — scan the code inside of WhatsApp, and you’re ready to go. You have now paired WhatsApp on your phone with the WhatsApp web client. Your phone needs to stay connected to the internet for our web client to work, and please make sure to install the latest version of WhatsApp on your phone. Unfortunately for now, we will not be able to provide web client to our iOS users due to Apple platform limitations.

I added some emphasis to the quote above. Lets count their mistakes: