Blogs

DeFi on Ethereum, a Used Car in Gas Later

DeFi, decentralized finance, has grown by leaps and bounds over the past year. The future of Ethereum is DeFi, but what is the state and future of DeFi itself? How will the central banks react? Here is my take.
Decentralized finance is changing the world of lending, borrowing, swapping assets, investing, insurance, and more. This is all happening in a trustless fashion via smart contracts, primarily on the Ethereum blockchain. When I realized this, perhaps a bit late, in January of 2021; I became borderline obsessed. For the first time ever, regular people can act as their own banks, lending out money, swapping assets directly with counterparties, providing or purchasing insurance coverage and other derivatives.

A Gradual Journey to Typed Python

Python as a gradually typed language yeilds higher development velocity and reduced maintenance.
Python is much loved by developers for its ease of development, its low time to minimum viable product and, some might say, its dynamic typing. I’ve been using dynamically typed Python for the better part of a decade now, for those same reasons. Dynamically typed Python is rapid to develop in, features amorphous blobs of data and works great for writing code quickly. Gradual typing and static analysis split the difference between the reduced velocity of a strongly typed language and the likewise reduced velocity of maintaining code where the input and output data types are unclear.

A Socratic Study of Euclid's Elements

Using the Socratic approach for the study of Euclid's Elements to increase the breadth and depth of understanding.
Studying The Elements of Euclid reveals the foundations of mathematical rigour and the systems through the lens of which we see the world today. Though the end result of the concepts covered in many of the books of the Elements will be familiar to those who have completed high school maths; seeing Euclid’s system come together to weave the fabric of maths and understanding the proofs from first principles is another matter entirely.

Creating a Zettelkasten with Hugo

Why you need a Zettelkasten, what a Zettelkasten is, and how to create a portable Zettelkasten using hugo and git. Based on the ideas of Niklas Luhmann and Umberto Eco.
Why do I need a Zettelkasten? The idea of a Zettelkasten struck me in a chat recently. I have been keeping physical journals, using a modified form of bullet journalling, for a while; I had been keeping less structured notes before that, and ruminating on how to digitize them. After learning about the concept of Zettelkasten, it seemed like the solution; and that led me down the rabbit hole of investigation.

Mounting RBD at Boot Under CentOS 7

A quick and dirty guide on how to mount a ceph RBD at boot under CentOS 7
This tutorial covers mounting an RBD image at boot under CentOS 7. Make sure to unmount the RBD you want to have mount at boot before following this tutorial. This tutorial requires a CentOS 7 client with a client or admin keyring from Ceph, and a working Ceph cluster. This tutorial also assumes you have already created the RBD image you want to be mounted at boot. Let’s begin! Assumptions This tutorial assumes the node you are implementing this on has connectivity to a working ceph cluster and also assumes that kernel module RBD is enabled.

Install HHVM, Nginx on Ubuntu 14.04 - Make WordPress Fly

A guide to installing nginx and HHVM on Ubuntu 14.04
Installing HHVM and Nginx on Ubuntu 14.04 is the next step in the “Make WordPress Fly” series. This tutorial assumes you have completed the prerequisites, read Part 1 and completed Part 2 of this guide. At this point you have a reasonably secure box with MariaDB installed and configured. In this (Part 3) of the “Make WordPress Fly” guide we will start out by preparing our system for Nginx. The first step is to reconnect to your VM via SSH.

A Trip to Acoma Pueblo

A visit to the Acoma Pueblo in New Mexico, as a stop on a roadtrip that traversed most of the continental United States.
Back in November of 2013 I had the opportunity to visit the Navajo nation and the Hopi and Acoma Pueblos. The Acoma had a nice museum and guided tours of a mesa-top city know as “Sky City”. Acoma Pueblo is a Native American pueblo approximately sixty miles west of Albuquerque, New Mexico in the United States. Three villages make up Acoma Pueblo: Sky City (Old Acoma), Acomita, and McCartys. The Acoma Pueblo tribe is a federally recognized tribal entity.

Ceph Raw Disk Performance Testing

Tooling and methodology for testing the performance of disk devices with ceph osd.
Ceph raw disk performance testing is something you should not overlook when architecting a ceph cluster. When choosing media for use as a journal or OSD in a Ceph cluster, determining the raw IO characteristics of the disk when used in the same way ceph will use the disk is of tantamount importance before tens, hundreds or thousands of disks are purchased. The point of this article is to briefly discuss how ceph handles IO.

Installing WordPress with Nginx on Ubuntu 14.04

How to install WordPress on Ubuntu 14.04 with an nginx webserever.
Installing WordPress with Nginx on Ubuntu 14.04 is a fairly straightforward task. In this tutorial we will do over how to do it. This tutorial assumes you have completed the Getting Started with an Ubuntu VPS guide and have an Ubuntu 14.04 VPS (if not you can get one at vultr). It also assumes that you already have a LEMP stack setup (Linux, Nginx, MySQL, etcetera) or you are following the WordPress HHVM guide.

Hiking to Ciudad Perdida

Hiking to Ciudad Perdida, the Lost City in Colombia. A trip report, photos and reflections on the journey to Teyuna from Santa Marta.
The Trip On a Saturday evening in August of 2018 my other half and I and left the Upper East Side of Manhattan in a taxi bound for JFK. Excitement and apprehension were in the air as we were eager to leave, but about to commend our kids to my mother in law for a week. We had, and have not since, been away for so long from our children. After arriving, we were informed that we were extremely early.

Ceph OSD Performance: Backends and Filesystems

Ceph OSD performance on various filesystems and backends including btrfs, for the Atlanta ceph meetup.
Ceph OSD performance characteristics are one of the most important considerations when deploying a RADOS (Replicated Asynchronous Distributed Object Storage) cluster. Ceph is an open source project for scale out storage based on the CRUSH algorithm. An OSD is an “Object Storage Daemon”, which represents a journaling partition and a data storage partition in the Filestore backend implementation. An OSD is, in a broader sense where Ceph stores objects which hash to a specific placement group (PG).