<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Simon Marache-Francisco</title><link>https://www.marache.net/post.html</link><description>Recent content in Posts on Simon Marache-Francisco</description><generator>Hugo -- gohugo.io</generator><language>en-uk</language><lastBuildDate>Mon, 15 Sep 2025 08:37:05 +0100</lastBuildDate><atom:link href="https://www.marache.net/post/index.xml" rel="self" type="application/rss+xml"/><item><title>The next generation of self-hosting?</title><link>https://www.marache.net/post/2025-08-self-hosted-next-gen.html</link><pubDate>Mon, 15 Sep 2025 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2025-08-self-hosted-next-gen.html</guid><description>I have been trying to get more independent of third-party services. Over the years several of them have become unsuitable:
too complex to use because they keep adding features I don&amp;rsquo;t want abandoned/bought adverts and dark patterns increased subscription fees I also worry about them getting hacked (or one of their suppliers), or just selling my data outright.
I have been following the LLM space for some time now (book translation, RAG experiments, wiki of babel&amp;hellip;), and I have found a very nice use case for Claude code as way to get more independent.</description></item><item><title>The small migration</title><link>https://www.marache.net/post/2025-03-great-migration.html</link><pubDate>Thu, 20 Mar 2025 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2025-03-great-migration.html</guid><description>Given the recent events, I have been slowly migrating my internet presence to the EU and off the Big US Tech companies. As a secondary objective, I also wanted to get rid of subscriptions and have more control over my data. It has not been very hard, but it is a slow process given all the tools that have been experimenting with over the years.
So far:
email: Fastmail: I have been using them for years, without knowing that they had a strong EU presence.</description></item><item><title>Wiki of Babel. Experimenting with an infinite Wikipedia</title><link>https://www.marache.net/post/2024-10-26-wiki-of-babel.html</link><pubDate>Wed, 30 Oct 2024 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2024-10-26-wiki-of-babel.html</guid><description>Introduction I was talking with a friend about the library of babel (the book, and the online library). Inspired by my short experiments with RAG, I decided to see if I could make something similar: an infinite Wikipedia, where each keyword leads to a page, and pages have links between them. What is tricky is making sure that the wiki stays consistent.
Description It&amp;rsquo;s a pretty simple service: every top-level URL is valid and will return a webpage with content generated by an LLM.</description></item><item><title>Experiments with Retrieval-Augmented Generation (RAG or AI Search)</title><link>https://www.marache.net/post/2024-07-03-rag-ai-search.html</link><pubDate>Wed, 03 Jul 2024 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2024-07-03-rag-ai-search.html</guid><description>Over the weekend, I implemented a Retrieval-Augmented Generation (RAG) pipeline as an experiment. RAG is an AI-driven document search technique. While it is powerful and interesting, the fundamentals turned out to be a lot more basic than I expected.
The source code of the pipeline is available in the microProjects repo.
What does RAG or AI Search look like? From the point of view of the user, RAG is a sophisticated document search engine.</description></item><item><title>What I Have Been Up To</title><link>https://www.marache.net/post/2024-05-01-small-projects.html</link><pubDate>Wed, 01 May 2024 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2024-05-01-small-projects.html</guid><description>Recently, I&amp;rsquo;ve been working on a few small but fun projects. As usual it&amp;rsquo;s mostly about software, but there is a bit of (light) embedded too this time! These involve using MicroPython for a hardware project, creating a user-friendly interface for DALL-E, and setting up a self-hosted music streaming solution.
USB Volume Knob with CircuitPython I created a volume/media key USB controller for my desktop using MicroPython and a ProMicro microcontroller.</description></item><item><title>Automated French translation of the Lewis and Clark expedition journals using ChatGPT4 Turbo</title><link>https://www.marache.net/post/2023-12-lewis-clark-french-translation.html</link><pubDate>Tue, 26 Dec 2023 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2023-12-lewis-clark-french-translation.html</guid><description>Post in French
Introduction I was talking to my father about the Lewis and Clark expedition of 1804.
I found the original document (in the public domain) on the gutenberg project&amp;rsquo;s webpage. I translated a couple of entries for him and he looked interested. Unfortunately I couldn&amp;rsquo;t find any French translation of these work for him to read.
Given the simple nature of the medium (cleanly separated entries with a title), we wondered if we could use ChatGPT to perform the translation.</description></item><item><title>Traduction automatique du journal de Lewis et Clark à l'aide de ChatGPT4 Turbo</title><link>https://www.marache.net/post/2023-12-francais-expedition-lewis-clark-traduction.html</link><pubDate>Tue, 26 Dec 2023 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2023-12-francais-expedition-lewis-clark-traduction.html</guid><description>[Français] Presentation Ceci est une traduction française du livre &amp;ldquo;The Journals of Lewis and Clark, 1804-1806&amp;rdquo; qui contient les récits de voyages de William Clark et Meriwether Lewis lors de leur expédition à travers l&amp;rsquo;Amérique. Je n&amp;rsquo;ai pas pu trouver de traduction de ce texte en français et j&amp;rsquo;ai donc décidé d&amp;rsquo;utiliser GPT-4 Turbo d&amp;rsquo;OpenAI pour réaliser une traduction automatique. Bien que le résultat soit de très bonne qualité, je ne peux faire aucune promesse quant à la fidélité de la traduction.</description></item><item><title>Migrating my infra to Github Action</title><link>https://www.marache.net/post/2023-06-github-action.html</link><pubDate>Sat, 10 Jun 2023 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2023-06-github-action.html</guid><description>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.</description></item><item><title>A new project: Immediate mode UI in rust</title><link>https://www.marache.net/post/2023-05-immediate-mode-ui.html</link><pubDate>Mon, 22 May 2023 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2023-05-immediate-mode-ui.html</guid><description>I am a backend/DevOps, so I don&amp;rsquo;t have 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).</description></item><item><title>Hype cycle in tech</title><link>https://www.marache.net/post/2023-05-hype-cycle.html</link><pubDate>Sat, 20 May 2023 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/2023-05-hype-cycle.html</guid><description>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 &amp;ldquo;got&amp;rdquo; it. And now, I see it everywhere. There&amp;rsquo;s always a new technology promising to revolutionize everything, change the world, only to fall short of the (often exaggerated) expectations.
As I&amp;rsquo;ve grown older, I&amp;rsquo;ve come to realize that the most visible failures often thrive within a VC/media echo chamber, detached from the realities on the ground.</description></item><item><title>X As a Service</title><link>https://www.marache.net/post/as-a-service.html</link><pubDate>Wed, 20 Oct 2021 17:35:50 +0000</pubDate><guid>https://www.marache.net/post/as-a-service.html</guid><description>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:</description></item><item><title>Micro project: PNG Implementation, Chunk Decoding</title><link>https://www.marache.net/post/png.html</link><pubDate>Sun, 11 Jul 2021 10:50:27 +0000</pubDate><guid>https://www.marache.net/post/png.html</guid><description>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, &amp;hellip; and things got a bit out of hand&amp;hellip;
I am now reading the RFC1950 (zlib data format) and RFC1951 (DEFLATE algorithm), as they are used to encode the image data.</description></item><item><title>Micro project: md5 implementation</title><link>https://www.marache.net/post/md5.html</link><pubDate>Sun, 27 Dec 2020 10:50:27 +0000</pubDate><guid>https://www.marache.net/post/md5.html</guid><description>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&amp;amp;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.</description></item><item><title>3d terrain rendering for embedded hardware</title><link>https://www.marache.net/post/terrain-rendering.html</link><pubDate>Sun, 09 Aug 2020 10:50:27 +0000</pubDate><guid>https://www.marache.net/post/terrain-rendering.html</guid><description>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.</description></item><item><title>video stabilization using ffmpeg</title><link>https://www.marache.net/post/shake-reduction-ffmpeg.html</link><pubDate>Sat, 09 May 2020 10:10:00 +0000</pubDate><guid>https://www.marache.net/post/shake-reduction-ffmpeg.html</guid><description>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&amp;rsquo;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.</description></item><item><title>Migration to Kubernetes</title><link>https://www.marache.net/post/kubernetes.html</link><pubDate>Fri, 01 May 2020 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/kubernetes.html</guid><description>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.</description></item><item><title>Compiling Chicken Scheme scripts</title><link>https://www.marache.net/post/chicken-scheme-thoughts.html</link><pubDate>Sun, 18 Aug 2019 10:10:00 +0000</pubDate><guid>https://www.marache.net/post/chicken-scheme-thoughts.html</guid><description>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&amp;rsquo;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&amp;#39; (`K&amp;#39;), `m&amp;#39; (`M&amp;#39;) or `g&amp;#39; (`G&amp;#39;) suffix, meaning size times 1024, 1048576, and 1073741824, respectively.</description></item><item><title>Readline and pkg-config in ubuntu</title><link>https://www.marache.net/post/readline-pc.html</link><pubDate>Sat, 17 Aug 2019 10:10:00 +0000</pubDate><guid>https://www.marache.net/post/readline-pc.html</guid><description>I have been busy trying to learn Chicken scheme recently. The issue is that by default the REPL is a bit barebone. You are supposed to &amp;ldquo;augment&amp;rdquo; it by injecting a library of your choosing, like readline.
The documentation for the project is quite good, even if a recent transition to a new major version has left some part of it out-of-date.
I tried to install breadline, which provides bindings to the readline library, but the build process failed because pkg-config cannot provide the compiler flags for readline:</description></item><item><title>Temperature and Humidity logging: Arduino and ESP-01</title><link>https://www.marache.net/post/temperature-humidity-logging.html</link><pubDate>Thu, 01 Nov 2018 22:44:38 +0000</pubDate><guid>https://www.marache.net/post/temperature-humidity-logging.html</guid><description>We have problems with condensation in our house (UK weather). In order to evaluate the situation, I planned to log the day-to-day humidity and temperature. It seems to be a popular subject, with plenty of material online.
The DHT-22 is a popular sensor, fairly cheap, 3.3V and 5V compatible, with a very simple wiring: Only need GND, VCC, DATA. It seems to have a broad support on almost all platforms.</description></item><item><title>Back to c++</title><link>https://www.marache.net/post/update-cpp.html</link><pubDate>Sun, 20 May 2018 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/update-cpp.html</guid><description>I missed C++ since I started my job 2 years ago, and I think that now is the right time to have a look at what has changed. I bought Effective Modern C++, which is really well written and to the point. I am now going to update my old 3d rasterizer project with what I gained from the book. I already made a few changes to support SDL2, fixed a few cmake issues, added travis support to make sure it would build properly, and added support for the STL file format.</description></item><item><title>First look at the SICP</title><link>https://www.marache.net/post/sicp.html</link><pubDate>Sun, 08 Jan 2017 08:54:15 +0000</pubDate><guid>https://www.marache.net/post/sicp.html</guid><description>I have always been intrigued by the LISP family of languages, partly because of the &amp;ldquo;code is data&amp;rdquo; philosophy, and partly because of the simple syntax. I read recently a lot of praise for a book used at the MIT to introduce programming using Scheme (a LISP dialect): SICP. This book is apparently best enjoyed by experienced programmers who want to go deeper into the basics of programming.
I have downloaded an ebook version of this book and will give it a try.</description></item><item><title>Web sentry with SMS Notification using AWS Lambda</title><link>https://www.marache.net/post/aws-lambda-crawler.html</link><pubDate>Sun, 04 Dec 2016 18:28:39 +0000</pubDate><guid>https://www.marache.net/post/aws-lambda-crawler.html</guid><description>AWS Lambda lets you run code (python2, nodejs, java, C#) in response to events. It is optimized for short-running code. I decided to use it to watch a webpage, and notify me when a specific change happen. When a value gets under a threshold, I use AWS SNS, the notification system, to send myself a SMS alert.
Lambda provides a small text editor (you can upload larger codebases if necessary) that you can use to edit and test your code.</description></item><item><title>HTTPS</title><link>https://www.marache.net/post/https-website.html</link><pubDate>Mon, 21 Nov 2016 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/https-website.html</guid><description>I knew since the beginning that I had to comply with best practices and provide my website over a secure channel. Not that there is much to hide in a static, open source website, but at least this part of your surf will stay private (within limits).
This website is now stored on S3, but served though the CDN AWS Cloudfront which provides the (free) HTTPS certificate.
As a side note, I would like to thank everyone at Travis for this amazing service.</description></item><item><title>Gravity simulation</title><link>https://www.marache.net/post/gravity.html</link><pubDate>Sat, 29 Oct 2016 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/gravity.html</guid><description>I have always been fascinated by gravity simulations, and I have vivid memories of small simulators where you would create celestial bodies and watch them in motion.
As I wanted to see what the fuss was about TypeScript, I decided to make a simple gravity simulator featuring planets. My goal was to simulate trajectories of around a dozen bodies in real-time, in the browser.
Everything is based on Newton&amp;rsquo;s second law:</description></item><item><title>Moving to a static Website</title><link>https://www.marache.net/post/moving-to-hugo.html</link><pubDate>Fri, 21 Oct 2016 08:37:05 +0100</pubDate><guid>https://www.marache.net/post/moving-to-hugo.html</guid><description>While hosting my website all by myself is actually quite fun, it is however very time-consuming. Doing things right means taking care of security updates, features updates, backups, crashes, etc. And problems always arise when you are not ready to deal with them, like that time when my co-hoster decided to install a new kernel module that crashed completely our VPS instance. I was obviously with my parents this weekend and waiting for an important email.</description></item><item><title>Image generation acceleration using X86_64 SIMD extensions</title><link>https://www.marache.net/post/image-generation-avx.html</link><pubDate>Sun, 25 Oct 2015 20:36:12 +0100</pubDate><guid>https://www.marache.net/post/image-generation-avx.html</guid><description>The SSE and AVX2 extensions of the x86 instruction set can dramatically improve the speed of a program if you can optimize it for SIMD instructions.
I made a small test with a fractal generator, which lends itself very well to this kind of optimization. I was impressed by the results: In very little time, thanks to the intel intrisics guide, I have been able to reduce the rendering time by a factor of 6.</description></item><item><title>Seam carving</title><link>https://www.marache.net/post/seam-carving.html</link><pubDate>Sun, 07 Jun 2015 10:34:08 +0100</pubDate><guid>https://www.marache.net/post/seam-carving.html</guid><description>Let&amp;rsquo;s say you have a picture with an awkward ratio. You can&amp;rsquo;t print it anywhere without either cropping or rescaling. The technique described in the paper from S. Avidan and A. Shamir, Seam Carving for Content-Aware Image Resizing is a very nice and elegant solution to resize the picture without changing the pixel aspect ratio.
Original image (picture by Beverley Goodwin) Horizontal Shrink using naive resize on the left and Seam Carving on the right The picture on the right has all the features of the original image, with little distortion, but the aspect ratio is completely different.</description></item><item><title>Image processing using OpenCV</title><link>https://www.marache.net/post/image-processing-opencv.html</link><pubDate>Wed, 27 May 2015 08:22:50 +0000</pubDate><guid>https://www.marache.net/post/image-processing-opencv.html</guid><description>A few days ago I took a picture of the night sky using my camera, right in the middle of nowhere. I expected a nice clear picture but no matter where I looked, there was always some background light, and the sensor noise was quite strong:
Thumbnail of the original image: notice the haze I wanted to play with the python version of OpenCV for a long time, so this was a great opportunity to try to improve the result!</description></item><item><title>Coursera and Scala</title><link>https://www.marache.net/post/coursera.html</link><pubDate>Wed, 20 May 2015 20:36:12 +0100</pubDate><guid>https://www.marache.net/post/coursera.html</guid><description>I just discovered that coursera had several courses about Scala, made by the creator of the language Martin Odersky.
Functional programming: https://www.coursera.org/course/progfun Reactive programming: https://www.coursera.org/course/reactive I always wanted to try functional programming, and they seem to be a good place to start. I probably won&amp;rsquo;t have enough time to follow them through, but I started a small fractal generator in scala, using what I learned in the first few videos, and I really enjoy the language so far.</description></item><item><title>Augmented reality on Android</title><link>https://www.marache.net/post/augmented-reality-android.html</link><pubDate>Thu, 16 Apr 2015 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/augmented-reality-android.html</guid><description>With my friend Clement we have been working on an exciting new project lately: Augmented reality on the smartphone. The goal is to show on the screen the landmarks you are looking at through the camera.
Using your location (GPS), your direction (compass), and the location of the landmark (database), the program will show where the landmark should be on the screen.
Unfortunately, for now, I am stuck with a problem: Even when correcting for the magnetic inclination, the compass measurement is off by a small angle&amp;hellip;.</description></item><item><title>A new micro project: comparing performances between 'switch' and if-else-if-else in C++</title><link>https://www.marache.net/post/if-else-performance.html</link><pubDate>Tue, 07 Apr 2015 08:54:15 +0000</pubDate><guid>https://www.marache.net/post/if-else-performance.html</guid><description>I was having an argument with a coworker about the fastest method to branch in a code: lots of if/Else or a switch/case. I figured that the switch case would be faster, because the compiler would be less constrained than with the if/else, and could therefore use a better algorithm to select the right execution path.
To check this, I made a new entry in my microprojects repo, the aptly named switchVsIfElse.</description></item><item><title>Memory access: sequential vs. random</title><link>https://www.marache.net/post/memory-access-sequential-random.html</link><pubDate>Tue, 27 Jan 2015 08:59:48 +0000</pubDate><guid>https://www.marache.net/post/memory-access-sequential-random.html</guid><description>It is well known that accessing the memory in a non-sequential way is slower because it leads to a lot of cache miss. This micro-project was made to evaluate the difference in performance.
An array of 10 000 000 elements (size_t) is created. It represents a typical data structure that you will access in your program. A random list of 1 000 000 offsets is generated.
I compare the time used to fetch this million offset in a random order with the time used to fetch the same offsets, but in ascending (or descending) order.</description></item><item><title>Software rasterizer</title><link>https://www.marache.net/post/software-rasterizer.html</link><pubDate>Tue, 06 Jan 2015 22:44:38 +0000</pubDate><guid>https://www.marache.net/post/software-rasterizer.html</guid><description>Edit: there is a more recent post on this project. The new version has more feature and is finally able to render any STL.
This is the follow-up on a project I started on November 2010. The goal was to code a very simple rasterizer in c++. I used the framebuffer provided by the SDL library to perform the rendering. In other word, SDL only provide a canvas on which I &amp;ldquo;paint&amp;rdquo; the model, pixel by pixel.</description></item><item><title>Lost'n Phoned update</title><link>https://www.marache.net/post/new-lost-n-phoned.html</link><pubDate>Thu, 27 Nov 2014 22:47:32 +0000</pubDate><guid>https://www.marache.net/post/new-lost-n-phoned.html</guid><description>There were several bugs still present in this app, mostly under the new versions of Android.
I started a new project on Android, so I took some time to make this app more resilient to errors, and to do some extensive testing for KitKat.
Screenshot of the application The application is available on the Play store, and the source code is on Github.</description></item><item><title>Fractals in the browser using WebGl</title><link>https://www.marache.net/post/webgl-fractals-browser.html</link><pubDate>Mon, 27 Oct 2014 22:51:27 +0000</pubDate><guid>https://www.marache.net/post/webgl-fractals-browser.html</guid><description>Following my work on almost real-time fractals generation, I wanted to test OpenGL shaders. I have been really impressed with the results. You can render fractals in real-time on a full screen with an nvidia GTX 770. The shaders I have been using are probably not very optimized, but the results is great nevertheless.
Access the demo
Features: Julia fractal : You can change the values of c0 in the Julia function ( x&amp;rsquo;=x² + c0 ) Animations: The software will slowly change the values of the Julia function to animate the fractal.</description></item><item><title>Fractal Maps</title><link>https://www.marache.net/post/fractal-maps.html</link><pubDate>Sun, 31 Aug 2014 22:41:51 +0000</pubDate><guid>https://www.marache.net/post/fractal-maps.html</guid><description>I&amp;rsquo;m currently working on the second iteration of my fractal drawing software. The biggest problem of the original one (see here) was that you couldn&amp;rsquo;t move around like in Google Maps. The goal of this versions is to enable you to move around, and the software will generate pieces of the fractal on the fly.
Since it is not feasible, even on high-end hardware to generate 1080p fractal pictures in vanilla C# in real-time, I&amp;rsquo;m implementing a somewhat efficient caching system.</description></item><item><title>Small JS Files</title><link>https://www.marache.net/post/small-js-files.html</link><pubDate>Sun, 31 Aug 2014 22:05:13 +0000</pubDate><guid>https://www.marache.net/post/small-js-files.html</guid><description>I needed a robust counter for my work, but none of those I found were good enough. So I made mine ! The features list is small, and the interface is primitive, but it works. I needed mostly a way to get the exact time of every action, the time elapsed since the last action, since the beginning, and a spreadsheet-friendly output format.
And because it is always useful, there&amp;rsquo;s a programmer-friendly integer format converter too.</description></item><item><title>Mozaic Creator</title><link>https://www.marache.net/post/mozaic-creator.html</link><pubDate>Sat, 22 Mar 2014 22:06:49 +0000</pubDate><guid>https://www.marache.net/post/mozaic-creator.html</guid><description>This program will create a mosaic image made from thousands of thumbnails, close to a reference image :
WARNING: This is a small hack I made in a few afternoon, the code quality is pretty bad. 😔
You will need to provide a directory with the thumbnails used to generate the final image. How to generate it is left as an exercice to the reader.
Features Can handle more than 2000 small images.</description></item><item><title>Fractal Generator</title><link>https://www.marache.net/post/fractal-generator.html</link><pubDate>Mon, 13 Jan 2014 22:19:54 +0000</pubDate><guid>https://www.marache.net/post/fractal-generator.html</guid><description>I made this small project in C# (winforms). The interface may be (and most certainly is) confusing, but the concepts are rather simple, as long as you know a little bit about the fractal image generation.
Screenshot of FractalExplorer Some examples:
How it works It generates fractals. I am going to talk about the Julia set, but other fractals have been implemented. For Julia, C.real and C.Imag represents the parameter. This software will render the fractals using the CPU, with a bit of threading to make things run more smoothly (Parallel.</description></item><item><title>Android development</title><link>https://www.marache.net/post/android-development.html</link><pubDate>Thu, 29 Aug 2013 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/android-development.html</guid><description>I am currently working on four softwares, at various stage of completion:
SleekTodo, a simple Todo manager. Already on the Play Store, Sources. Lost&amp;rsquo;n&amp;rsquo;Phoned : A tool to help find your lost phone. Published on the Play Store, Source. Game100 : A simple number game, not enough polish, even if it works quite well ! Source. Screenshot of SleekTODO Updates 29/08/2013: Github links added, major improvements on SleekTODO 27/08/2013: Lost&amp;rsquo;n&amp;rsquo;Phoned is published, working on Game100 and SleekTodo 24/07/2013: First version of this page</description></item><item><title>Linux tips and tricks</title><link>https://www.marache.net/post/linux-tips-tricks.html</link><pubDate>Sun, 13 Jan 2013 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/linux-tips-tricks.html</guid><description>This post list a few tips that I discovered when I started working back in 2013. I have improved my knowledge a great deal over the last years but the information there can still be useful.
Bash (any) Use a default value if the variable is unset or null (see more on parameter expansion):
echo &amp;#34;${TEST:-default}&amp;#34; Transfer the parameters to a command:
test.sh: my_function &amp;#34;$@&amp;#34; test.sh &amp;#34;this has spaces&amp;#34; 25 =&amp;gt; my_function will correctly receive 2 parameters: &amp;#34;this has spaces&amp;#34; and 25.</description></item><item><title>MSGPCC on Linux</title><link>https://www.marache.net/post/msgpcc-linux.html</link><pubDate>Sun, 13 Jan 2013 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/msgpcc-linux.html</guid><description>This post is about compiling and uploading software to a Texas Instrument MSP board on linux.
I have been disappointed by the official MSP IDE, CCS because it is far too big for the small projects I am working on.
So I tried to use the MSP430 unofficial compiler, mspgcc. Nothing worked as expected. That is why I created this page to list all the tricks needed to make it work.</description></item><item><title>Battery Benchmark Results</title><link>https://www.marache.net/post/battery-benchmark-result.html</link><pubDate>Sat, 26 May 2012 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/battery-benchmark-result.html</guid><description>Why? Evaluate the effectiveness/cost ratio of several battery brands. I have been doing photography and caving for several years now, and I have used a lot of rechargeable and non-rechargeable batteries on flash, LED lamp etc. I had a few questions:
I observed that the batteries that worked so well on my headlamp were almost useless on my flash, so I wanted to investigate why. I used only cheap batteries because of their very low cost.</description></item><item><title>Battery Benchmark</title><link>https://www.marache.net/post/battery-benchmark.html</link><pubDate>Fri, 25 May 2012 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/battery-benchmark.html</guid><description>This page presents a benchmarking device for non-rechargeable battery. The idea is to use the TI Launchpad board as a voltmeter, and then to plot the voltage of a battery discharging over time. For this, I have to configure the MSP430 to make an acquisition every 60 seconds, and to store the result on the board. To make things simple, all the measurements are sent through the serial port every 15 seconds.</description></item><item><title>PhD Thesis (French)</title><link>https://www.marache.net/post/phd-thesis.html</link><pubDate>Wed, 01 Feb 2012 08:31:46 +0000</pubDate><guid>https://www.marache.net/post/phd-thesis.html</guid><description>Introduction Cette thèse a été soutenue le 14 Février 2012, et portait principalement sur les problématiques de la correction du mouvement respiratoire en imagerie TEP (Tomographie par émission de Positon). J&amp;rsquo;y présente une technique originale d&amp;rsquo;évaluation automatisée de la détectabilité des lésions, ainsi que la création d’une base de données patients simulés.
Evaluation de la correction du mouvement respiratoire sur la détection des lésions en oncologie TEP
Manuscrit de Thèse Présentation de Thèse Résumé La tomographie par émission de positons (TEP) est une méthode d’imagerie clinique en forte expansion dans le domaine de l’oncologie.</description></item></channel></rss>