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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.)
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!
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.
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.