New
The latest blog posts to take off on Hacker News. 4,614 posts.
Introduction to Web Development (2018)
A complete intro to web development for developers
How to fight back against Google AMP as a web user and a web developer
It is possible to restrict Google AMP from your life both as a web user and as a web developer. Here’s how you can fight back against Google AMP.
Fight back against Google AMP (2018)
Let’s talk about Accelerated Mobile Pages, or AMP for short.AMP is a Google pet project that purports to be “an open-source initiative aiming to make the web better for all”. While there is a lot of emphasis on the official AMP site about its open source nature, the fact is that over 90% of contributions to this…
Mozilla and Opera remove Avast extensions from their add-on stores
The Avast extensions which were spying on their users are no longer available from Mozilla and Opera add-on stores. Google still has to take action.
How Facebook Avoids Ad Blockers
How Facebook hides the word 'Sponsored' from ad blockers using per-character spans and DOM obfuscation, pulled apart piece by piece.
Tract: A Hugo theme for ambitious documentation projects
Hello! I wanted to tell you all about an open source project I’m working on that I’m pretty excited about. It’s called Tract and it’s a Hugo theme for large documentation projects. I aim to release version 0.1.0 by the end of 2019. In the meantime, check out the current home page or a sample docs page .
Moxie: Incremental Declarative UI in Rust
ramblings by Adam Perry
Google AdWords charged me for clicks in Istanbul while location-targeting the US
Three months ago, I quit my job at Google to start my own company. This past week, I decided that I wanted to get a feel for how much it…
Syntax Highlighting Is Backwards (2018)
Most code editors color different pieces of your program in different ways. For instance, they’ll make keywords like if bold and bright so that you notice when you’ve misspelled them. They’ll make non-executable parts like comments and documentation fainter so that you know that the computer isn’t seeing that part of…
Please Go Away, Tim Berners-Lee
Create beautiful emails, automate campaigns, and track performance. Try it now and see how our tools can drive your business.
Towards a unified theory of reactive UI
Update 26 Sep 2020: A followup to this post is Towards principled reactive UI.
Slack’s new WYSIWYG input box is terrible
Slack has just recently rolled out a “WYSIWYG text input” widget to its Web browser interface. (Apparently, the phased rollout started at the beginning of November 2019, but it’s just now starting to hit the workspaces that I participate in.) The user experience of using this new input method is really, really, really…
The Firefox UI Is Now Built with Web Components
Open Source, Web Development, and more
Local-first software: you own your data, in spite of the cloud
Local-first software: you own your data, in spite of the cloud Kleppmann et al., Onward! ’19 Watch out! If you start reading this paper you could be lost for hours following all the interesti…
Apple's New Map: Midwest and Western U.S.
On November 18, 2019, Apple’s new map expanded to parts of the Midwest and much of the Western U.S.:
A Dead-Simple Web Stack in Haskell
Haskell has a proliferation of libraries to choose from for all of your basic backend needs, from logging to database access to routing and web server definition. It's nice to have the freedom of choice, but if you're just starting out, the amount of decisions needed can be overwhelming. Maybe you're not even…
WebWindow, a cross-platform webview library for .NET Core
Steve Sanderson's Blog
CSS Utility Classes and “Separation of Concerns” (2017)
Over the last several years, the way I write CSS has transitioned from a "semantic" approach to something more like what people call "functional CSS." In this post I explain how I got to this point and share some of the lessons and insights I've picked up along the way.
Build Your Own React
We are going to rewrite React from scratch. Step by step. Following the architecture from the real React code but without all the…
How internet ads work
header bidding, DFP, GAM, cpm ... welcome in the world of ads, where everything is an acronym. Le me try to explain how everything works under the hood.
Browsh for text-based internet browsing (2018)
The standard for browsing the web over a text-=based terminal is Lynx, right? ...
Rust 2020: GUI and Community
In response to the call for blogs about the vision for Rust for 2020, I’m going to write about GUI. I believe the time is right for a native GUI toolkit written in Rust, and that such a thing would fill a very important niche. There is a demand for performance (which, to me, includes startup time, RAM footprint, and…
Sendy Is Insecure: How Not to Implement ReCAPTCHA
Sendy's reCAPTCHA implementation doesn't do anything.
Bypassing GitHub's OAuth Flow with a Head Request
For the past few years, security research has been something I’ve done in my spare time. I know there are people that make a living off of bug bounty programs, but I’ve personally just spent a few hours here and there whenever I feel like it.