The Web is my API
Michael Mahemoff taught me a lot about the possibilities of the web. Prior to working with Mike I built on the web and I understood the benefits such as linkability and discovery, but I never really had a full picture of what would be possible. One thing that Mike said was “the Web is my API”, where he talked about the being able to expose your site and your data in a page via microformats and other structured data and being able to access it directly from another another browser context, using a simple XMLHttpRequest and the CORS API:
Reinventing Web Intents
I never got over the death of Web Intents. I always felt that there is still a serious problem on the web, we build silos that lock the user into one web site and we don’t connect our apps together to build richer experiences. We have links that allow us to navigate to another site, but we don’t connect our apps to functionality that we can use in our sites.
Web sites as unintended silos: The problem with getting data in and out of the web client
It's nearly impossible to get consistent get data in and out of a web app on the client
Web and Chrome Developer Relations manifesto
How should Web and Chrome Developer Relations work?
Progressive Progressive Web Apps
Building Progressive Web Apps progressively is possible. This is how I did it.
Minifying a Custom Element that contains inline CSS and HTML
I couldn't find an easier way, so I built it myself
Defining web component interfaces
Custom Elements need clear and parsable API documentation.
Issue with css variables and button background styling
This little doozey hit me, so I'm documenting incase anyone else has the same issue
Creating a share button web component
My adventures in creating resuable web components around sharing.
Detecting text in an image on the web in real-time
Last year just before the Chrome Dev Summit, Miguel Casas came up to me and showed me something that blew my mind: Face Detection in the browser using the Shape Detection API. Shortly after that Barcode Detection was added that allowed me to update my QR Code scanner so that I no longer had to include a massive (albeit awesome) port of a QR scanning library. The Shape Detection API is still in development, and neither the FaceDetection nor the Barcode Detection API’s are available outside experimentations (you need to enable “Experimental Web Platform features” in chrome://flags) but it is a very exciting space to watch and see another platform capability being opened up to developers and users on the web.
How should we load web components?
Within the last 6 months, it felt like a good time to get on board properly with Web Components so I’ve been toying around with bits and pieces. I’ve been thinking about the ecosystem as a whole and I’ve also recently been creating a few elements. One thing that is really unclear to me is that there is no defined best practice for how to include styles and templates (HTML) with your custom element which means as a consumer of Custom elements you are at the mercy of what the component developer thinks is best.
3 predictions for the web and platforms in 2017
Following on from my list of the things that I am [excited about on the web in 2017](/2017-exciting-times/) here are three predictions of things that I think will happen in 2017 based off reading tea-leaves and random musings of things that I have 0 direct knowledge of but I might do if I was 'them'.
Exciting times: 2017 and the web
There are lots of things happening on the web, and this is just a small list of what excites me.
Whither Flash. Now what?
It's the end of the road for Flash and plugins on the web, what do we do now on the web?
Experimenting with Cloud Functions for use in Web Push
I’ve been building out a quick sample that lets you quickly hook up an web push with a simple cURL request. The principle being that I would like to get integrations with third party APIs that currently don’t support Web Push in any way. The thing about webhooks is that they are not standarised in any way other than you will most likely get a blob of data in a POST HTTP request, for example Travis CI application/x-www-form-urlencoded encodes the request data, whereas Github will just put a JSON object as the POST payload.
Running Chrome on AppEngine
It's possible in 3 simple steps
2016: Chrome and Web Developer Relations year in review
Thoughts on the year on the web for our team
Seconds to HH:MM:SS.MS format
This is mostly for future reference. I recently built a tool trims a video and I needed to convert from seconds to the time-code format that FFMPEG uses of hh:mm:ss.ms const secondsToTimeCode = function(timeInSeconds) { const zeropad = function(number) { return (number <= 9) ? `0{$number}`: number; } const hours = Math.floor(timeInSeconds / 3600) const minutes = Math.floor((timeInSeconds - (hours * 3600)) / 60) % 60; const seconds = timeInSeconds % 60; return `${zeropad(hours)}:${zeropad(minutes)}:${zeropad(seconds)}`; }; It worked well for what I needed.
Screen recording on Android with getUserMedia and WebRTC
Finally you can record your screen directly on Android via JS... well 'finally' is a strong word.
Chrome on Google Home
Welcome to the world of the headless web and a massive fudge