week 17, 2021

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.

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.

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.

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.

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.