New
The latest blog posts to take off on Hacker News. 236 posts.
The Elements of UI Engineering
What makes UI engineering difficult?
WKWebView, an Electron alternative on macOS/iOS
An alternative way to do web based apps on macOS and iOS without Electron
Designing web page layouts for screen readers
It's easy to think about a layout as being a primarily visual concern. The header goes up top, the sidebar is over here, the call to action…
The Ant Design Christmas Egg That Went Wrong
Ant Design is a design language comes with a set of React component open sourced by Alibaba’s Ant Finance. One can assume its popularity by looking at its 38837+ stargazers on Github .
Node.js Fundamentals: Web Server Without Dependencies
The blog of Seva Zaikov
JavaScript Getter-Setter Pyramid
Open Source Freelancer
Browsers
I’m on Team Firefox.
Rust and WebAssembly in 2019
Compiling Rust to WebAssembly should be the best choice for fast, reliable codefor the Web. Additionally, the same way that Rust integrates with C callingcon...
Why Do React Hooks Rely on Call Order?
Lessons learned from mixins, render props, HOCs, and classes.
Let’s build a browser engine (2014)
I’m building a toy HTML rendering engine, and I think you should too. This is the first in a series of articles:
The Firefox Dilemma
Consider whether we're advocating for Firefox in the right way, on the right grounds.
Designing Headers for HTTP Compression
One of the concerns that often comes up when someone creates a new HTTP header is how much “bloat” it will add on the network. This is especially relevant in requests, when a little bit of extra data can introduce a lot of latency when repeated on every request.
How Does setState Know What to Do?
Dependency injection is nice if you don’t have to think about it.
WordPress 5.0: A Gutenberg FAQ
Update: On December 6th we released WordPress 5.0. It was definitely the most controversial release in a while, but the usage and adoption metrics are looking similar to previous releases. I’m look…
Choose Firefox Now, or Later You Won't Get a Choice (2014)
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Neither PWA nor AMP are needed to make a website load fast
Good performance practices are still needed when developing fast web experience.
State of web browsers in 2018
Late 2018 edition
Proof That iOS Still Hasn’t Gotten Undo Right
Imagine going back in time to tell a MacPaint user in 1985 that they’d have to learn how to use Undo in an Apple-award-winning paint app in 2018. That’s where we are.
Searching the Creative Internet
I had of late been lamenting the loss of the internet of the 1990s. A place where everything was obscure or new. If you saw something mainstream like a Disney princess, it was because someone had taken the time to handcraft an ASCII art portrait. Today if you type [disney] into the ubiquitous search engine , every…
How Does React Tell a Class from a Function?
We talk about classes, new, instanceof, prototype chains, and API design.
Maximizing password manager attack surface
Kaspersky Password Manager uses a unique approach to maximize the attack surface. A quick introduction.
Major sites running unauthenticated JavaScript on their payment pages
A few months ago, British Airways' customers had their credit card details stolen. How was this possible? The best guess goes something like this: BA had 3rd party JS on its payment page <script src="https://example.com/whatever.js"></script> The 3rd party's site was hacked, and the JS was changed. BA's customers ran…
“Stylish” is back, and you still shouldn't use it
2 days after I published ‘“Stylish” browser extension steals all your internet history’, Stylish was pulled from the Chrome and Firefox stores. The story echoed around parts of the internet for a few days, my name was misspelled on several right-wing British news websites, and I felt that I’d helped make the world a…
ECMAScript regular expressions are getting better (2017)
Sixteen years later, ES6/ES2015 introduced Unicode mode (the u flag) , sticky mode (the y flag) , and the RegExp.prototype.flags getter .