During early Ancient Greece (400s BC), whilst Hippocrates pioneered medicine and particularly skin disease categorisation, psoriasis (“psora”, for “itch”) and lepra (“lopos”, for “epidermis”) were often conflated. Much later during the Roman empire, another medical encyclopaedist by the name of Aulus Cornelius Celsus would go on to describe the skin condition and conflate it this time with…
In 2024, Geoffrey Hinton was awarded the Nobel Prize for his contributions to artificial intelligence. A key milestone in his work came in 2012 with AlexNet, a neural network he developed with his students Alex Krizhevsky and Ilya Sutskever , sparking a revolution in AI. But more than a decade earlier, in 2001, Paul Viola and Michael Jones first gave machines the ability to see you in real-time.…
When Balinese dancers are performing the Ramayana monkey chant dance, they move their hands and arms percussively. Secury Hashing Algorithms are a family of cryptographic hash functions published by NIST , a United States laboratory for the promotion of American innovation and industrial competitiveness by means of… you guessed it, establishing standards. SHA-0 (fka “original SHA”), SHA-1, SHA-2…
14.23.34.42.50.59.66.72 Do you know what this sequence is? About the New York city subway and computer science data structures — a blog post on real life city navigation and abstractions for efficient search. If you live in New York city maybe you guessed it. The sequence represents a trip on the New York city subway (or so I’m told). Stops 14, 23, etc. up until 72. The New York city subway is a…
Just recently learned about Okapi BM25 as a better information retrieval function for search engines (after the widely used “vanilla” TF/IDF) and it is hands down the best comp sci name I’ve come across. “Okapi BM25”, damn. Some history. Karen Spärck Jones was a pioneering British computer scientist responsible for the concept of inverse document frequency (1972); Elasticsearch still uses TF/IDF…
In Designing Data Intensive Applications , a great book by Martin Kleppmann , each chapter starts out with a fun map. It’s a distinctive and fun way to break the usual boring tone of entering a new monotonically incrementing chapter. The book reads like a mix of a distributed systems bible and a (quite large) pocket book for the majority of your state-of-the-art solutions for designing…
I’ve been learning more about Tensorflow Serving lately. If you are where I was at around a month ago and you’re not super familar with it, TF Serving is a “flexible, high-performance serving system for machine learning models, designed for production environments.” Follow a set of conventions ( over configuration ), and you can get a Tensorflow model up and running faster than ever before,…
This is going to be a quick one. Recently I had the opportunity to take part in the refactoring of some Elixir code. It looked something like this. Picture more interesting (and complex) logic in place of the classic, old and honestly a bit boring beverages example: defmodule Beverages do def prepare ( beverage_type ) do with :ok <- roll_up_sleeves (), { :ok , quantity } <- random_quantity (), {…
I’ve been learning Rust lately. I have also got back to playing futsal with some friends. Weirdly enough, these two worlds intersected a few weeks ago. This is a summary of my experience learning Rust. Starting with reading about it here and there , eventually getting the book , doing a Hackathon project at Onfido using it and then spinning up my own personal project as a way to further experiment…
I first heard about mutation testing when attending a Ruby meetup here in Lisbon. At the time Tadas presentation focused on mutant , the Ruby library for mutation testing by mbj . It sounded fun, but not very practical. I think that was because I didn’t understand the full scope, goals and philosophy, so to speak, of mutation testing. This post will help explore mutation testing and why Elixir is…