gpm_
Blog

Notes & posts

Writing on edge computing, artificial intelligence and distributed systems.

go October 31, 2022
How to implement DKIM signature with gomail

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.

tips May 13, 2020
How to import SVG vectors in Google Slides

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.

openfaas May 25, 2019
OpenFaaS-as-a-Service: what to know before building on top of the framework

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.

information-retrieval August 07, 2018
Personalized PageRank and its composability

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.

information-retrieval July 19, 2018
PageRank: from the beginning to practical examples

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.

mapreduce July 09, 2018
Hadoop custom keys: the right way

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.

gitlab-ci March 24, 2018
Configure Gitlab-CI and SSH for auto deploying

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.