Simon Marache-Francisco

Migrating my infra to Github Action

  • 10/06/2023
  • POST
Over the year I have been using several platform to host my projects, from S3/cloudfront/ACM, docker-compose/VPS to k8s, back to docker-compose/VPS again. But I recently found out that github pages was supporting artifacts created by github actions and custom subdomains in the free tier. I then migrated most of my static projects: Scoring assistant for Archery: https://score.marache.net Simple hex/dec/binary converter: https://convert.marache.net This website: https://marache.net Recipe generator for Bread-making: https://pain.marache.net That was also a nice opportunity to clean up the remnant of the travis build pipelines, and replace them with github action pipelines.

A new project: Immediate mode UI in rust

  • 22/05/2023
  • POST
I am a backend/DevOps, so I haven’t a lot of opportunities to work on any kind of GUI. But at the same time, I am always fascinated by image generation (See my voxel renderer, software rasterizer, and many fractal generators), and having a simple engineering UI makes life much easier for the developer. Since my last project was (another) fractal generator, written in rust/OpenGL this time, I decided to look for a simple UI component that I could use to provide the interface, and stumbled on egui (the UI) + glow (the OpenGL bindings).

Hype cycle in tech

  • 20/05/2023
  • POST
I read about the gardner hype cycle a long time ago, but it is only in the last few years that I feel that I fully “got” it. And now, I see it everywhere. There’s always a new technology promising to revolutionize everything, change the world, only to fall short of the (often exaggerated) expectations. As I’ve grown older, I’ve come to realize that the most visible failures often thrive within a VC/media echo chamber, detached from the realities on the ground.

X As a Service

  • 20/10/2021
  • POST
I had a bit of fun over the last few months working on server apps. I focused on building simple, well-contained services that I would be able to use to learn new paradigm and languages: bibin: a swiss knife of a pastebin I started with something simple but useful to learn the rocket framework, SQLite and async programming in rust. I made a fork of bin, a very minimalist pastebin-like service, that I upgraded by adding all the features that I could think of:

Micro project: PNG Implementation, Chunk Decoding

  • 11/07/2021
  • POST
I wanted to have a quick look at the PNG implementation, to see if I could have a high level understanding of the W3C spec over the weekend. After a quick implementation of the chunk parsing logic in rust, I started to dig into the specification for the IDAT chunk, … and things got a bit ouf of hand… I am now reading the RFC1950 (zlib data format) and RFC1951 (DEFLATE algorithm), as they are are used to encode the image data.

Micro project: md5 implementation

  • 27/12/2020
  • POST
I made a simple implementation of the md5 algorithm based on the original RFC 1321 from 1992! It was quite interesting to see the original code for the reference implementation, as it is using the old-style K&R syntax. For instance, the types for function arguments are defined separately: /* Decodes input (unsigned char) into output (UINT4). Assumes len is a multiple of 4. */ static void Decode (output, input, len) UINT4 *output; unsigned char *input; unsigned int len; { I tried to stay as close as possible to the RFC, without considerations for speed.

3d terrain rendering for embedded hardware

  • 09/08/2020
  • POST
Screenshot in 1080p I had some fun writing a simple real-time ray-caster and a triangle rasterizer years ago as a student, and recently wanted to implement another of these old 3d rendering algorithms. I remembered being impressed by the voxel rendering of the Outcast and Delta Force games as a child, so it was an obvious next step. This project was a nice way to use my new PocketGo mini-game console.

video stabilization using ffmpeg

  • 09/05/2020
  • POST
With the lockdown, I had some time available to finally take a small video of the squirrels roaming outside. I tried to take a video with my camera and a tripod but couldn’t avoid some annoying shaking. I usually use youtube to do the de-shaking, but for some reason, they removed the feature recently, so I had to see what other options were available. I was looking for a way to zoom in the video as well, and I already had used FFmpeg before for that kind of thing so that was my first option.

Migration to Kubernetes

  • 01/05/2020
  • POST
It is never easy to get your company to move its entire infrastructure to the new shiny buzzwordy tech stack, and it is probably for the best. But the nice thing with your personal infra is that the stakes are lower, and the scope smaller. I have always been fascinated by Docker-based infra since I first came into contact with them (Mesos, Docker swarm, Docker compose), because they seem to provide a much lower coupling between the SysAdmin and the dev/devOps.

Compiling Chicken Scheme scripts

  • 18/08/2019
  • POST
A few things I have learned about building binaries with Chicken Scheme The binaries The binaries generated by the compiler have a hidden set of parameters that start with -:. They can be used to enable debugging, perform statistical profiling or control the garbage collector’s behavior: $ csc gen.scm $ ./gen -:? [Runtime options] -:? display this text -:c always treat stdin as console -:d enable debug output -:D enable more debug output -:g show GC information -:o disable stack overflow checks -:hiSIZE set initial heap size -:hmSIZE set maximal heap size -:hgPERCENTAGE set heap growth percentage -:hsPERCENTAGE set heap shrink percentage -:hSIZE set fixed heap size -:r write trace output to stderr -:p collect statistical profile and write to file at exit -:PFREQUENCY like -:p, specifying sampling frequency in us (default: 10000) -:sSIZE set nursery (stack) size -:tSIZE set symbol-table size -:fSIZE set maximal number of pending finalizers -:x deliver uncaught exceptions of other threads to primordial one -:b enter REPL on error -:B sound bell on major GC -:G force GUI mode -:aSIZE set trace-buffer/call-chain size -:ASIZE set fixed temporary stack size -:H dump heap state on exit -:S do not handle segfaults or other serious conditions SIZE may have a `k' (`K'), `m' (`M') or `g' (`G') suffix, meaning size times 1024, 1048576, and 1073741824, respectively.
Next
LATESTS
Migrating my infra to Github Action
  • 10/06/2023
  • POST
A new project: Immediate mode UI in rust
  • 22/05/2023
  • POST
Hype cycle in tech
  • 20/05/2023
  • POST
X As a Service
  • 20/10/2021
  • POST
Micro project: PNG Implementation, Chunk Decoding
  • 11/07/2021
  • POST
Micro project: md5 implementation
  • 27/12/2020
  • POST
3d terrain rendering for embedded hardware
  • 09/08/2020
  • POST
video stabilization using ffmpeg
  • 09/05/2020
  • POST
Migration to Kubernetes
  • 01/05/2020
  • POST
Compiling Chicken Scheme scripts
  • 18/08/2019
  • POST

© Simon Marache-Francisco

Powered by Hugo.

Robust designed by Daisuke Tsuji.