A quick shout-out to everyone who built the web at its best. Using amazing tools, discoveringinspiring sites and communities, connecting with peersβno social networkβrocks.
Despite zero promotion, I occasionally get valuable feedback on this blog and my Shaarli. That means a lot, especially during tough times.
We build on the work of brilliant creatives who laid the groundwork. We save time thanks to countless articles, podcasts, tools and platforms crafted by talented people.
For every idea I have, someone smarter and more passionate probably already built something betterβI know that. Yet I keep building, hoping someone will one day build on my work. Maybe Iβll pave the way for others. So, although support is relevant, I prioritize building useful tools and sharing them with everyone.
In the recent years, as I feel powerless facing the enshittification in mainstream tech and social media, I've opted for alternatives to many of my previous favorite digital places and tools, namely:
Audible β‘ AudioBookShelf (or Plappa on iOs), alternatively Jellyfin (also supported by AudioBookShelf).
Google search engine β‘ DuckDuckGo.
Chrome browser β‘ Brave.
Google Calendar β‘ Fastmail.
Gmail β‘ Fastmail.
Google Tasks β‘ TickTick.
Google Office β‘ Obsidian.
Google Reader β‘ InoReader β‘ FreshRSS β‘ Miniflux.
Facebook β‘ Account closed. Attempted Mastodon, didn't like it.
Instagram β‘ Account closed. Attempted Pixelfed, but it's too buggy.
WhatsApp β‘ I use it mostly because everyone is on it, but I use Signal instead ideally.
SensCritique β‘ Account closed due to their authoritarian moderators.
Lobste.rs β‘ Account closed due to their elitist culture.
Twitter β‘ Account closed due to their enshittification. Attempted Mastodon, didn't like it.
OVH β‘ Account closed. Hostinger.
Docker Hub β‘ Docker Registry self hosted.
Dropbox, iCloud β‘ Replacing some of it with Syncthing.
Zerobin β‘ Privatebin.
Most Newsletters β‘ Kill the Newsletter! + Miniflux, alternatively Changedetection.
Last.FM β‘ ListenBrainz / MusicBrainz.
This is an ongoing list and non exhaustive, plus it's only about my digital life. I have a lot to say about work and housing as well. Opting for alternatives has also expanded my technical knowledge and independence (see also https://sive.rs/ti).
The main lesson: diversify, stay in control of your life, stay curious and choose freedom, privacy and security over convenience.
This is a meta post you will find on various blogs nowadays, anyway I find the answers so interesting when shared by other people, hence are mine.
The questions are:
Why did you start blogging in the first place?
What platform are you using to manage your blog and why did you choose it?
Have you blogged on other platforms before?
How do you write your posts? For example, in a local editing tool, or in a panel/dashboard that's part of your blog?
When do you feel most inspired to write?
Do you publish immediately after writing, or do you let it simmer a bit as a draft?
What's your favourite post on your blog?
Any future plans for your blog? Maybe a redesign, a move to another platform, or adding a new feature?1.
1. Why did you start blogging in the first place?
I wanted to share cool links to free games and free apps, in french, and mostly because I couldn't find such specialized blogs in the French speaking community.
2. What platform are you using to manage your blog and why did you choose it?
My first blog was hosted at Jeuxvideo.com, it was about free and open source video games and apps. Then I pivoted to blogotext hosted on free.fr to write about some productivity tools.
Following the hype I tried static site generators such as Hugo and Zola without much success as it was painful to feel like debugging whenever I wanted to maintain the tooling or customize my blog.
I've migrated the content of my blogotext to a WordPress hosted on OVH and that got me back into writing, for a time at least.
Nowadays I'm using WordPress managed on my Cloudron instance and hosted at Hetzner on my own VPS. I like the stability of WordPress and the ease to just be able to write anywhere using any device, any browser. Without caring about the maintenance of any tooling, upgrades etc.
3. Do you publish immediately after writing, or do you let it simmer a bit as a draft?
I tend to write best when I don't overthink, yet I suffer ADHD and I have 51 blog posts in draft state, I can't help.
4. Have you blogged on other platforms before?
I've only posted on a hosted platform in the past which was jeuxvideo.com. I do not believe anymore in the longevity of platforms after exiting a few social networks and few forums and communities. I've also observed the death of platforms I had invested time into.
5. How do you write your posts? For example, in a local editing tool, or in a panel/dashboard that's part of your blog?
Right in the WordPress editor, in my browser (btw, it's Brave).
6. When do you feel most inspired to write?
When I need to escape my thoughts and surrounding. When I'm expressing a problem or rant or anxiety. Or when I have to think clearly about a topic or elaborate my answer to an existing thread.
7. What's your favourite post on your blog?
Not posts but likely the π΅βπ« Guilty page which is about things I like too much.
8. Any future plans for your blog? Maybe a redesign, a move to another platform, or adding a new feature?
I'd like to keep the tooling minimal with HTML or plaintext. I do not like Markdown much, likely I'm a nostalgic.
I deal with computers, hence I want things to work the most boring and reliable way possible, with automation, procedures, scripts, not through magic.
Hence, while I love tools such as Atuin, I've a problem with their slogan "Making your shell magical" and generally speaking with any product using such selling argument, especially AILLM-based products.
For this reason, I'm usually against any kind of black box and one-for-everything tools and platforms that want to ease our lives by hiding the complexities. I think that the only result we get out of those abstractions is complexity, pain, and a culture of incompetence and dependability. I mean, if you want to deal with technology, at least you should understand it.
In the end, it's not all magic [1][2], but it can feel magic for sure once we lack understanding. Magic feels shiny and appealing after all, its antonyms say it all.
At work, there exist an onboarding procedure targeted towards new developers in the team, and this procedure relies on scripts which were left untouched for way too long. The bad things : the procedure is broken but nobody dares to fix it, instead the old timers in the team share dirty hacks and workarounds with the newcomers.
Once you face such problem, the only solution is to address the root causes, not the symptoms. I choose to take a look at the procedure, run it again and again after each attempted improvement, cut it piece by piece, shred or rewrite what seems unreliable and suspicious.
Magic exists, but Iβve never seen any in software. Problems are logical. Nothing is impossible. You can solve this problem.1
As a software engineer, please don't fix symptoms. Don't get too used to deal with crap and unsolved problems. Don't be lazy, don't accept the status quo, make the hard work to understand and solve the problems. Set your focus on understanding things deeper. Enhance your and everyone's knowledge. Be a firefighter against ignorance, and help educate your peers to be better at understanding why things work or doesn't.
I've been using a paid subscription to ChatGPT Plus since May 2023 and I'm still happy with the usage. It's one of those tools you have to master to get most of the time spent with it. There are a lot of benefits to use it, of course there are also negative aspects and bugs. Some of them can be mitigated, and that's the purpose of the current post.
Disclaimer / Context of use π§Ύ
I'm ChatGPT mostly for scripts and each conversation is focused on singular topics, i.e single-file codebases if possible.
I don't use Open API Keys and I'm not interested to use OpenAI directly. I've been on a paid plan for OpenAI and was charged way too much for my needs. I advise anyone to use ChatGPT Plus which remain to this day worth it and good enough both for personal and professional.
This article was not written nor reviewed by AI/ChatGPT.
Lessons learned - Do β
Shorten your expectations. Timebox your interactions with ChatGPT. If it takes longer than you expect to reach a solution, stop and do your homework instead, debugging yourself or simplify the problem to solve or take a break...
Test after each change. ChatGPT will make you lose faith by repeating the same mistakes, by removing sensitive code, by providing incomplete solutions, always verify.
Before running or committing anything generated by ChatGPT, always compare with the previous situation you had. Git diff the result of changes. If you have any doubt about a specific change, submit the git diff to ChatGPT for review and ask for explanations while also explaining why you have doubt (failing tests, errors at runtime, weird code removal, ...).
Tell ChatGPT to always decouple code in functions.
Instruct to use minimalist code, and avoid comments in code, respect your specific style (if you provide examples), instruct to write the code that takes the least amount of lines and space and to avoid long functions.
Divide to conquer: Keep one conversation per problem. Once done with the problem, validate the solution (test!), commit locally, and delete or archive the conversation to keep your Chat history clean from everything you don't need.
Take steps: Try to limit ChatGPT's attention to one single file or one single function at a time.
If you have lot of work you expect ChatGPT to perform for you, be patient and request one change at a time, then review the code diff and then the outcome, and only if it's validated, commit and move to the next step. ChatGPT sucks at multitasking. Keep the rest of your TODO list somewhere else to keep track of what remains to be requested from ChatGPT.
You will have a cleaner Chat if you take this habit:
Ask something from ChatGPT.
ChatGPT will answer you something, whatever it is, you will likely want to correct ChatGPT. Refrain yourself and do this instead: cancel what ChatGPT is doing, edit your last input to be more precise and re-submit it, ChatGPT will replace its unhelpful response with something more clever. And you will improve the overall quality of the discussion.
You will be given better results on popular topics than on niche topics / technologies.
Ask to only output the code that require change, e.g add this at the end of your prompt : just output the function(s) needing change
Ask to not change the existing comments, login logic, variables values in the code that is not impacted by the change.
If you really want to multitask, open multiple ChatGPT sessions (browser tabs) in parallel, each focused on distinct changes, so you can multitask while ChatGPT stays focused on single tasks π
One change at a time. If ChatGPT keeps making error, step back, restart from to the latest stable version of your code, and ask to make minimal changes, step by step, while you validate each increment.
When happy with your changes, ask ChatGPT to improve its performance or clean the code or keep it minimal.
When debugging your code with ChatGPT, provide stack traces, inputs, outputs and even the copy of the code that seems buggy (based on the stack trace).
Be suspicious if ChatGPT changes your code way too much or introduce weird changes to dependencies. Always review, check, investigate.
ChatGPT will likely be interesting to use only for writing very small and boring scripts to batch automate some tasks. But you are responsible for the whole, do not forget that. And test. And understand the code. Make it easy to understand and debug. If you can't explain it, rewrite.
ChatGPT could be good at documenting tasks or at writing tests, but for working on complex code it will mostly get 70% of the results then will suck your time and patience.
Lessons learned - Avoid β
Don't trust ChatGPT outputs. OpenAI is known for dreaming and also tends to complexify solutions to simple problems.
Don't run nor commit anything generated by ChatGPT that you don't understand and always compare ChatGPT's solution with what you had before.
Don't ask too many improvements or bug fixes at once or be prepared to deal with many new errors and regressions.
Don't keep conversations for too long, as all the initial context will likely be forgotten about by ChatGPT and you will suffer, also it will cause a lot of scrolling and augment the size of the web page which will be slower to load and will likely crash your browser tab at some point.
Don't switch context / files / problems in the same conversation. It's a waste of time and you will suffer later when trying to source specific content or make sense of anything.
Don't share secrets/passwords with ChatGPT.
Don't waste your time when the LLM seems confused or unable to solve your problem. Either reshape your problem statement or restart from the latest known stable state, ideally in a new conversation. Be confident in your own abilities. Don't be too dependent on any LLM. I once wasted a whole evening and night trying to get ChatGPT to write the solution for me then trying to use it to fix the problems it caused, I was too lazy to code something by myself from the start.
Don't expect ChatGPT to be as efficient on big codebases and complex problems as it is on small scripts and simple problems. So use it more often for the latter and keep the fun of solving the big problems yourself.
Don't expect ChatGPT to understand a single thing you do nor why he generates his code. it's a dumb machine without creativity built in. It has to be treated as such and with caution.
When trying to help you fixing problems caused by its previous solutions, ChatGPT may enter and endless loop of replacing one solution with another, without understanding the context. Before copy pasting anything from ChatGPT, make your own investigation and check the logs of the apps that do not behave as expected, before touching the code. If you find interesting logs, then provide those to ChatGPT or make your own investigation. Do not depend on ChatGPT for too much grunt and research work. You are better than that.
Don't expect ChatGPT to run well and fast on huge bloated scripts. That should encourage you to decouple your code into functions and modules and specialized files/modules/components/...
ChatGPT could be used to address the fact that solving some problems is costly in term of engineering. This XKCD meme below should be likely made obsolete if LLMs are used to provide the programs to automate the tasks. For instance when faced with some painful work, I rather use LLM to write me a script to tackle the task. It will be faster than me on some occasions, which itself help removing the need for manual work for tedious tasks, also help removing the need to prompt LLM in the future for that same task, since the script is already provided.
If you lose focus on the ChatGPT session in your browser, it's likely the calculation process will interrupt.
ChatGPT seems stuck at generating the output ? Refreshing the page might be enough, in other cases ChatGPT might automatically continue the generation or will show a button you can hit to force this action.
I recommend trying ollama so you can work offline and without feeding all your sensitive data into OpenAI.