a tumblelog
week 17, 2021

Principal Component Analysis

Principal component analysis (PCA) is a technique used to emphasize variation and bring out strong patterns in a dataset. It's often used to make data easy to explore and visualize.

Source: Principal Component Analysis explained visually, an article by Victor Powell with text by Lewis Lehe.

Why model calibration matters and how to achieve it

Calibrated models make probabilistic predictions that match real world probabilities. This post explains why calibration matters, and how to achieve it. It discusses practical issues that calibrated predictions solve and presents a flexible framework to calibrate any classifier. Calibration applies in many applications, and hence the practicing data scientist must understand this useful tool.

Source: Why model calibration matters and how to achieve it, an article by Lee Richardson & Taylor Pospisil

Patterns of Functional Programming

One of the ideas of functional programming is having pure functions, functions that have no side effects. But writing programs made exclusively from functions without side effects can't be useful in the real world, because programs have to affect the real world somehow. Inevitably, this means some parts of our programs must be effectful for the program to be useful.

Source: Patterns of Functional Programming: Functional Core - Imperative Shell, an article by Javier Casas.

The Humble <img> Element And Core Web Vitals

Images have also been a key part of the web. They communicate ideas instantly, but they are also a lot heavier than text to load. This means that it’s essential to get loading and displaying them right, if you want to give your users a fantastic first impression.

Source: The Humble <img> Element And Core Web Vitals, an article by Addy Osmani.

A Web Server in Bash

This is a bit of a dumb project, there's all sorts of bugs and they're the horrifying kind. Shell scripts have access directly to the computer and so you can do all sorts of strange and harmful things. But this all makes me smile that it all even works.

Source: A Web Server in Bash.

Limits of Deep Learning

Present-day Deep Learning models are scaling their computational requirements much faster than the growth rate of computing resources. They rely on huge sets of parameters that make them much greater tools compared to older methods. To beat this challenge, we may need to have new perspectives on our architectures, possibly on a fundamental level, to make them smaller scale but still high performance. On the other hand, we may develop new types of hardware that will be able to keep up with the requirements of DL architectures.

Source: Limits of Deep Learning, an article by Yiğit Şimşek.

CSRF, CORS, and HTTP Security headers Demystified

With an increasing number of breaches, intrusions, and data thefts, securing a web application is extremely important.

On the other hand, programmers often do not have a strong grasp of how attacks work and how to mitigate them. This post attempts to close that gap a little.

Source: CSRF, CORS, and HTTP Security headers Demystified, an article by Varun Naik.

The Fourier transform is a neural network

We can consider the the discrete Fourier transform (DFT) to be an artificial neural network: it is a single layer network, with no bias, no activation function, and particular values for the weights. The number of output nodes is equal to the number of frequencies we evaluate.

Source: The Fourier transform is a neural network, an article by Sidney Radcliffe.

Building an Emulator with Rust

In an effort to learn Rust, I built a Game Boy emulator in two weeks. Coming from a mobile and web background, and being used to building huge apps with slow build times, it was really fun to work in a new language on a fun project.

Source: Building an Emulator with Rust, an article by Mehdi Mulani.

Film simulations from scratch using Python

A CLUT, or a Color Look Up Table, is the primary way to define a style or film simulation. For each possible RGB color, a CLUT tells you which color to map it to.

Source: Film simulations from scratch using Python, an article by Kevin Martin Jose.

There's no such thing as "The Perl Community"

We often talk about "The Perl Community", but I don't think it exists. Instead what we have is a loose, and at times fraught, federation of communities. Over the last few weeks I've been thinking and talking about this a lot, so I wanted to share some of those thoughts, and hear what others think. This is not me trying to tell you how things are, but how I see things, and also to outline some things that I think might help us be less fraught.

Source: There's no such thing as "The Perl Community", an article by Neil Bowers.

Shiny, Animated CSS Buttons

Everyone can appreciate fancy, animated buttons - but often times they come with a performance cost: JavaScript. Luckily for us, we can create our very own shiny, animated buttons with pure CSS.

Source: Shiny, Animated CSS Buttons, an article by Bradley Taunt.

I totally forgot about print style sheets

A small collection of useful CSS techniques and a quick reminder that print style sheets are still a thing.

Source: I totally forgot about print style sheets, an article by Manuel Matuzović.

Print Debugging Should Go Away

Many people prefer print debugging over interactive debugging tools. Some of them seem to have concluded that the superiority of print debugging is some kind of eternal natural law. It isn't: almost all the reasons people use print debugging can be overcome by improving debuggers — and to some extent already have been. (In the words of William Gibson, the future is already here, it's just not evenly distributed yet). The superiority of print debugging is contingent and, for most developers, it will end at some point (or it has already ended and they don't know it.)

Source: Print Debugging Should Go Away, an article by Robert O'Callahan.

Write a Good Dockerfile in 19 Easy Steps

In this post you’ll learn the essential steps required to write a secure, compact, and maintainable Dockerfile in just 19 “easy” steps. I think you’ll be spurprised at how much you really need to know. Let’s get started!

Source: Write a Good Dockerfile in 19 Easy Steps, an article by Joe Kutner.

CSS Tips

CSS tips and tricks you won’t see in most of the tutorials.

Source: CSS Tips, an article by Marko Denic.

Functional Programming

The programming world is moving towards functional programming (FP). More developers are using languages with an explicit bias towards FP, such as Scala and Haskell, while object-oriented (OO) languages and their communities adopt FP features and practices. (A striking example of the latter is the rise of Typescript and React in the Javascript community.) So what is FP and what does it mean to write code in a functional style? It’s common to view functional programming as a collection of language features, such as first class functions, or to define it as a programming style using immutable data and pure functions. (Pure functions always return the same output given the same input.) This was my view when I started down the FP route, but I now believe the true goals of FP are enabling local reasoning and composition. Language features and programming style are in service of these goals. In this post I attempt to explain the meaning and value of local reasoning and composition.

Source: What Functional Programming Is, What it Isn't, and Why it Matters, an article by Noel Welsh.

Working with PostgreSQL

This post is in the context of the large, data heavy PostgreSQL instances that store historical transactional data and reports, the databases that power Console and its large scale number crunching and reporting. It talks about how we self-host, tune, and manage all our DB instances on bare EC2 instances. For high availability and backups, we use simple failover replicas and for backups, AWS disk snapshots.

Source: Working with PostgreSQL, an article by Satya Sarangi.