recentpopularlog in


« earlier   
Let's reinvent FRP
In this blog post we will set out on a journey to reinvent functional reactive programming. FRP is an elegant and powerful way to express interactive programs in a purely functional way. More than that, it embodies an approach to library design called denotational design that has utility way beyond FRP. The technique is both brilliant and very different from how most developers think about library design.
functional-programming  blog-post  programming  programming-paradigms 
yesterday by doneata
So You Want to Be a Research Scientist
Making a career as a research scientist can be the most fulfilling and life-affirming experience. Yet I have seen many students tempted by the prospect, only to retreat in short order to the relative comfort of engineering. They often interpret the pullback as a personal failure and a sign they’re not good enough. It’s never a matter of personal worth or talent, however. You need a different kind of temperament to thrive in a research setting, one that is often paradoxically orthogonal to what m...
research  ideas  blog-post 
3 days ago by doneata
How I use Anki to learn mathematics
Here is my first less wrong post (after years spent blogging in French). I discovered Anki on this blog. I'm now sharing the tips I've been using for months to learn mathematics with Anki. Example(s) of deck can be found on
learning  mathematics  blog-post 
12 weeks ago by doneata
How we used Category Theory to solve a problem in Java
A few months ago, my colleague Chris Myers and I used some basic category theory concepts to guide us to a design that elegantly solved a problem in a Java codebase.

It isn’t the only way we could have arrived at the design; anyone could have done it, really! However, you might find it interesting to see what practical application of these ideas can look like. Importantly, category theory gives us a framework to shed light on what makes many good design concepts useful, and why.
code  programming  design  blog-post  category-theory 
may 2018 by doneata
Symbolic computation
So what is symbolic computation? To better understand what it is, we need to understand the two terms that make up the name: symbolic and computation.

The use of the word symbolic is ancient -- from the Latin symbolicus, Greek συμβολικός meaning "of, or belonging to a symbol"; and thence to symbol (Ancient Greek συμβάλλω), meaning "a sign by which one infers something". And, most interestingly, its meaning has not changed!
programming  blog-post 
may 2018 by doneata
Einsum is all you need: Einstein summation in deep learning
When talking to colleagues I realized that not everyone knows about einsum, my favorite function for developing deep learning models. This post is trying to change that once and for all! :) Einstein summation (einsum) is implemented in numpy, as well as deep learning libraries such as TensorFlow and, thanks to Thomas Viehmann, recently also PyTorch. For background reading on einsum, I recommend the excellent blog posts by Olexa Bilaniuk and Alex Riley. While their posts discuss einsum in the context of numpy, I am going to illustrate how einsum is extremely useful for writing elegant PyTorch/TensorFlow models.
deep-learning  blog-post  programming  mathematics 
may 2018 by doneata
Are functional programs easier to verify than imperative programs?
The high-order bit is that the three programs he suggested are equally easy/hard to verify in imperative and functional styles. This is because none of the programs make any significant use of procedural abstraction.

The difficulty of imperative programming arises from the combination of state, aliasing and procedure calls. Any two of these features can be handled without that much difficulty, but the combination of all three effectively makes reasoning (nearly) as difficult as correct concurre...
programming  programming-languages  blog-post 
may 2018 by doneata

Copy this bookmark:

to read