Posts by Year



BGV in R

We begin by loading 2 packages, polynom for dealing with polynomials and my package HomomorophicEncryption which has several helper functions.

CKKS encode encrypt in R

This blog posts shows how to perform CKKS encoding and encryption, followed by decryption and decoding to obtain the original vector of complex numbers.

HEtools on PyPI

My new Python package HEtools is now on the Python Package Index (PyPI):


attention package on CRAN

The attention R package, describing how to implement from scratch the attention mechanism - which forms the basis of transformers - in the R language is now ...

Self-Attention from Scratch in R

EDIT 2022-06-24: this code is now available (with helper functions) in the R package attention, which is on CRAN. You can install it simply using:


Online Office Hours

With over a year working from home and an end not immediately in sight, I felt it was time to think a bit structurally about how to work remotely as effectiv...


Ron Graham’s Game

For a job interview at WHO I was asked by build a numeric version of Noughts and Crosses (Tic-Tac-Toe to some), this is called Ron Graham’s Game (repo).

Tech Learn Talks

Today I gave a presentation at the UN Innovation Network’s TechLearnTalks (archived, backup):


PWA of QR code to WhatsApp

Earlier this year I was in China, and in order to communicate with local delegates I installed WeChat. WeChat has a very handy feature that replaces exchangi...

ITU-D SG2 Briefing on FG-AI4H

The slides from my briefing on the ITU-WHO Focus Group on Artificial Intelligence for Health to Study Group 2 of the ITU Development Sector at their Workshop...

homomorphic encryption in R

Homomorphic encryption is allows computations to be performed on encrypted data. This has enormous potential in areas of machine learning that deal with priv...



Promoting Content in Africa

In the keynote at African Peering Forum (AfPIF) 2016 I presented the Promoting Content in Africa report written together with Michael Kende, these are the sl...

sigmoid package

The sigmoid package makes it easy to become familiar with the way neural networks work by demonstrating the key concepts using straightforward code examples.


Handcoding a Panel Model

The most basic panel estimation is the Pooled OLS model, this model combines all data across indices and performs a regular Ordinary Least Squares Estimation.

Hand Coding Instumental Variables

In a previous post we discussed the linear model and how to write a function that performs a linear regression. In this post we will use that linear model fu...

learNN package

The learNN package makes it easy to become familiar with the way neural networks work by demonstrating the key concepts using straightforward code examples....

Linear Model and Neural Network

In this short post I want to quickly demonstrate how the most basic neural network (no hidden layer) gives us the same results as the linear model.

WIOD data sets package

The wiod package is now available on CRAN. The package contains the complete WIOD data sets, in a format compatible with the decompr and gvc package.

Hand Coding Categorical Variables

In last week’s posts we discussed handcoding a linear model and writing a convenient function for this, in today’s post we will take this a step further by i...

The Linear Model from Scratch in R

When it comes to econometrics, the main take aways from the workshops are primarily in terms of the syntax of yet another computer program.

introducing diagonals

A new R package diagonals is now available on CRAN. The package implements several tools for dealing with fat diagonals on matrices, such as this one:

Quick experiment on embedding graphics.

diagonals in a network

A typical example in which diagonals can be helpful is Social Network Analysis. For example, if we use matrices to represent friendship perceptions between i...

gvc package on CRAN

A new R package gvc is now available on CRAN. The package implements several global value chain indicators


decompr on CRAN

I am proud to announce that after a few emails back and forth with Prof. Brian Ripley, which consisted mostly of me appologising for not following the proper...

Data Science Specialisation

Yesterday the Johns Hopkins School of Public Health published a post about their Data Science Specialisation on the online MOOC platform Coursera.

Learning R and Git

In yesterday’s post I discussed some of the principles I use to make my work replicable and - to an extent - reproducible. In this post I want to collect som...

Replicable Development Economics

The tagline of this blog says something replicable development economics using R and git. So far, I have posted gimmicks on new R tools such as shiny, rmarkd...

A jekyll blog

What are jekyll, markdown, and git(hub)? and why would you need all of this for a blog, in stead of a simple Blogspot of Wordpress page? The short answer is ...

The decompr package

I am proud to announce the beta version of the decompr R package. The package implements Export Decomposition using the Wang-Wei-Zhu (Wang, Wei, and Zhu 2013...

ggvis, shiny, and HTML5 slides

ggvis is wonderful new tool to create interactive graphics, which was build with Shiny apps in mind. In this post I will go over how you can create a Shiny a...