<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vincent Germain, Product Engineer in Paris</title><link>https://www.vinzius.com/</link><description>Recent content on Vincent Germain, Product Engineer in Paris</description><generator>Hugo</generator><language>en-us</language><copyright>Vincent Germain</copyright><lastBuildDate>Tue, 10 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.vinzius.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Minimalist OpenClaw setup on a Macbook (+ ClawBox) with MiniMax</title><link>https://www.vinzius.com/post/minimalist-openclaw-setup-on-macbook-with-clawbox-and-minimax/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/minimalist-openclaw-setup-on-macbook-with-clawbox-and-minimax/</guid><description>&lt;p&gt;This tutorial aims to help you bootstrap your first OpenClaw instance.&lt;/p&gt;
&lt;p&gt;You definitely should think “small” to start with, and iterate over time. One of the biggest pitfalls when setting up this kind of tech, is giving up due to complexity.&lt;/p&gt;
&lt;p&gt;Once you have a basic setup, then you can start creating a specific goal for it (e.g. marketing, coding, etc). This tutorial aims to lighten the mental load of the initial setup.&lt;/p&gt;</description></item><item><title>How to Build an App Store Server Notifications SMS Alert</title><link>https://www.vinzius.com/post/how-to-build-app-store-server-notifications-sms-alert/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/how-to-build-app-store-server-notifications-sms-alert/</guid><description>&lt;h2 id="why-build-an-alert-system"&gt;Why build an alert system?&lt;/h2&gt;
&lt;p&gt;I recently added an in-app purchase subscription to &lt;a href="https://www.retinelle.app"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Retinelle&lt;/a&gt;
. Once the subscription was live, I wanted real-time alerts whenever something happens — a new subscriber, a renewal, a cancellation, a refund. Apple&amp;rsquo;s &lt;a href="https://developer.apple.com/documentation/appstoreservernotifications"
 target="_blank"
 rel="noopener noreferrer"
 &gt;App Store Server Notifications V2&lt;/a&gt;
 push these events to a URL you control, but I didn&amp;rsquo;t want to constantly check a dashboard.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how I built a tiny server that receives Apple&amp;rsquo;s notifications and forwards them as text messages.&lt;/p&gt;</description></item><item><title>Retreat in Cutigliano: Hiking, Chestnuts, and Italian Mountain Life</title><link>https://www.vinzius.com/post/retreat-in-cutigliano-abetone/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/retreat-in-cutigliano-abetone/</guid><description>&lt;p&gt;After a busy Parisian summer and a hectic back-to-school period, I needed a break. I decided to work remotely somewhere peaceful, ideally in Europe. After scouting around Lucca (awesome city, check it out!), I chose Cutigliano — a tiny medieval village in Tuscany&amp;rsquo;s mountains. Let me tell you about this little gem that became my home for a month.&lt;/p&gt;</description></item><item><title>Retinelle: Simple and Local-first Photo Inventory</title><link>https://www.vinzius.com/post/simple-local-first-photo-inventory-ios-retinelle/</link><pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/simple-local-first-photo-inventory-ios-retinelle/</guid><description>&lt;p&gt;&lt;a href="https://www.retinelle.app"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Retinelle&lt;/a&gt;
 is a local-first iOS app for building photo inventories in minutes: snap photos, group them into projects, and export polished PDFs while every image stays on your device for privacy.&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/post/simple-local-first-photo-inventory-ios-retinelle/photo-inventory-banner.jpeg"
 data-lightbox="gallery"
 
 data-caption="Photo Inventory App"
 
 
 data-pswp-width="1144"
 
 
 data-pswp-height="582"
 &gt;
 &lt;img src="https://www.vinzius.com/post/simple-local-first-photo-inventory-ios-retinelle/photo-inventory-banner.jpeg"
 alt="Photo Inventory App"
 loading="lazy"
 decoding="async"
 &gt;
 &lt;/a&gt;
&lt;/figure&gt;&lt;h2 id="why-i-built-retinelle"&gt;Why I Built Retinelle&lt;/h2&gt;
&lt;p&gt;Retinelle exists because I needed a better way to create a photo inventory. When I tried cataloging one of my family homes and its belongings, every app I tested felt bloated, slow, or overly cloud-dependent. I ended up copy-pasting thumbnails into a Google Sheet and emailing it.&lt;/p&gt;</description></item><item><title>Fumadocs tips for converting an existing Next.js project</title><link>https://www.vinzius.com/post/fumadocs-tips-converting-existing-nextjs-project/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/fumadocs-tips-converting-existing-nextjs-project/</guid><description>&lt;p&gt;I recently set up Fumadocs in an existing Next.js app and learned a few things along the way. Here are the practical notes I wish I didn&amp;rsquo;t have to dig out of the official documentation.&lt;/p&gt;
&lt;h2 id="1-add-a-custom-frontmatter-key"&gt;1. Add a custom frontmatter key&lt;/h2&gt;
&lt;p&gt;Fumadocs comes with only a few frontmatter keys, such as:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;title: My Page
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;description: Best document ever
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;icon: HomeIcon
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you start customizing the implementation, you&amp;rsquo;ll eventually need to add custom keys. As the documentation states, you can leverage the &lt;a href="https://fumadocs.dev/docs/mdx/collections#schema-1"
 target="_blank"
 rel="noopener noreferrer"
 &gt;schema&lt;/a&gt;
 in the &lt;code&gt;source.config.ts&lt;/code&gt; file.&lt;/p&gt;</description></item><item><title>How to Back up your computer to a S3 bucket with Restic and Autorestic</title><link>https://www.vinzius.com/post/how-to-backup-computer-to-s3-bucket-with-restic/</link><pubDate>Thu, 30 Nov 2023 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/how-to-backup-computer-to-s3-bucket-with-restic/</guid><description>&lt;p&gt;Having a copy of your data is a peace of mind! Let&amp;rsquo;s focus here on how to back up your computer to a S3 bucket at (almost) no cost with an open source solutions: Restic (and Autorestic).&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/static/2023-11-backup-computer-on-cloud-s3-with-restic.png"
 data-lightbox="gallery"
 
 data-caption="Backup your computer to S3"
 
 
 &gt;
 &lt;img src="https://www.vinzius.com/static/2023-11-backup-computer-on-cloud-s3-with-restic.png"
 alt="Backup your computer to S3"
 loading="lazy"
 decoding="async"
 &gt;
 &lt;/a&gt;
&lt;/figure&gt;&lt;h2 id="1-presentation-of-autorestic"&gt;1. Presentation of (Auto)Restic&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/restic/restic"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Restic&lt;/a&gt;
 is a cross-platform tool that backs up your files to different storage types, including online services such as S3 storages. Having some computer knowledge is required, so this technique is not available to everyone. However, the setup complexity is decent, especially if you use Autorestic.&lt;/p&gt;</description></item><item><title>The Evolving Landscape of Data Privacy</title><link>https://www.vinzius.com/post/evolving-landscape-of-data-privacy/</link><pubDate>Mon, 10 Apr 2023 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/evolving-landscape-of-data-privacy/</guid><description>&lt;p&gt;Let&amp;rsquo;s delve into the evolution of data privacy from websites to mobile apps and the potential challenges posed by the rise of augmented reality (AR) technology.&lt;/p&gt;
&lt;p&gt;The goal is to raise concerns about the future of data privacy and emphasize the need for continued vigilance to protect personal information in an increasingly interconnected digital world.&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/post/evolving-landscape-of-data-privacy/2023-04-futurist-monitor-sensitive-data.jpeg"
 data-lightbox="gallery"
 
 data-caption="Companies harvesting our data"
 
 
 data-pswp-width="1200"
 
 
 data-pswp-height="685"
 &gt;
 &lt;img src="https://www.vinzius.com/post/evolving-landscape-of-data-privacy/2023-04-futurist-monitor-sensitive-data.jpeg"
 alt="Companies harvesting our data"
 loading="lazy"
 decoding="async"
 
 title="Companies harvesting our data"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;Companies harvesting our data&lt;/figcaption&gt;
&lt;/figure&gt;&lt;h2 id="1-web-privacy-started-to-matter-in-2018"&gt;1. Web Privacy Started to Matter in 2018&lt;/h2&gt;
&lt;p&gt;Before May 2018, &lt;strong&gt;websites had more or less every right (and no shame) to track you in every way&lt;/strong&gt;, for various reasons (often for analytics, advertising, reselling your data, and minor stuff related to your browsing experience). Like I often heard when it comes to good conscience:&lt;/p&gt;</description></item><item><title>Recipe of the best Chocolate Spread, half Praline half Gianduja</title><link>https://www.vinzius.com/post/recipe-best-chocolate-spread-half-praline-hald-gianduja/</link><pubDate>Sun, 16 Oct 2022 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/recipe-best-chocolate-spread-half-praline-hald-gianduja/</guid><description>&lt;p&gt;I searched for a long time on how to have a good and « healthy » alternative to the commercial chocolate spread. Not easy to find, but easy to make! You mostly need the proper ingredients and a good mixer ; no particular cooking skill required.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This recipe is a good marriage between French and Italian cuisine:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Praline_%28nut_confection%29"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Praline&lt;/a&gt;
: invented in the 17th century in Montargis (France).&lt;/li&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Gianduja_%28chocolate%29"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Gianduja&lt;/a&gt;
: invented in the early 19th century in the Piedmont region (Italy), where hazelnuts are good and abundant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;99% of the people who tasted it have validated the recipe!&lt;/p&gt;</description></item><item><title>How to remove strange padding when snapshotting SwiftUI View using UIGraphicsImageRenderer on iOS 15</title><link>https://www.vinzius.com/post/how-to-remove-padding-when-snapshotting-swiftui-view-ios15/</link><pubDate>Sat, 06 Nov 2021 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/how-to-remove-padding-when-snapshotting-swiftui-view-ios15/</guid><description>&lt;p&gt;Snapshotting a SwiftUI View isn&amp;rsquo;t as convenient as for UIKit UIView, but it worked well for iOS 13 &amp;amp; 14. I encountered the padding issue while working on &lt;a href="https://antimatter.systems/labs/reversememesearch"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Reverse Meme Search&lt;/a&gt;
 during iOS 15 release, the exported images suddenly had some weird padding.&lt;/p&gt;
&lt;p&gt;If you just want the code, check this &lt;a href="https://gist.github.com/Vinzius/3196230a2902d4ad9d0d3a55d89befe1"
 target="_blank"
 rel="noopener noreferrer"
 &gt;GitHub Gist&lt;/a&gt;
.&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/static/2021-11-snapshotting-swiftui-view-padding.jpg"
 data-lightbox="gallery"
 
 data-caption="Exported Memes"
 
 
 &gt;
 &lt;img src="https://www.vinzius.com/static/2021-11-snapshotting-swiftui-view-padding.jpg"
 alt="Exported Memes"
 loading="lazy"
 decoding="async"
 &gt;
 &lt;/a&gt;
&lt;/figure&gt;&lt;h2 id="1-the-initial-code"&gt;1. The initial code&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s first review the code that was working well before iOS 15.&lt;/p&gt;</description></item><item><title>How to record and convert videos for App Store Previews</title><link>https://www.vinzius.com/post/app-store-previews-guidelines-conversion-tips-ffmpeg/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/app-store-previews-guidelines-conversion-tips-ffmpeg/</guid><description>&lt;p&gt;I decided to evaluate the impact of &amp;ldquo;Previews&amp;rdquo; for App Store (traffic) optimization on &lt;a href="https://apps.apple.com/us/app/pictory-photos-vers-pdf/id1543235495"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Pictory&lt;/a&gt;
. But creating a video takes time, especially if you plan to support half-a-dozen screen sizes and multiple languages! So, doing it manually could quickly become a complex chore, even more if you have to update them several times a year.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why I chose to automatically create the previews with fastlane, and reuse my snapshot target to quickly generate the videos.&lt;/p&gt;</description></item><item><title>How to interpolate values with Accelerate framework in Swift</title><link>https://www.vinzius.com/post/how-to-interpolate-with-accelerate-framework-in-swift/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/how-to-interpolate-with-accelerate-framework-in-swift/</guid><description>&lt;p&gt;I recently had to research methods to draw curves through a set of points. While interpolation wasn&amp;rsquo;t the most appropriate and efficient approach in my case, I still had some fun with the &lt;a href="https://developer.apple.com/documentation/accelerate"
 target="_blank"
 rel="noopener noreferrer"
 &gt;Accelerate framework&lt;/a&gt;
 (which optimizes large-scale mathematical computations).&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/static/2021-01-interpolation-accelerate-header.png"
 data-lightbox="gallery"
 
 data-caption="Accelerate Interpolation &amp;#43; SwiftUI"
 
 
 &gt;
 &lt;img src="https://www.vinzius.com/static/2021-01-interpolation-accelerate-header.png"
 alt="Accelerate Interpolation &amp;#43; SwiftUI"
 loading="lazy"
 decoding="async"
 &gt;
 &lt;/a&gt;
&lt;/figure&gt;&lt;h2 id="1-what-is-an-interpolation"&gt;1. What is an interpolation?&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;In the mathematical field of numerical analysis, interpolation is a type of estimation, a method of constructing new data points within the range of a discrete set of known data points. (Sheppard, William Fleetwood)&lt;/p&gt;</description></item><item><title>Automatically dismiss or pop a SwiftUI View when a NSManagedObject is deleted</title><link>https://www.vinzius.com/snippets/automatically-dismiss-or-pop-swiftui-view-when-nsmanagedobject-is-deleted/</link><pubDate>Sat, 26 Dec 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/snippets/automatically-dismiss-or-pop-swiftui-view-when-nsmanagedobject-is-deleted/</guid><description>&lt;p&gt;Managing the screen flow seems to be less flexible with SwiftUI than it is with UIKit. The options are still numerous depending on your application and the chosen architecture (e.g. redux). Here is a trick if you have a NSManagedObject and would like to close the related screen if the object becomes obsolete.&lt;/p&gt;
&lt;p&gt;From experience, it seems that Apple tries to automatically dismiss a screen if one of the &lt;code&gt;@EnvironmentObject&lt;/code&gt; is removed from memory (like &lt;code&gt;NSManagedObject&lt;/code&gt; being « deleted »). However I couldn’t find documentation about this behavior, and it didn’t work all the time (while it did most of the time).&lt;/p&gt;</description></item><item><title>How to convert an SVG to a SwiftUI Shape</title><link>https://www.vinzius.com/post/how-to-convert-svg-to-swiftui-shape/</link><pubDate>Wed, 23 Dec 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/how-to-convert-svg-to-swiftui-shape/</guid><description>&lt;p&gt;While it&amp;rsquo;s possible to use an SVG asset inside the Xcode project (since Xcode 12), we can only use it as a UIImage. So what about converting a SVG to a SwiftUI Shape?&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/static/2020-12-swiftui-svg-header.png"
 data-lightbox="gallery"
 
 data-caption="Lot of ISBN"
 
 
 &gt;
 &lt;img src="https://www.vinzius.com/static/2020-12-swiftui-svg-header.png"
 alt="Lot of ISBN"
 loading="lazy"
 decoding="async"
 &gt;
 &lt;/a&gt;
&lt;/figure&gt;&lt;h2 id="preface"&gt;Preface&lt;/h2&gt;
&lt;p&gt;Directly drawing forms (versus using static assets) is becoming a common practice since SwiftUI is making our life much easier. Before that, we had to use the &lt;code&gt;drawRect&lt;/code&gt; method. And while the performances and possibilities are endless, the coding is quite grumpy, making it our last resort with UIKit projects.&lt;/p&gt;</description></item><item><title>Dismiss modal or pop view inside a XCTest UI test</title><link>https://www.vinzius.com/snippets/dismiss-modal-pop-view-inside-xctest-ui-test/</link><pubDate>Wed, 09 Dec 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/snippets/dismiss-modal-pop-view-inside-xctest-ui-test/</guid><description>&lt;p&gt;When building an UI test, you often need to automatically close the visible modal or pop the view currently stacked. If you use the XCTest framework, then you have to only rely on what is visible on the screen (as if you were an user).&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/static/2020-12-close-view.png"
 data-lightbox="gallery"
 
 data-caption="Close buttons in navigation bar"
 
 
 &gt;
 &lt;img src="https://www.vinzius.com/static/2020-12-close-view.png"
 alt="Close buttons in navigation bar"
 loading="lazy"
 decoding="async"
 &gt;
 &lt;/a&gt;
&lt;/figure&gt;&lt;center&gt;&lt;i&gt;Close button in quick look modal&lt;/i&gt;&lt;/center&gt;
&lt;h2 id="usual-way"&gt;Usual way&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s say you have a button inside a SwiftUI view.&lt;/p&gt;</description></item><item><title>Free and Paid APIs to access books information via ISBN</title><link>https://www.vinzius.com/post/free-and-paid-api-isbn/</link><pubDate>Tue, 10 Nov 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/free-and-paid-api-isbn/</guid><description>&lt;p&gt;In the process of creating a new project, I had to look up for databases to access basic book information. I found various articles, but mostly incomplete or outdated. I hope this 2025 updated summary will help you!&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/post/free-and-paid-api-isbn/2020-11-10-free-paid-apis-isbn-header.jpg"
 data-lightbox="gallery"
 
 data-caption="Photo by antonio molinari"
 
 
 data-pswp-width="1200"
 
 
 data-pswp-height="480"
 &gt;
 &lt;img src="https://www.vinzius.com/post/free-and-paid-api-isbn/2020-11-10-free-paid-apis-isbn-header.jpg"
 alt="Lot of ISBN"
 loading="lazy"
 decoding="async"
 
 title="Photo by antonio molinari"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;Photo by antonio molinari&lt;/figcaption&gt;
&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;In short&lt;/strong&gt;: if you want quality data, you better have one of these three:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;be a recognized organization acting in the good of books.&lt;/li&gt;
&lt;li&gt;have some money.&lt;/li&gt;
&lt;li&gt;have some time (scraping and merging).
It&amp;rsquo;s likely that, due to recurrent abuses, public APIs had to restrict access over time.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let&amp;rsquo;s start with a &lt;strong&gt;quick comparison&lt;/strong&gt; between main actors. Read details whenever a &lt;code&gt;*&lt;/code&gt; is mentioned.&lt;/p&gt;</description></item><item><title>Thoughts on how to decide the right technologies for a project</title><link>https://www.vinzius.com/post/thoughts-how-to-decide-right-technologies/</link><pubDate>Thu, 22 Oct 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/thoughts-how-to-decide-right-technologies/</guid><description>&lt;p&gt;There is no perfect recipe, choosing a technology is like choosing a design pattern: « pick your poison ».&lt;br&gt;
As for any decision, everyone has its own process. Here are some thoughts I decided to share.&lt;/p&gt;
&lt;h2 id="1-stay-simple"&gt;1. Stay simple&lt;/h2&gt;
&lt;p&gt;As we say &lt;strong&gt;« simple is beautiful »&lt;/strong&gt;.&lt;br&gt;
The reason is that it often increases control by reducing complexity.&lt;/p&gt;
&lt;h3 id="however-this-can-be-interpreted-both-ways"&gt;However this can be interpreted both ways:&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Choosing a vanilla solution (e.g. language) to not include too much dependency. No need to kill a fly with a tank.&lt;/li&gt;
&lt;li&gt;Choosing a well-known solution (e.g. framework) to not reinvent the wheel. Quick to setup and contains a lot of work done.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Keep in mind&lt;/strong&gt; that the final goal is to deploy a product in the hand of end users:&lt;/p&gt;</description></item><item><title>How to digitize a 8mm film collection at low cost</title><link>https://www.vinzius.com/post/how-to-digitize-8mm-film-collection/</link><pubDate>Sun, 11 Oct 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/how-to-digitize-8mm-film-collection/</guid><description>&lt;p&gt;I recently took on digitizing the 8mm films of my grandparents. My grandfather having made his career at Kodak, he was more predisposed to take and store a lot of memories during his life (more than 1 hundred 8mm films, at least the ones he kept). I hope the content of this article will help you to decide what’s the best approach in your case!&lt;/p&gt;
&lt;figure&gt;
 &lt;a class="lightbox-link"
 href="https://www.vinzius.com/post/how-to-digitize-8mm-film-collection/2020-10-8mm-film-box.jpeg"
 data-lightbox="gallery"
 
 data-caption="Box of 8mm films"
 
 
 data-pswp-width="1200"
 
 
 data-pswp-height="440"
 &gt;
 &lt;img src="https://www.vinzius.com/post/how-to-digitize-8mm-film-collection/2020-10-8mm-film-box.jpeg"
 alt="Box of 8mm films"
 loading="lazy"
 decoding="async"
 &gt;
 &lt;/a&gt;
&lt;/figure&gt;&lt;h2 id="1-the-options-to-digitize-the-8mm-films"&gt;1. The options to digitize the 8mm films&lt;/h2&gt;
&lt;p&gt;In this article, I’ll mostly discuss how to digitize the films yourself with some amateur equipment.&lt;/p&gt;</description></item><item><title>Lies Beneath on Oculus Quest (Quick VR Review)</title><link>https://www.vinzius.com/post/lies-beneath-review-oculus-quest/</link><pubDate>Fri, 03 Apr 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/lies-beneath-review-oculus-quest/</guid><description>&lt;div class="admonition info"&gt;
 &lt;p class="admonition-title"&gt;
 &lt;svg class="icon admonition-title__icon"
&lt;pre&gt;&lt;code&gt; aria-hidden=&amp;quot;true&amp;quot;
 &amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;use href="https://www.vinzius.com/icons.svg#icon-info"&gt;&lt;/use&gt;
&lt;/svg&gt;
&lt;span class="admonition-title__label"&gt;Lazy summary&lt;/span&gt;
&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Lies Beneath is a survival horror game featuring a combination of XIII (comic style / gameplay) and Resident Evil 4 (ambiance).&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id="1-short-review"&gt;1. Short review&lt;/h2&gt;
&lt;p&gt;The scenario is brought step by step by some nice story telling. You don’t waste too much time listening to it, but quite enough to feel the vibes.&lt;/p&gt;
&lt;p&gt;You progress in the game as a girl looking for her dad (following a car incident). And as life isn’t hard enough, you have to kill weird creatures with blades, guns and other objects. Save points are achieved through campfires and oil lamps, so it doesn’t disrupt the narrative flow.&lt;/p&gt;</description></item><item><title>SwiftUI will be unavoidable, so be ready!</title><link>https://www.vinzius.com/post/swiftui-will-be-unavoidable/</link><pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/swiftui-will-be-unavoidable/</guid><description>&lt;p&gt;Announced at WWDC 2019, SwiftUI (associated to Combine) will be unavoidable starting from September 2020 (iOS 14).&lt;/p&gt;</description></item><item><title>Introduction to being Location Independent, aka Digital Nomad</title><link>https://www.vinzius.com/post/introduction-being-location-independent-aka-digital-nomad/</link><pubDate>Sun, 23 Sep 2018 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/introduction-being-location-independent-aka-digital-nomad/</guid><description>&lt;p&gt;The concept is far from new, but it&amp;rsquo;s taking a new dimension for since mid 2010s. People want to get away from &amp;ldquo;big cities&amp;rdquo;, be &amp;ldquo;free&amp;rdquo;, &amp;ldquo;experience&amp;rdquo; more, etc. And with the Uberisation (e.g. AirBNB for the accommodation), it has never been easier to jump into the unknown.
Who wants to only start traveling when they are 60yo+? In my case, I&amp;rsquo;ll probably be in a chair watching weird content through a virtual reality device (or whatever improvement we got!); or just maybe live in a &amp;ldquo;tiny house&amp;rdquo; deep inside the forest to avoid what civilisation became, who knows. There is no age to start this kind of life, but it&amp;rsquo;s definitely easier when you&amp;rsquo;re &amp;ldquo;young&amp;rdquo;, or let&amp;rsquo;s say without &amp;ldquo;obligations&amp;rdquo; (aka: limitations you created, or limitations you feel obligated to).&lt;/p&gt;</description></item><item><title>Back to Blogging with Hugo, a static website generator</title><link>https://www.vinzius.com/post/blogging-with-hugo-static-website-generator/</link><pubDate>Sun, 26 Aug 2018 00:00:00 +0000</pubDate><guid>https://www.vinzius.com/post/blogging-with-hugo-static-website-generator/</guid><description>&lt;p&gt;It has been a long time since I drafted some piece of content. To be more precise, my latest article dates from when I was still managing a video game website (see &lt;a href="http://www.lesjeuxvideo.com"
 target="_blank"
 rel="noopener noreferrer"
 &gt;LesJeuxVideo.com&lt;/a&gt;
). And my latest technical blog post is from 2010 when I started mobile programming (see for instance this article about iOS/UIButton at &lt;a href="http://www.geckogeek.fr/utiliser-un-uibutton-dans-une-uiview-sur-iphone.html"
 target="_blank"
 rel="noopener noreferrer"
 &gt;GeckoGeek.fr&lt;/a&gt;
 from 2009). So let&amp;rsquo;s not wait (almost) an entire decade before writing again.&lt;/p&gt;</description></item><item><title>About me</title><link>https://www.vinzius.com/about/</link><pubDate>Sun, 19 Aug 2018 20:06:00 +0200</pubDate><guid>https://www.vinzius.com/about/</guid><description>&lt;p&gt;Hey! I&amp;rsquo;m Vincent — a software engineer who loves creating, programming, thinking&amp;hellip; well, working on projects.&lt;/p&gt;
&lt;p&gt;For the full story, check out the &lt;a href="https://www.vinzius.com/projects/"&gt;Projects&lt;/a&gt;
 page. To see how I can help, head to &lt;a href="https://www.vinzius.com/expertise/"&gt;Expertise&lt;/a&gt;
. Or keep reading for a quick summary.&lt;/p&gt;
&lt;h2 id="long-story-short"&gt;Long story short&lt;/h2&gt;
&lt;p&gt;My experience started in the late 90’s, building websites from scratch. Over the years, I picked up the foundations of what it meant to be a webmaster (🤔 who still uses this word nowadays?). Let&amp;rsquo;s translate for nyancats: coding, servers, content writing, SEO, advertising, etc.&lt;/p&gt;</description></item><item><title>Antimatter Systems</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Collaborative meme studio for classrooms. Freelance iOS development.</description></item><item><title>Appsfire</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Pioneer in mobile app discovery. Worked on the discovery app (300k DAU) and the ad SDK adopted by hundreds of developers.</description></item><item><title>ATIS-ESIEA Research Lab</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>R&amp;amp;D internship: GIS on iPad, remote sensing, exploration robots (AUV/UAV), and tactile technologies.</description></item><item><title>ESIEA</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Engineering degree in Computer Science and Management.</description></item><item><title>ESIEA</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Co-developed and led an annual course blending mobile app development (Android and iOS) with startup business fundamentals.</description></item><item><title>Iteria</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Prototype development of a video recording tool (Java/Flash) and a web platform for online access.</description></item><item><title>KPS ESIEA</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Distributed 250 computers in rural Morocco to bridge the digital divide.</description></item><item><title>La Ruche qui dit Oui !</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Built the iOS app from scratch for this marketplace connecting consumers to farmers. Featured by Apple for one month.</description></item><item><title>LesJeuxVideo.com</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Video game content website built from scratch. Learned web development, SEO, and monetization hands-on.</description></item><item><title>Molotov TV</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Freelance iOS mission on the live TV streaming app. Focused on the iPad app: built reusable components, improved performance and stability.</description></item><item><title>NoDoxa</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Employee benefits optimization platform. Co-founded and built the product from zero.</description></item><item><title>Retinelle</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Catalog your belongings in seconds. Add photos and notes, keep projects tidy, and export to PDF or spreadsheet. Lightweight, private, and works offline.</description></item><item><title>Scaleway</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Cloud provider. Code generation tooling (Protobuf, Go) on the Open Source team, then Principal Engineer supporting the Transversal department across ~80 people.</description></item><item><title>Self-Employed</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Managed all aspects of content website creation, growth, and monetization for over a decade.</description></item><item><title>SportEasy</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Sports team management platform. Led mobile growth across iOS and Android. 1M+ users, 400k MAU.</description></item><item><title>Web-Fever</title><link/><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid/><description>Back-office tools and publisher-facing forums for a web advertising platform integrator.</description></item></channel></rss>