Notes & posts
Writing on edge computing, artificial intelligence and distributed systems.
A technical guide on how to implement DKIM email signing with the Go gomail module using the toorop/go-dkim library. The post explains the challenge of converting gomail Message objects to byte arrays required by the DKIM signer, demonstrates how to sign the message bytes, and then send the signed email using gomail’s Send() function.
A practical guide to importing SVG vector graphics into Google Slides using LibreOffice as a workaround. The post details step-by-step instructions: importing SVGs into LibreOffice Impress, breaking and grouping elements, saving as a .pptx file, uploading it to Google Drive, and then opening it with Google Slides to enable vector editing and copying.
An overview of how to extend OpenFaaS beyond its default behavior by building custom services and schedulers on top of the framework. The article explains how OpenFaaS functions operate within Docker Swarm, how to integrate custom services through REST APIs, networking, and secrets, and provides guidance for creating a custom scheduler to enable fine-grained, per-function invocation policies in a serverless environment.
An advanced exploration of Personalized PageRank, explaining how teleportation can be directed toward specific nodes to create topic-specific rankings. The post covers handling dead ends, introduces the concept of composability for combining multiple topics into a single personalization vector, and provides practical SageMath examples to demonstrate the formulation and computation of user-adapted PageRank.
An accessible introduction to the PageRank algorithm, explaining its mathematical foundations, the random surfer model, rhgt9y matrices, and the power method. The post also covers key challenges such as spider traps and dead ends, demonstrates how teleportation resolves them, and includes practical SageMath examples for computing PageRank step by step.
An in-depth guide to implementing custom keys in Hadoop MapReduce, showing how to solve a graph edge inversion problem with a custom EdgeWritable type. It explains the importance of consistent hashCode and compareTo methods, common pitfalls, and how to correctly extend WritableComparable for reliable key handling in distributed processing.
A practical guide on configuring GitLab CI with SSH for automatic deployments, covering secure server setup, SSH key integration, remote directory mounting with SSHFS, and executing commands on the target machine for a streamlined CI/CD workflow.