a tumblelog
week 37, 2020

How to tell browsers that your site supports color-schemes

Over the past few years, a new user preference made it into the group of things "that change how a website looks" – yes, I'm talking about color themes. "How to implement dark mode on a website?" was one of the most important topics in 2019.

Source: How to tell browsers that your site supports color-schemes, an article by Stefan Judis.

Using the brightness() CSS Filter to generically highlight Content

So it seems I have to pay better attention to CSS standards as I just realized that you can quite easily use CSS Filters to apply useful effects for generic control behaviors. Sure, I remember filter merely from the old, evil IE6 days to handle things like shadows and opacity, but it looks like the filter properties have migrated into the CSS mainstream with two now widely used and accepted filter operations that have quite a few useful filters available.

Source: Using the brightness() CSS Filter to generically highlight Contentw, an article by Rick Strahl.

Hoisting in JavaScript

In this post, we are going to discuss hoisting. We’ll be discussing what it is and why it’s important for you to know as a Javascript developer or programmer.

Source: Hoisting in JavaScript, an article by Ashutosh K Singh.

Transformers are Graph Neural Networks

While Graph Neural Networks are used in recommendation systems at Pinterest, Alibaba and Twitter, a more subtle success story is the Transformer architecture, which has taken the NLP world by storm. Through this post, I want to establish a link between Graph Neural Networks (GNNs) and Transformers. I'll talk about the intuitions behind model architectures in the NLP and GNN communities, make connections using equations and figures, and discuss how we can work together to drive future progress. Let's start by talking about the purpose of model architectures—representation learning.

Source: Transformers are Graph Neural Networks, an article by Chaitanya K. Joshi.

What could go wrong with apps on Big Sur and Apple Silicon?

With the arrival of macOS 11.0 Big Sur and Apple’s first Silicon Macs drawing ever closer, next week I’m going to ask whether you should consider upgrading to them, and how you should prepare for that. As a prelude, this article highlights some potential issues which you could experience with third-party products running under Big Sur, and on Apple Silicon Macs.

Source: What could go wrong with apps on Big Sur and Apple Silicon?, an article by Howard Oakley.

Regarding Semantic Versioning

So as not to bury the lede, I'll get to my point: Semantic Versioning is a meta-API, and maintainers who are cavalier about violating it can't be trusted to created stable contracts. I've lost patience for breaking changes making their way to my code bases without the maintainers incrementing the major version of their projects, especially in language ecosystems where Semantic Versioning is expected, and in such cases I'm going to begin exploring alternative options so I can ban such libraries from my projects---personal and professional---altogether.

Source: Regarding Semantic Versioning, an article by Daniel Moch.

The Within Go Repo Layout

Go repository layout is a very different thing compared to other languages. There's a lot of conflicting opinions and little firm guidance to help steer people along a path to more maintainable code. This is a collection of guidelines that help to facilitate understandable and idiomatic Go.

Source: The Within Go Repo Layout, an article by Christine Dodrill.

Sync vs. Async Python: What is the Difference?

Have you heard people say that async Python code is faster than "normal" (or sync) Python code? How can that be? In this article I'm going to try to explain what async is and how it differs from normal Python code.

Source: Sync vs. Async Python: What is the Difference?, an article by Miguel Grinberg.

Go Modules have a v2+ Problem

Go has a problem. Go modules place a strange naming requirement on modules version 2 or greater. Module names on modules v2+ must end in the major version ala …/v2, and communication of this rule has been weak. It's non-obvious, and the community at large does not understand it.

I have seen many very large projects including Google owned projects get it wrong.

I brought the issue up at my local Go meetup, and no one had ever heard about the rule. They were very skeptical the rule existed at all.

Source: Go Modules have a v2+ Problem, an article by Jesse Donat.

Letsencrypt, the Good, The bad and the Ugly

Letsencrypt is a pretty neat concept: free secure certificates for web servers, in order to increase the adoption of HTTPS across the web. The basic idea is that certificates should be free, that the barrier to install them should be as low as possible and that updating certificates should be automated. It protects this site and many 100’s of millions besides. The advantages are that in-flight data can no longer be easily snooped and that injection of data into pages is made either much harder or even impossible. From a security point of view it is a huge step forward.

Source: Letsencrypt, the Good, The bad and the Ugly, an article by Jacques Mattheij.

Why Bayesian Stats Needs Monte-Carlo Methods

This post emerged from a series of question surrounding a Twitter comment that brought up some very interesting points about how Bayesian Hypothesis testing works and the inability of analytic solutions to solve even some seemingly trivial problems in Bayesian statistics.

Source: Why Bayesian Stats Needs Monte-Carlo Methods, an article by Will Kurt.

Introduction to modern CMake for beginners

CMake is a collection of open-source and cross-platform tools used to build and distribute software. In recent years it has become a de-facto standard for C and C++ applications, so the time has come for a lightweight introductory article on the subject. In the following paragraphs we will understand what CMake is exactly, its underlying philosophy and how to use it to build a demo application from scratch. Mind you, this won't be the definitive CMake bible. Rather, just a practical, ongoing introduction to the tool for humble enthusiasts like me.

Source: Introduction to modern CMake for beginners.

How To Rename Your Git Repositories From "Master" to "Main"

Until recently, almost every Git repository had a default branch named "master". But thankfully, as part of a movement to make the tech industry more inclusive and open, many software teams and open source projects are moving away from this unhealthy naming.

Source: How To Rename Your Git Repositories From "Master" to "Main", an article by Tobias Günther.

Introduction to runc

runc is a lightweight portable container runtime parts of which were internally used by Docker and were packaged as a single binary and released as an open source project under the the Open Containers Initiative (OCI) as a way of giving back to the community. Explained simply, runc is a lightweight tool written in Go which helps manage a container’s lifecycle i.e creating, running, killing and deleting a container. You’ll go through each of these steps in this post and see how runc differs from Docker when it comes to running containers.

Source: Introduction to runc, an article by Danish Prakash.

Autogenerated Screenshots in Markdown

I’ve been working on user documentation for Boardgame Lab. As is the case for most product documentation, screenshots are the most time consuming aspect of this process.

Generating them is one half of the picture. Keeping them up to date as the product evolves is another challenge.

Fortunately, there is a way to automate this.

Source: Autogenerated Screenshots in Markdown, an article by Nicolo Davis.

UX Design for Navigation Menus

Navigation menus are one of the most-viewed and most-clicked-on pieces of interface. Let’s look at some principles of nav design that will help our users have a better experience.

Source: UX Design for Navigation Menus, an article by Jordan Bowman.

Bash Pitfalls

This page is a compilation of common mistakes made by bash users. Each example is flawed in some way.

Source: Bash Pitfalls.

12 HTML Tags You Don't Know

HTML (Hyper Text Markup Language) is used to design web pages using a combination of Hypertext and Markup language.

In this post, we're going to take a look at some cool stuff that can be done using HTML. Let's look at some of the html tags, you might not be knowing even existed. ould be making use of today.

Let's get started 💪

Source: 12 HTML Tags You Don't Know, an article by Jatin Rao.

Quare FreeBSD?

I really wanted to make this article short … but I failed miserably. At least I tried to organize it well so one may get back to it after ‘some’ reading because its not a short lecture. I wanted to title it Why FreeBSD? but when you type that into your favorite search engine there are so many similar articles. I wanted it to have distinguished and unique name so I used Latin word for ‘why‘ which is ‘quare‘.

Source: Quare FreeBSD?.