Image (2014)
When Eva, a young journalist, films a documentary about the mean streets in Brussels she soon gets involved in the life of a young Moroccan guy.
Esme and I watched Image. I liked the movie and give it a 7.5 out of 10.
When Eva, a young journalist, films a documentary about the mean streets in Brussels she soon gets involved in the life of a young Moroccan guy.
Esme and I watched Image. I liked the movie and give it a 7.5 out of 10.
When syntax of programming languages is communicated, context-free grammars are a lingua franca. They define structure of syntax, but cannot express static semantics. This post gives an overview of other successful grammatical models (attribute, two-level, parsing expression, conjunctive, Boolean grammars) in relation to defining programming languages.
Source: Grammars for programming languages, an article by Mikhail Barash.
This is a curation of introductory materials aimed at an enthusiast who wants to learn Category Theory. I have only recently gotten into learning Category Theory and as a result this list is only a partial sampling of the great wealth of materials out there.
Source: Resources for learning Category Theory for an enthusiast.
Two low-level astronomers must go on a giant media tour to warn mankind of an approaching comet that will destroy planet Earth.
In the afternoon we watched Don't Look Up. I liked the movie a little and give it a 6 out of 10.
Problem: Counting large result sets in PostgreSQL is… slow.
While researching potential solutions to this problem, I learned that PostgreSQL can provide fast counting if you’re willing to sacrifice some accuracy. Whether or not this matters of course depends on the kind of application you’re writing. In my case, I’m fairly certain my users don’t care. Knowing that there are a few million results for a query is more than good enough.
Source: Fast Counting with PostgreSQL and Haskell, an article by Jezen Thomas.
To illustrate how SQL, when used correctly, is a suitable tool not only for database management but also for data analysis, I will use multiple linear regression as an example.
Source: Multiple Regression in Pure SQL.
I've been aware of the Nix toolset for over a decade now, but until recently it's always looked like it required a pretty big investment. Most of the documentation I've come across explains what the benefits are and how the tooling works in order to deliver those benefits, but always from the perspective of wanting to build a project using Nix as your build system. And, well, I usually already have a build system I'm pretty happy with, and I've never bit the bullet and actually learned the pretty arcane syntax of the Nix language.
Source: Tools You Should Know About: nix-shell, an article by Gary Verhaegen.
As a neuroscientist, I see scientific myths about the brain repeated regularly in the media and corners of academic research. Three of them, in particular, stand out for correction. After all, each of us has a brain, so it’s critical to understand how that three-pound blob between your ears works.
Source: That Is Not How Your Brain Works, an article by Lisa Feldman Barrett.
It's been a busy year building Crunchy Bridge and we've shipped a lot of new awesome things. Instead of doing a wrap-up of all the growth and exciting features, instead I wanted to take the time to try to teach a few more things to those that follow us. While onboarding customer after customer this year I've noted a few key things everyone should put in place right away - to either improve the health of your database or to save yourself from a bad day.
Source: Five Tips For a Healthier Postgres Database in the New Year, an article by Craig Kerstiens.
On Christmas Eve, three lifelong friends spend the night in New York City looking for the Holy Grail of Christmas parties.
In the evening we watched The Night Before. I liked the movie and give it a 7 out of 10.
Docker has stormed into software development in recent years. While its concepts are powerful and valuable, similar tools have been used in systems for decades. FreeBSD's jails in one of those tools which build upon even older chroot(2). To put it shortly, with these tools, you can make a safe environment separated from the rest of the system.
Jails in FreeBSD are by no means a new tool (introduced in 4.x), but for a reason or another, I haven't used them that often, which is a shame since they are so powerful. So I wanted to explore this concept in a concise and summarized manner.
Source: FreeBSD jails for fun and profit, an article by Topi Kettunen.
This post is a shameless ripoff/reformulation of everything I’ve seen so far across conference presentations, the internet, reddit, forum posts and other places about how to run Postgres on ZFS reliably and with good performance.
I run all my stuff in FreeBSD jails which used to make things even more complicated, because
SYSV IPC
stuff wasn't namespaced, so two jails withallow.sysvipc=1
could see and modify each others shared memory and semaphores - not ideal. In FreeBSD 11 and beyond this is no longer an issue, as I will demonstrate later in this post.
Source: FreeBSD, Jails and SYSV IPC, an article by Thomas Steen Rasmussen.
Welcome! If you are reading this, you likely have decided to take on the journey of learning parser combinators. We hope this article will make your adventure smoother and hopefully give you a strong foundation for writing your grammars.
This article is composed of three major parts. In the first part, we will implement a small parser combinator library from scratch, which should hopefully help to give a feeling of how industrial-strength parsing combinators work. In the second part, we will learn how to use the Megaparsec library to implement a parser for S-expressions. Finally, as a bonus, we will use the power of Template Haskell to implement a quasi-quoter for our parser.
Source: Parser Combinators in Haskell, an article by Heitor Toledo Lassarote de Paula.
Go 1.18 is going to be released with generics support. Adding generics to Go was a multi-year effort and was a difficult one. Go type system is not a traditional type system and it was not possible just to bring an existing generics implementation from other language and be done. The current proposal was accepted after years of user research, experiments and discussions. The proposal got iterated a few times during the implementation phase. I found the final result delightful.
Source: Generics facilitators in Go.
Everyone is excited that after a decade or so of devs asking for generics, the Go programming language is getting generic types and functions in Go 1.18 in Q1 2022. Generics are no doubt going to lead to a lot of experiments, some good, some bad, some just weird. Go 1.18 is also poised to lead to an increase in software reliability by including fuzzing as part of the standard testing package. But today, I want to look at some minor changes in Go 1.18 that might otherwise get lost in all the excitement around the marquee features.
Source: Three Minor Features in Go 1.18, an article by Carl M. Johnson.
The article attempts to explore Golang’s “C” package which allows invoking C code from Golang. Before we get into the idea of invoking C code from Golang, let’s see a use-case where this might be needed.
Source: Invoking C Code from Golang, an article by Sarthak Makhija.
Friday, December 17, 2021, marked the thirty-fourth birthday of the Perl programming language, and coincidentally this year saw the release of version 5.34. There are plenty of Perl developers out there who haven’t kept up with recent (and not-so-recent) improvements to the language and its ecosystem, so I thought I might list a batch. (You may have seen some of these before in May’s post “Perl can do that now!”)
Source: 34 at 34 for v5.34: Modern Perl features for Perl’s birthday, an article by Mark Gardner.
I'm sure many programmers, particularly web developers have heard of the RSA cryptography system. RSA is an asymmetric cryptography system, meaning that one key is used for encryption and the other for decryption. I've seen a lot of articles explaining the general principles of asymmetric cryptography, but I have not seen any that give easy-to-understand explanations of the mathematical background behind these algorithms, so I decided to write this article.
In the last article RSA key generation and integer encryption were explained and implemented. This is good for demonstrating how the algorithm works, but it is not really usable if you want to exchange encrypted messages with someone. To be usable, it needs big random prime generation and text encryption, so those will be explained in this part.
Databases use sophisticated planning algorithms to determine best query execution strategy. An important aspect is deciding which indexes, if any, to use. This article explores why some indexes could be replaced by other existing indexes and how to identify them.
Source: Database Performance: Redundant Indexes, an article by Greg Navis.
Between Google Chrome experimenting with “following” sites, along with a growing frustration of how social media platforms limit a creator’s reach to their fans through algorithmic feeds, there’s been renewed interest in RSS feeds and they’re primed for a comeback as we get into 2022.
Source: Working With Web Feeds: It’s More Than RSS, an article by Farai Gandiya.