<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>The Valuable Dev</title><link>https://thevaluable.dev/</link><description>Recent content on The Valuable Dev</description><generator>Hugo</generator><language>en-us</language><copyright>All right reserved - 2021</copyright><lastBuildDate>Sun, 01 Jun 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://thevaluable.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>A Practical Guide to fzf: Building a Git Explorer</title><link>https://thevaluable.dev/fzf-git-integration/</link><pubDate>Wed, 27 Mar 2024 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/fzf-git-integration/</guid><description>&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a fzf master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/practical-guide-fzf-example/">A Practical Guide to fzf: Building a File Explorer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-shell-integration/">A Practical Guide to fzf: Shell Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-vim-integration/">A Practical Guide to fzf: Vim Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-git-integration/">A Practical Guide to fzf: Building a Git Explorer&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>It&amp;rsquo;s again a boring day in the offices of MegaCorpMoneyMaker, the company you&amp;rsquo;re working with. As often you&amp;rsquo;re writing spaghetti code, not because you&amp;rsquo;re a bad developer, but because your deadlines are incredibly short, your motivation non-existent, and your colleagues care more about their promotions than their actual work.&lt;/p></description></item><item><title>A Practical Guide to GNU sed With Examples</title><link>https://thevaluable.dev/sed-cli-practical-guide-examples/</link><pubDate>Sat, 27 Jan 2024 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/sed-cli-practical-guide-examples/</guid><description>&lt;p>The sun is shining today; too bad, you&amp;rsquo;re stuck in the office of your beloved company, MegaCorpMoneyMaker. Your task is to delete specific lines across thousands of XML files; it&amp;rsquo;s the &amp;ldquo;API&amp;rdquo; of an external warehouse, and, as always, they screwed it up.&lt;/p>
&lt;p>You begin to write a script using your favorite programming language, when suddenly Davina, your colleague developer, comes to your desk:&lt;/p>
&lt;p>&amp;ldquo;You know that you don&amp;rsquo;t have to write a script to do that? You could simply use sed in your terminal.&amp;rdquo;&lt;/p></description></item><item><title>A Practical Guide to fzf: Vim Integration</title><link>https://thevaluable.dev/fzf-vim-integration/</link><pubDate>Mon, 27 Nov 2023 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/fzf-vim-integration/</guid><description>&lt;p>This article is the third part of a series about fzf:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a fzf master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/practical-guide-fzf-example/">A Practical Guide to fzf: Building a File Explorer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-shell-integration/">A Practical Guide to fzf: Shell Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-vim-integration/">A Practical Guide to fzf: Vim Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-git-integration/">A Practical Guide to fzf: Building a Git Explorer&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>Davina, your colleague developer, explained in the two previous articles of the series how to use and configure fzf for the shell. This time, she&amp;rsquo;s back to explain how to use fzf directly in the Best Editor in the Known Universe™, &lt;del>Emacs&lt;/del> Vim (or Neovim).&lt;/p></description></item><item><title>A Practical Guide to GNU grep With Examples</title><link>https://thevaluable.dev/grep-cli-guide-examples/</link><pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/grep-cli-guide-examples/</guid><description>&lt;p>It&amp;rsquo;s rainy and dark outside, and it&amp;rsquo;s not going better inside: another depressing day at MegaCorpMoneyMaker, the company you&amp;rsquo;re working for. Of course, you need to debug the 28925th bug of the day; some cursed prices made their way into the database, finally reflecting the real value of the low quality products the company is selling. Your manager, of course, doesn&amp;rsquo;t see this unfortunate change as positively.&lt;/p>
&lt;p>These prices are imported from files you&amp;rsquo;re fetching from an FTP. You need to search through all these files to find out where the weird pricing is coming from, and you don&amp;rsquo;t really know how to do that without losing your time (and your mind).&lt;/p></description></item><item><title>A Practical Guide to GNU find With Examples</title><link>https://thevaluable.dev/find-cli-guide-examples/</link><pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/find-cli-guide-examples/</guid><description>&lt;p>Another boring day at MegaCorpMoneyMaker, the company you&amp;rsquo;re working with. You have the most exciting task anybody would ask for: modifying the README of an obscure microservice due to recent changes from your team. Looking at the project, you realize that it has way too many files, and worse, that the readme file is nowhere to be found!&lt;/p>
&lt;p>Anxious, you ask Davina, your colleague developer, how to find this file. She tries to help:&lt;/p></description></item><item><title>A Guide to Problem-Solving for Software Developers with Examples</title><link>https://thevaluable.dev/problem-solving-guide-software-developer/</link><pubDate>Sat, 27 May 2023 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/problem-solving-guide-software-developer/</guid><description>&lt;p>If I ask you, out of the blue, what&amp;rsquo;s the role of a developer, what would you answer? Coding all day? Drinking coffee? Complaining about the management?&lt;/p>
&lt;p>To me, a developer is first and foremost a problem solver, simply because solving problem is the most important (and the most difficult) part of our job. After all, even if our code is perfect, clear, performing great, a masterpiece of form and meaning, it&amp;rsquo;s useless if it doesn&amp;rsquo;t solve the problem it was meant to solve.&lt;/p></description></item><item><title>Neovim and Tree-sitter: An Overview with Examples</title><link>https://thevaluable.dev/tree-sitter-neovim-overview/</link><pubDate>Sun, 30 Apr 2023 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/tree-sitter-neovim-overview/</guid><description>&lt;p>It&amp;rsquo;s again a boring day for you and your colleagues at the offices of MegaCorpMoneyMaker, the company you work for. Davina, your colleague developer, seems to be fascinated by a tree you can see through a small window; curious, you ask her what she&amp;rsquo;s thinking about.&lt;/p>
&lt;p>&amp;ldquo;I was considering configuring Tree-sitter for the Best Editor In The Universe™!&amp;rdquo;, she answers with sudden determination. Wondering what was this Tree-sitter she&amp;rsquo;s speaking about, but too afraid to show your lack of knowledge, you answer that sitting on a tree has nothing to do with editors, and she should go see a doctor.
She looks at you with amusement, before pulling you suddenly to her computer. &amp;ldquo;Tree-sitter is a library able to create a parse tree from some source code. Neovim can use it to implement different functionalities, like syntax highlighting for example.&amp;rdquo;&lt;/p></description></item><item><title>A Practical Guide to fzf: Shell Integration</title><link>https://thevaluable.dev/fzf-shell-integration/</link><pubDate>Mon, 27 Feb 2023 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/fzf-shell-integration/</guid><description>&lt;p>This article is part of a series about fzf:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a fzf master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/practical-guide-fzf-example/">A Practical Guide to fzf: Building a File Explorer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-shell-integration/">A Practical Guide to fzf: Shell Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-vim-integration/">A Practical Guide to fzf: Vim Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-git-integration/">A Practical Guide to fzf: Building a Git Explorer&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>In the &lt;a href="https://thevaluable.dev/practical-guide-fzf-example/">previous article of this series&lt;/a>, Davina (your colleague developer) explained how powerful fzf can be to create our own fuzzy search and, to an extent, our own TUIs.&lt;/p></description></item><item><title>A Practical Guide to fzf: Building a File Explorer</title><link>https://thevaluable.dev/practical-guide-fzf-example/</link><pubDate>Fri, 27 Jan 2023 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/practical-guide-fzf-example/</guid><description>&lt;p>This article is the first part of a series about fzf:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a fzf master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/practical-guide-fzf-example/">A Practical Guide to fzf: Building a File Explorer&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-shell-integration/">A Practical Guide to fzf: Shell Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-vim-integration/">A Practical Guide to fzf: Vim Integration&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/fzf-git-integration/">A Practical Guide to fzf: Building a Git Explorer&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>It&amp;rsquo;s again a sunny day! Desperate, you&amp;rsquo;re looking through the windows. You&amp;rsquo;re locked up in the offices of MegaCorpMoneyMaker, the company you&amp;rsquo;re working for.&lt;/p></description></item><item><title>A Guide to the Terminal, Console, and Shell</title><link>https://thevaluable.dev/guide-terminal-shell-console/</link><pubDate>Tue, 27 Dec 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/guide-terminal-shell-console/</guid><description>&lt;p>This is a boring morning for every employee of MegaCorpMoneyMaker, the famous E-commerce. You are no exception: only dragging yourself out of your bed to crawl to your office required some superhuman efforts.&lt;/p>
&lt;p>Dave, your colleague developer, loudly explain to an intern what she should do to connect to one of the company&amp;rsquo;s Kubernetes cluster. &amp;ldquo;So, now, you need to open your virtual shell for your terminal to request information from your console using Bash. Does it make sense?&amp;rdquo;.&lt;/p></description></item><item><title>Diving Deeper in Vim Regular Expressions</title><link>https://thevaluable.dev/vim-regular-expressions-in-depth/</link><pubDate>Sun, 27 Nov 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-regular-expressions-in-depth/</guid><description>&lt;p>This is the second article of a series about regular expressions in Vim:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Regular expressions in vim
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/regular-expression-basics-vim-grep/">The Basics of Vim Regular Expressions&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-regular-expressions-in-depth/">Vim Regular Expressions in Depth&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>We&amp;rsquo;ve seen, in the first article, general metacharacters we can use in our Vim regexes, as well as equivalent Perl-style regexes we can use with other tools (like &lt;a href="https://themouseless.dev/posts/grep-basics-mouseless/" target="_blank" rel="noopener">GNU grep&lt;/a>). This time, we&amp;rsquo;ll dive deeper in Vim&amp;rsquo;s regex engine by looking at more metacharacters we can use in our favorite editor.&lt;/p></description></item><item><title>The Basics of Vim Regular Expressions</title><link>https://thevaluable.dev/regular-expression-basics-vim-grep/</link><pubDate>Sat, 22 Oct 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/regular-expression-basics-vim-grep/</guid><description>&lt;p>This is the first part of a series of articles about regular expressions in Vim. Here&amp;rsquo;s the complete table of content:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Regular expressions in vim
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/regular-expression-basics-vim-grep/">The Basics of Vim Regular Expressions&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-regular-expressions-in-depth/">Vim Regular Expressions in Depth&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>&amp;ldquo;We should never write regular expressions. They are difficult to learn, understand, and maintain. They can spiral in a wormhole of quantum complexity. We should burn them to the ground!&amp;rdquo;&lt;/p>
&lt;p>That was Dave, your colleague developer, patronizing you for using a simple regex to parse an HTML file. Even if you don&amp;rsquo;t like the tone of your colleague, you ask yourself: are regular expressions that bad? Should we use them?&lt;/p></description></item><item><title>File Management Tools for Your Favorite Shell</title><link>https://thevaluable.dev/file-management-tools-linux-shell/</link><pubDate>Sat, 27 Aug 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/file-management-tools-linux-shell/</guid><description>&lt;p>Going around your files and directories using the shell can feel slow and confusing, and not only when you&amp;rsquo;re a beginner. Personally, I was using GUIs (Graphical User Interfaces) to display, rename, move, and delete my files for a long time. It took me a couple of years to really get used to the shell to perform these operations. Today, I only use the shell to manage my files, and I think it is the better way.&lt;/p></description></item><item><title>The Cognitive Load Theory in Software Development</title><link>https://thevaluable.dev/cognitive-load-theory-software-developer/</link><pubDate>Wed, 27 Jul 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/cognitive-load-theory-software-developer/</guid><description>&lt;p>&amp;ldquo;Our codebase is easy to understand. You won&amp;rsquo;t need more than a couple of hours. You&amp;rsquo;ll be productive right away! Guaranteed!&amp;rdquo;&lt;/p>
&lt;p>It&amp;rsquo;s Dave, your colleague developer, explaining to a new employee how one of the codebase of your company shines like a diamond. The three of you work at MegaCorpMoneyMaker, the famous e-commerce. Looking at the codebase, with its millions of lines of code, arbitrary boundaries, and unexpected dependencies, you wonder how Dave can have so much confidence in his &amp;ldquo;explanations&amp;rdquo;. Davina, another one of your colleague, seems perplex, too; she listens patiently on a desk not far from yours.&lt;/p></description></item><item><title>Managing Local and Remote Filesystems with Vim and netrw</title><link>https://thevaluable.dev/vim-browsing-remote-netrw/</link><pubDate>Mon, 27 Jun 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-browsing-remote-netrw/</guid><description>&lt;p>When I began to use Vim, everybody was using &lt;a href="https://github.com/preservim/nerdtree" target="_blank" rel="noopener">NERDTree&lt;/a>. So I followed: to navigate through my filesystem, NERDTree would be the answer for many years to come.&lt;/p>
&lt;p>Nowadays, I mostly use a &lt;a href="https://github.com/junegunn/fzf.vim" target="_blank" rel="noopener">fuzzy finder&lt;/a> to find the files I want, but a file explorer can still be useful in some situations:&lt;/p>
&lt;ol>
&lt;li>When I look at a new codebase. It helps to have a general overview of the filesystem, to understand the structure of the project.&lt;/li>
&lt;li>When I need to create, update or delete files and directories.&lt;/li>
&lt;/ol>
&lt;p>The more I use Vim, the more I try to get rid of my plugins, to use Vim&amp;rsquo;s native functionalities as much as possible. It&amp;rsquo;s easier than keeping track of 39093209 plugins introducing breaking changes too often. That&amp;rsquo;s why my interest for netrw grew overtime.&lt;/p></description></item><item><title>Measuring Software Complexity at the Command Line</title><link>https://thevaluable.dev/complexity_metrics_application/</link><pubDate>Fri, 27 May 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/complexity_metrics_application/</guid><description>&lt;p>This is the third article of my series about complexity metrics:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Measuring complexity
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/complexity-metrics-software/">What Metrics to Use?&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/complexity-metrics-environment/">The Impact of the Environment&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>I began a new job last January. New job means new colleagues, new offices, new business domain, and new codebases.&lt;/p>
&lt;p>It wasn&amp;rsquo;t the first time I changed job. It&amp;rsquo;s quite common for developers nowadays to jump from company to company. But it doesn&amp;rsquo;t change the fact that, in these situations, we need to adapt to basically everything. It&amp;rsquo;s quite tiring; that&amp;rsquo;s why having some process to overcome this period more easily is always welcome.&lt;/p></description></item><item><title>How to Create Vim Text-Objects in Lua</title><link>https://thevaluable.dev/vim-create-text-objects/</link><pubDate>Wed, 27 Apr 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-create-text-objects/</guid><description>&lt;p>&amp;ldquo;You don&amp;rsquo;t get it. Vim is like a language! You&amp;rsquo;ll speak Vim when you write! When you go to the market! You&amp;rsquo;ll speak Vim with your cat! When you think, it will be the Word of Vim™ in your head! You&amp;rsquo;ll see! It will change your life!&amp;rdquo;&lt;/p>
&lt;p>This is the kind of argument any Vim hippy would sing to the poor heretics, trying to convert them to The Eternal Editor. A hippy like me, who&amp;rsquo;s now writing an article about one of the main component of this &amp;ldquo;language&amp;rdquo;, the &lt;em>text-object&lt;/em>. Repeat after me: glory to the text-object!&lt;/p></description></item><item><title>Cohesion and Coupling in Software with Examples</title><link>https://thevaluable.dev/cohesion-coupling-guide-examples/</link><pubDate>Sun, 27 Mar 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/cohesion-coupling-guide-examples/</guid><description>&lt;p>You&amp;rsquo;re a developer at BigBuckEcommerce, the famous retailer, and you have to sit through one of these usual never-ending meetings.&lt;/p>
&lt;p>Dave, your colleague developer, who never seems to run out of steam when it&amp;rsquo;s about monopolizing a meeting, claims loudly:&lt;/p>
&lt;p>&amp;ldquo;Our system is the most horrible system we&amp;rsquo;ve ever seen since the days of COBOL and FORTRAN! Everything is coupled together, it&amp;rsquo;s horrible! I ask for 78 months to completely rewrite everything and finally have the perfect system I&amp;rsquo;ve always dreamed of!&amp;rdquo;&lt;/p></description></item><item><title>A Guide to the Zsh Line Editor with Examples</title><link>https://thevaluable.dev/zsh-line-editor-configuration-mouseless/</link><pubDate>Sun, 27 Feb 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/zsh-line-editor-configuration-mouseless/</guid><description>&lt;p>This article is part of a series about Zsh:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a zsh master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-install-configure-mouseless/">Configuring Zsh Without Dependencies&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-expansion-guide-example/">A Guide to Zsh Expansion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-completion-guide-examples/">A Guide to the Zsh Completion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-line-editor-configuration-mouseless/">A Guide to the Zsh Line Editor with Examples&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>Like every morning, you switch on your computer, launch your terminal, and begin to type weakly the first commands of the day. With a sigh of despair, you launch the 12938 docker containers of your 29374 coupled microservices with a simple &lt;code>docker compose up&lt;/code>. Your misery accentuating your tiredness, you mistype the command three times, going back and forth between the NORMAL and INSERT Vi mode of your Zsh instance.&lt;/p></description></item><item><title>Measuring Software Complexity: The Impact of the Environment</title><link>https://thevaluable.dev/complexity-metrics-environment/</link><pubDate>Thu, 27 Jan 2022 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/complexity-metrics-environment/</guid><description>&lt;p>This article is part of a series about complexity metrics:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Measuring complexity
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/complexity-metrics-software/">What Metrics to Use?&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/complexity-metrics-environment/">The Impact of the Environment&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>The alarm rings suddenly and intensely, waking you up from the food coma you were getting into. Red lights are on, sign of a major crisis. What an idea to eat a massive burger on a release day!&lt;/p>
&lt;p>Everybody&amp;rsquo;s running in every direction, but nobody seems to go anywhere. Developers begin to type frenetically some nonsense in their terminals. You glance at the metrics: the CI is in the red, the logs are nuts, the dependency graph is through the rough. Everything&amp;rsquo;s crashing.&lt;/p></description></item><item><title>A Guide to Zsh Expansion with Examples</title><link>https://thevaluable.dev/zsh-expansion-guide-example/</link><pubDate>Mon, 27 Dec 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/zsh-expansion-guide-example/</guid><description>&lt;p>This article is part of a series about Zsh:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a zsh master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-install-configure-mouseless/">Configuring Zsh Without Dependencies&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-expansion-guide-example/">A Guide to Zsh Expansion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-completion-guide-examples/">A Guide to the Zsh Completion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-line-editor-configuration-mouseless/">A Guide to the Zsh Line Editor with Examples&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>What would we do if we couldn&amp;rsquo;t use the wonderful &lt;code>TAB&lt;/code> key to expand our commands, filenames, or variables in our lovely shell? Not much, I&amp;rsquo;m afraid. We would still live in dark caves, hunting some dangerous Mammoth with knives made of stones!&lt;/p></description></item><item><title>Measuring Software Complexity: What Metrics to Use?</title><link>https://thevaluable.dev/complexity-metrics-software/</link><pubDate>Sat, 27 Nov 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/complexity-metrics-software/</guid><description>&lt;p>This article is part of a series about complexity metrics:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Measuring complexity
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/complexity-metrics-software/">What Metrics to Use?&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/complexity-metrics-environment/">The Impact of the Environment&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>&amp;ldquo;This part of the codebase doesn&amp;rsquo;t &lt;em>feel&lt;/em> right!&amp;rdquo;&lt;/p>
&lt;p>This was Dave, your colleague developer, arguing in another never-ending meeting to rewrite a part of your company&amp;rsquo;s codebase. His arguments? Technical debt, &lt;a href="https://thevaluable.dev/fighting-software-entropy/" target="_blank" rel="noopener">high entropy&lt;/a>, and the fear of the &lt;a href="https://thevaluable.dev/legacy-systems-software-code/" target="_blank" rel="noopener">legacy system&lt;/a>.&lt;/p>
&lt;p>Our work, as developers, pushes us to take many decisions, from the architectural design to the code implementation. How do we make these decisions? Most of the time, we follow what &amp;ldquo;feel right&amp;rdquo;, that is, we rely on our intuition. It comes from our experience, an important source of information.
But the same intuition can the source of many problems too. We&amp;rsquo;re humans, and we are subjects to &lt;a href="https://thevaluable.dev/cognitive-bias-software-development/" target="_blank" rel="noopener">many biases&lt;/a> leading to wrong assumptions.&lt;/p></description></item><item><title>What's The Vim Runtime? A Guide With Examples</title><link>https://thevaluable.dev/vim-runtime-guide-example/</link><pubDate>Wed, 27 Oct 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-runtime-guide-example/</guid><description>&lt;p>Have you ever wonder what was The Beginning of All Things™?&lt;/p>
&lt;p>In other words: have you ever wonder what Vim is doing when you start it? What files are sourced, why, and in what order? If you don&amp;rsquo;t really care, I encourage you to reconsider your position. Knowing what Vim is doing at startup lets you speed it up, overwrites some defaults from the plugins you&amp;rsquo;ve installed, or even creates your own filetypes. In short, it gives you even more power to customize Vim to your precise needs.&lt;/p></description></item><item><title>Should We Follow The Open-Closed Principle?</title><link>https://thevaluable.dev/open-closed-principle-revisited/</link><pubDate>Mon, 27 Sep 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/open-closed-principle-revisited/</guid><description>&lt;p>When I first heard about the SOLID principles as a young and innocent developer, many of them seemed confusing to me. The Open-Closed Principle looked easy, however: we should extend the behavior of our classes instead of modifying them.&lt;/p>
&lt;p>I did extend the behavior of my classes indeed! Mainly by &lt;a href="https://thevaluable.dev/guide-inheritance-oop/" target="_blank" rel="noopener">using inheritance&lt;/a> in one form or another. The end result? An abstracted mess, where everybody was wondering what was the &lt;em>use cases&lt;/em> my code was covering, hidden under a cheer amount of abstractions and indirection.&lt;/p></description></item><item><title>A Vim Guide For Experts</title><link>https://thevaluable.dev/vim-expert/</link><pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-expert/</guid><description>&lt;p>This is the sixth part of this series to learn Vim from the ground up:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Vim from the ground up
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/vim-beginner/">Vim for Beginners&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-intermediate/">Vim for Intermediate Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-advanced/">Vim for Advanced Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-adept/">Vim for Adept Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-veteran/">Vim for Veteran Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-expert/">Vim for Expert Users&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>





 








 

&lt;div class="notices info">
 &lt;div class="header">
 &lt;i class="la la-info-circle">&lt;/i> Learning to play vim
 &lt;/div>
 &lt;div class="body">
 If you like my articles about Vim, I&amp;rsquo;m currently &lt;a href="https://themouseless.dev/vim/" target="_blank" rel="noopener">writing an ambitious book about The Best Editor™&lt;/a> with many more tips! 
 &lt;/div>
&lt;/div>



&lt;p>You&amp;rsquo;re now in your garden, sitting down in your favorite chair, contemplating a fabulous table full of the tastiest food. While delighted by your fantastic breakfast, a fresh breeze refresh your warm skin in this hot summer day. You hear the little birds singing in unison. The vivid smell of the young grass and the delicate and subtle aroma of your tea fill your nostrils. Everything is in perfect harmony; all your annoyances, problems, or negative thoughts are far away from this pure state of bliss.&lt;/p></description></item><item><title>Defining Legacy System</title><link>https://thevaluable.dev/legacy-systems-software-code/</link><pubDate>Tue, 27 Jul 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/legacy-systems-software-code/</guid><description>&lt;p>&amp;ldquo;We need to stop everything!&amp;rdquo; shout out Dave, your colleague developer, during a meeting with the stakeholders of BigBuckEcommerce, the company you work for. &amp;ldquo;Our application is a legacy system. We need to rewrite the whole thing before it&amp;rsquo;s too late! It will explode! We can&amp;rsquo;t manage this beast any longer!&amp;rdquo;&lt;/p>
&lt;p>If I had received a coin each time the term &amp;ldquo;legacy&amp;rdquo; was thrown in a discussion about software development, I would write this article from a private island in my personal mansion. We all use these words as if they were widely known and accepted concepts, using them as arguments to take action.&lt;/p></description></item><item><title>A Vim Guide For Veteran Users</title><link>https://thevaluable.dev/vim-veteran/</link><pubDate>Sun, 27 Jun 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-veteran/</guid><description>&lt;p>This article is the fifth of the series aimed to teach Vim from the ground up:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Vim from the ground up
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/vim-beginner/">Vim for Beginners&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-intermediate/">Vim for Intermediate Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-advanced/">Vim for Advanced Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-adept/">Vim for Adept Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-veteran/">Vim for Veteran Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-expert/">Vim for Expert Users&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>





 








 

&lt;div class="notices info">
 &lt;div class="header">
 &lt;i class="la la-info-circle">&lt;/i> Learning to play vim
 &lt;/div>
 &lt;div class="body">
 If you like my articles about Vim, I&amp;rsquo;m currently &lt;a href="https://themouseless.dev/vim/" target="_blank" rel="noopener">writing an ambitious book about The Best Editor™&lt;/a> with many more tips! 
 &lt;/div>
&lt;/div>



&lt;p>Can you picture an adventurer, going deeper and deeper into a mysterious cave, knowing what&amp;rsquo;s waiting for her (mostly rocks and bats) but at the same time wishing to be surprised by some rare gems and abandoned treasures?&lt;/p></description></item><item><title>A Guide to the Zsh Completion with Examples</title><link>https://thevaluable.dev/zsh-completion-guide-examples/</link><pubDate>Thu, 27 May 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/zsh-completion-guide-examples/</guid><description>&lt;p>This article is part of a series about Zsh:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a zsh master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-install-configure-mouseless/">Configuring Zsh Without Dependencies&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-expansion-guide-example/">A Guide to Zsh Expansion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-completion-guide-examples/">A Guide to the Zsh Completion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-line-editor-configuration-mouseless/">A Guide to the Zsh Line Editor with Examples&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>&amp;ldquo;The completion offered by Zsh is great, but could it be better? Why not trying to understand how it works? I could then configure it for my own needs!&amp;rdquo;&lt;/p></description></item><item><title>Active Listening for Developers</title><link>https://thevaluable.dev/active-listening-communication-developer/</link><pubDate>Tue, 27 Apr 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/active-listening-communication-developer/</guid><description>&lt;p>What are the oldest and most complex tools we use every day, source of the biggest challenges we have to face in our daily work?&lt;/p>
&lt;p>Our brain and our natural language.&lt;/p>
&lt;p>We all had the pleasure to implement the wrong features, bring complex solutions, and create bugs because of miscommunication. Communication will always be flawed because it&amp;rsquo;s imperfect. But we can&amp;rsquo;t really &amp;ldquo;be&amp;rdquo; in the mind of the other, so it&amp;rsquo;s the best tool we have to &lt;em>collaborate&lt;/em>. In that regard, active listening can help us get better.&lt;/p></description></item><item><title>A Vim Guide for Adept Users</title><link>https://thevaluable.dev/vim-adept/</link><pubDate>Tue, 13 Apr 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-adept/</guid><description>&lt;p>This is the fourth part of this series to learn Vim from the ground up:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Vim from the ground up
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/vim-beginner/">Vim for Beginners&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-intermediate/">Vim for Intermediate Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-advanced/">Vim for Advanced Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-adept/">Vim for Adept Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-veteran/">Vim for Veteran Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-expert/">Vim for Expert Users&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>





 








 

&lt;div class="notices info">
 &lt;div class="header">
 &lt;i class="la la-info-circle">&lt;/i> Learning to play vim
 &lt;/div>
 &lt;div class="body">
 If you like my articles about Vim, I&amp;rsquo;m currently &lt;a href="https://themouseless.dev/vim/" target="_blank" rel="noopener">writing an ambitious book about The Best Editor™&lt;/a> with many more tips! 
 &lt;/div>
&lt;/div>



&lt;p>Dave, your colleague developer, just read Vim for Advanced Users before going to bed. He wonders what&amp;rsquo;s next: Vim for Unstoppable Creators? Vim for Godlike Developers? On these reassuring thoughts, he falls into a deep sleep.&lt;/p></description></item><item><title>Is Inheritance That Evil?</title><link>https://thevaluable.dev/guide-inheritance-oop/</link><pubDate>Sat, 27 Mar 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/guide-inheritance-oop/</guid><description>&lt;p>&amp;ldquo;You used inheritance in your code! Are you crazy? It&amp;rsquo;s forbidden! It&amp;rsquo;s clearly written in the Laws and Mantras of Good Software Practice Everyone Must Follow™ hanged in the toilets!&amp;rdquo;&lt;/p>
&lt;p>Your thoughts about the nice Youtube video full of cute dogs you saw yesterday stop abruptly. Anxious, you look on your right: Dave, your colleague developer, is yelling at Davina, your desk neighbor. All three of you are working for the fantastic company MegaCorpMoneyMaker, the famous e-commerce which can sell ice to penguins.&lt;/p></description></item><item><title>A Vim Guide for Advanced Users</title><link>https://thevaluable.dev/vim-advanced/</link><pubDate>Sat, 27 Feb 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-advanced/</guid><description>&lt;p>Welcome to the third part of this series aimed to help you unleash a power never seen on Earth using the Almighty Vim.&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Vim from the ground up
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/vim-beginner/">Vim for Beginners&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-intermediate/">Vim for Intermediate Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-advanced/">Vim for Advanced Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-adept/">Vim for Adept Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-veteran/">Vim for Veteran Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-expert/">Vim for Expert Users&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>





 








 

&lt;div class="notices info">
 &lt;div class="header">
 &lt;i class="la la-info-circle">&lt;/i> Learning to play vim
 &lt;/div>
 &lt;div class="body">
 If you like my articles about Vim, I&amp;rsquo;m currently &lt;a href="https://themouseless.dev/vim/" target="_blank" rel="noopener">writing an ambitious book about The Best Editor™&lt;/a> with many more tips! 
 &lt;/div>
&lt;/div>



&lt;p>We&amp;rsquo;ll see together in this article:&lt;/p></description></item><item><title>Understanding the Imposter Syndrome</title><link>https://thevaluable.dev/understand-overcome-imposter-syndrome/</link><pubDate>Wed, 27 Jan 2021 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/understand-overcome-imposter-syndrome/</guid><description>&lt;p>&amp;ldquo;I am sorry to say that we decided against moving you to the next stage of the process, primarily for missing some essential tech skills&amp;rdquo;.&lt;/p>
&lt;p>This was the email I received end of October 2020. It was the fourth rejection after spending a huge amount of time going through hiring processes, technical interviews, technical tests, and other joys. I didn&amp;rsquo;t understand what was happening: every company I worked with was happy about my work, my skills, and my involvement. As a professional developer for 10 years, I never had so many rejections in this short amount of time.&lt;/p></description></item><item><title>A Vim Guide for Intermediate Users</title><link>https://thevaluable.dev/vim-intermediate/</link><pubDate>Sun, 27 Dec 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-intermediate/</guid><description>&lt;p>Welcome to the second part of this series aimed to make you a better Vim user!&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Vim from the ground up
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/vim-beginner/">Vim for Beginners&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-intermediate/">Vim for Intermediate Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-advanced/">Vim for Advanced Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-adept/">Vim for Adept Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-veteran/">Vim for Veteran Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-expert/">Vim for Expert Users&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>





 








 

&lt;div class="notices info">
 &lt;div class="header">
 &lt;i class="la la-info-circle">&lt;/i> Learning to play vim
 &lt;/div>
 &lt;div class="body">
 If you like my articles about Vim, I&amp;rsquo;m currently &lt;a href="https://themouseless.dev/vim/" target="_blank" rel="noopener">writing an ambitious book about The Best Editor™&lt;/a> with many more tips! 
 &lt;/div>
&lt;/div>



&lt;p>In this article, I&amp;rsquo;ll explain more concepts, some of them making Vim truly special compared to other editors. Who wasn&amp;rsquo;t blown away discovering Vim&amp;rsquo;s macros?&lt;/p></description></item><item><title>A Guide To Recursion With Examples</title><link>https://thevaluable.dev/recursion-guide-examples/</link><pubDate>Fri, 27 Nov 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/recursion-guide-examples/</guid><description>&lt;p>You are at your desk at WeSellEverythingAndAnythingMegacorp, the fantastic e-commerce you work for. You&amp;rsquo;re trying to write some code while thinking intensively about your lunch. Suddenly, a voice break your incredible concentration. It&amp;rsquo;s Davina, your colleague developer, hired only a few moons ago. She has a problem and she thinks you can help her.&lt;/p>
&lt;p>She needs to display a directory tree, and she believes that she needs to use recursion. But she never quite understood the concept.&lt;/p></description></item><item><title>The Differences Between Interpreter and Compiler Explained</title><link>https://thevaluable.dev/difference-between-compiler-interpreter/</link><pubDate>Tue, 27 Oct 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/difference-between-compiler-interpreter/</guid><description>&lt;p>&amp;ldquo;Why would I care about the difference between interpretation and compilation?&amp;rdquo; ask Dave, your colleague developer. &amp;ldquo;After all, this is a low level detail, and I don&amp;rsquo;t care about that! That&amp;rsquo;s why we have abstractions all over the place!&amp;rdquo;.&lt;/p>
&lt;p>Dave is wrong, in many aspects. First, knowing the &lt;em>foundations&lt;/em> supporting the high level abstractions you use every day, as a developer, will give you an edge to understand quickly whatever is built upon them. Programming languages, frameworks, you name it. Second, knowing the difference between compilation and interpretation will help you debug, improve performances, and deploy the software you&amp;rsquo;ve built. It&amp;rsquo;s a very important subject we need to understand, even roughly.&lt;/p></description></item><item><title>Type Systems in Software Explained With Examples</title><link>https://thevaluable.dev/type-system-software-explained-example/</link><pubDate>Sun, 27 Sep 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/type-system-software-explained-example/</guid><description>&lt;p>&amp;ldquo;My language is better because it has a strong type system!&amp;rdquo; screams Dave, your colleague developer, trying to push the programming language Cobol for the next micro-service of your company.&lt;/p>
&lt;p>Among developers, discussions about programming languages and their type systems can get quickly emotional. During these discussions, we often hear the words &amp;ldquo;type systems&amp;rdquo;, &amp;ldquo;data type&amp;rdquo;, &amp;ldquo;type inference&amp;rdquo;, &amp;ldquo;static typing&amp;rdquo;, &amp;ldquo;weak typing&amp;rdquo;, &amp;ldquo;coercion&amp;rdquo;, and more.&lt;/p>
&lt;p>The goal of this article is to see the meaning of all these words with examples, for you to have good foundations and understand the type system of your favorite programming language. More precisely, we&amp;rsquo;ll see:&lt;/p></description></item><item><title>The Single Responsibility Principle Revisited</title><link>https://thevaluable.dev/single-responsibility-principle-revisited/</link><pubDate>Thu, 27 Aug 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/single-responsibility-principle-revisited/</guid><description>&lt;p>Once upon a time, at the beginning of my journey as a professional developer, I quickly heard about the principle which will save us all, part of the Sacred SOLID principles. The senior developers, the chosen ones, were calling it the Single Responsibility Principle, or SRP.&lt;/p>
&lt;p>The SRP looked like a magic spell I could cast for my code to be instantaneously better. But first I had to understand it. What&amp;rsquo;s a responsibility? I was asking myself, my mouth full of muesli, a Sunday morning, while sloppily browsing The Internet.&lt;/p></description></item><item><title>Configuring Zsh Without Dependencies</title><link>https://thevaluable.dev/zsh-install-configure-mouseless/</link><pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/zsh-install-configure-mouseless/</guid><description>&lt;p>This article is part of a series about Zsh:&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Becoming a zsh master
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-install-configure-mouseless/">Configuring Zsh Without Dependencies&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-expansion-guide-example/">A Guide to Zsh Expansion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-completion-guide-examples/">A Guide to the Zsh Completion with Examples&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/zsh-line-editor-configuration-mouseless/">A Guide to the Zsh Line Editor with Examples&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>There are many boring tasks we repeat day after day: creating, copying, moving or searching files, launching again and again the same tools, docker containers, and whatnot.&lt;/p></description></item><item><title>The Art Of Learning For Software Developers</title><link>https://thevaluable.dev/learning-developer-efficiently-effectively/</link><pubDate>Sat, 27 Jun 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/learning-developer-efficiently-effectively/</guid><description>&lt;p>&amp;ldquo;I&amp;rsquo;m trying to go down a bottomless pit. I&amp;rsquo;ll never make it till the end.&amp;rdquo;&lt;/p>
&lt;p>That&amp;rsquo;s what I thought when I tried to create my own video game. I was young, beautiful, and I was struggling to use &lt;code>for&lt;/code> loops and &lt;code>arrays&lt;/code> at the same time.
There was so much to learn!&lt;/p>
&lt;p>Fortunately, I found the strength to continue. More and more, the concepts behind programming began to make sense. From there, learning wasn&amp;rsquo;t a chore anymore, but an intrepid journey. Going through a book about C and trying to create my own adventure on MS-DOS was a crazy Indiana Jone&amp;rsquo;s-like discovery I&amp;rsquo;ll never forget.&lt;/p></description></item><item><title>8 Cognitive Biases in Software Development</title><link>https://thevaluable.dev/cognitive-bias-software-development/</link><pubDate>Wed, 27 May 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/cognitive-bias-software-development/</guid><description>&lt;p>Bad news: you&amp;rsquo;re in the meeting room.&lt;/p>
&lt;p>You&amp;rsquo;re listening to your team leader while she&amp;rsquo;s proposing the solution she had in mind for the next feature or the product you&amp;rsquo;re working on. Dave, your colleague developer, will have to implement it.&lt;/p>
&lt;p>&amp;ldquo;Great solution! Pretty easy to implement!&amp;rdquo;, he suddenly claims. &amp;ldquo;I only need to change two fields in the database, modify two or three existing features, plug everything back together, and that&amp;rsquo;s all!&amp;rdquo;&lt;/p></description></item><item><title>The Ridiculous Titles Held By Software Developers</title><link>https://thevaluable.dev/software-developer-titles-junior-senior/</link><pubDate>Mon, 27 Apr 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/software-developer-titles-junior-senior/</guid><description>&lt;p>Similarly to the nobility in the Middle-Age - who loved enslaving poor villagers to make lords and knights rich and powerful - we, as software developers, love titles. A glimpse at them and you&amp;rsquo;ll see exactly what the developers skills are, and how much value they bring to the world.&lt;/p>
&lt;p>We don&amp;rsquo;t have lords, kings, and buffoons in our little Software Development World, but we have titles like &amp;ldquo;coder&amp;rdquo;, &amp;ldquo;programmer&amp;rdquo;, &amp;ldquo;developer&amp;rdquo;, &amp;ldquo;web developer&amp;rdquo;, &amp;ldquo;front end developer&amp;rdquo;, &amp;ldquo;software developer&amp;rdquo;, &amp;ldquo;software developer engineer&amp;rdquo;, &amp;ldquo;devops&amp;rdquo;, &amp;ldquo;architect&amp;rdquo;, and even &amp;ldquo;consultant&amp;rdquo;. More exotic terms might be used too, depending on the creativity of your management.&lt;/p></description></item><item><title>The Expert Blind Spot In Software Development</title><link>https://thevaluable.dev/expert-blind-spot-software-development/</link><pubDate>Fri, 27 Mar 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/expert-blind-spot-software-development/</guid><description>&lt;p>Once upon a time, in the Fabulous Land of Web Shops Where Rivers Were Made of Honey, there was me, fresh and young PHP developer with little experience, and my team leader who was in the industry for 10 years.&lt;/p>
&lt;p>It was late in the evening, and I was still at the office. We had to finish a backend for an important client. Quickly, as always. I was exhausted.&lt;/p>
&lt;p>My team leader was full of passion, agitating a weird diagram full of boxes and arrows: &amp;ldquo;Here&amp;rsquo;s my idea. We should first create two interfaces, put two decorators here and maybe three factories there; we need the system to be flexible as much as we can, the client expect to keep his backend for 20 years. How, and what about abstracting this? It might not be DRY enough though.&amp;rdquo;&lt;/p></description></item><item><title>Configuring i3 Window Manager: a Complete Guide</title><link>https://thevaluable.dev/i3-config-mouseless/</link><pubDate>Thu, 27 Feb 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/i3-config-mouseless/</guid><description>&lt;p>You thought that having icons everywhere on your desktop with a beautiful start menu was the better and only way to interact with your computer?&lt;/p>
&lt;p>Many Linux distributions, and many Operating Systems (OS) in general, like Windows or macOS, have their own desktop environment. It&amp;rsquo;s basically a set of icons, windows, toolbars, widgets, wallpaper and other functionalities which give to the users &amp;ldquo;easy&amp;rdquo; ways to do what they want.&lt;/p>
&lt;p>These desktops are meant to be used by everybody. But everybody has different needs when using a computer ; a developer won&amp;rsquo;t have the same needs as a designer.&lt;/p></description></item><item><title>Understanding and Preventing Burnout as a Software Developer</title><link>https://thevaluable.dev/burnout-software-developer/</link><pubDate>Mon, 27 Jan 2020 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/burnout-software-developer/</guid><description>&lt;p>I heard many developers having strong opinions about burnout. Something like: &amp;ldquo;I&amp;rsquo;m not the kind of person to burnout! I know how to manage my stress. I know how to manage challenges. I&amp;rsquo;m in the control of my life.&amp;rdquo;.&lt;/p>
&lt;p>Only the others are victim of burnout until it hit you. I experienced a severe form of burnout at the beginning of my career, as I was mentioning in &lt;a href="https://thevaluable.dev/programmer-stress-causes/">this article about stress&lt;/a>. I was exhausted, angry, and I had strong physical symptoms, including dizziness and headaches.&lt;/p></description></item><item><title>Writing Your tmux Config: a Detailed Guide</title><link>https://thevaluable.dev/tmux-config-mouseless/</link><pubDate>Fri, 27 Dec 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/tmux-config-mouseless/</guid><description>&lt;p>Do you want a powerful, flexible, and automated terminal experience?&lt;/p>
&lt;p>Let me introduce you to tmux. It&amp;rsquo;s one of the most important tool for my &lt;a href="https://thevaluable.dev/efficient-development-environment/">Mouseless Development Environment&lt;/a>. If you never heard about it, fear not! This article will explain the core ideas:&lt;/p>
&lt;ul>
&lt;li>What&amp;rsquo;s tmux and why you should care about it.&lt;/li>
&lt;li>How to configure tmux, step by step.&lt;/li>
&lt;li>What are the best tmux plugins out there.&lt;/li>
&lt;li>How to automate the creation of tmux sessions.&lt;/li>
&lt;/ul>
&lt;p>To get a maximum from this article, I advise you to open tmux while reading it, and try the many commands and tmux config we&amp;rsquo;ll discuss. You can also create your own cheatsheet with the commands we&amp;rsquo;ll see today. They&amp;rsquo;ll be easier to memorize if you write them, and you&amp;rsquo;ll have a personalized reference when your memory will fail you.&lt;/p></description></item><item><title>What is Software Entropy And How To Manage It?</title><link>https://thevaluable.dev/fighting-software-entropy/</link><pubDate>Wed, 27 Nov 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/fighting-software-entropy/</guid><description>&lt;p>It&amp;rsquo;s a sunny day. You are in the middle of the road leading to your village, where your friends, your family, and you favorite dog are living. What a great day!&lt;/p>
&lt;p>Suddenly, you hear a terrible and monstrous scream scattering the peace of the countryside. A massive and hideous Hydra is rushing to you, willing to destroy your whole village. You&amp;rsquo;re the only one on the road to stop this madness!&lt;/p></description></item><item><title>Vim Commands: A Beginner Guide with Examples</title><link>https://thevaluable.dev/vim-commands-beginner/</link><pubDate>Mon, 28 Oct 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/vim-commands-beginner/</guid><description>&lt;p>Welcome to the first part of this series of articles to learn Vim!&lt;/p>


 






 



 

&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Vim from the ground up
 &lt;/div>
 &lt;div class="body">
 &lt;ol>
&lt;li>&lt;a href="https://thevaluable.dev/vim-beginner/">Vim for Beginners&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-intermediate/">Vim for Intermediate Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-advanced/">Vim for Advanced Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-adept/">Vim for Adept Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-veteran/">Vim for Veteran Users&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://thevaluable.dev/vim-expert/">Vim for Expert Users&lt;/a>&lt;/li>
&lt;/ol>
 
 &lt;/div>
&lt;/div>



&lt;p>&amp;ldquo;Vim is not for me!&amp;rdquo; shout out Dave, my colleague developer.&lt;/p>
&lt;p>It wasn&amp;rsquo;t the first time I&amp;rsquo;ve heard this sentence. The result? Me, explaining to Dave and others gathering around my desk, that learning the basics of Vim can be beneficial to anybody:&lt;/p></description></item><item><title>What Are Abstractions in Software Engineering with Examples</title><link>https://thevaluable.dev/abstraction-type-software-example/</link><pubDate>Thu, 26 Sep 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/abstraction-type-software-example/</guid><description>&lt;p>Abstraction. A word, I&amp;rsquo;m sure, you&amp;rsquo;ve seen (or heard) many times.&lt;/p>
&lt;p>It&amp;rsquo;s one of the most important concepts in software engineering and in computer science. Everybody praises its virtues and its power. Authors wrote about it, birds sing about it, its name is whispered all around the kingdoms. Abstraction is attractive, sexy, old and modern at the same time. The Alpha and The Omega.&lt;/p>
&lt;p>It sounds pretty important to understand what it is. For many, many years, I &lt;em>thought&lt;/em> I did. However, when I had to explain to a less experienced developer what it was, I couldn&amp;rsquo;t easily give a precise and simple definition. This was a proof that I had to dig more the concept.&lt;/p></description></item><item><title>How To Manage Your Stress as a Developer</title><link>https://thevaluable.dev/developer-stress-management/</link><pubDate>Tue, 27 Aug 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/developer-stress-management/</guid><description>&lt;p>In the &lt;a href="https://thevaluable.dev/developer-stress/">first article of this series about stress&lt;/a>, I was describing one of my panic attacks when I was working at my first job as a developer, 10 years ago. I was a mess at the time: I had a stressful job and I was partying a lot to try to blow off steam. I was mainly drinking and smoking at a point where I could not even remember half of the evening.&lt;/p></description></item><item><title>Programming Side Project Case Study With DevDash</title><link>https://thevaluable.dev/programming-side-project-example-devdash/</link><pubDate>Sat, 27 Jul 2019 07:00:00 +0000</pubDate><guid>https://thevaluable.dev/programming-side-project-example-devdash/</guid><description>&lt;p>Let sit down comfortably around the campfire, you and me and our common imaginary friends. The night is warm, the crickets are singing, the owls whoop, the mysterious cracks of the fire send sparkles to the night sky, enlightened already by million of stars.&lt;/p>
&lt;p>Let me tell you the story of &lt;a href="https://github.com/Phantas0s/devdash" target="_blank" rel="noopener">DevDash&lt;/a>.&lt;/p>
&lt;p>&amp;ldquo;Is it an animal?&amp;rdquo; you might ask if you didn&amp;rsquo;t click on the link.&lt;/p>
&lt;p>Behind this singular name is hidden my last side project, a terminal dashboard for developers, written in &lt;a href="https://golang.org/" target="_blank" rel="noopener">Golang&lt;/a>. Since I released the first early version not long ago, I thought it could be interesting to dive deep into the process of building a side project, with a concrete example.&lt;/p></description></item><item><title/><link>https://thevaluable.dev/page/newsletter/</link><pubDate>Mon, 22 Jul 2019 07:00:00 +0000</pubDate><guid>https://thevaluable.dev/page/newsletter/</guid><description>&lt;section class="newsletter">
 &lt;form
 action="https://buttondown.email/api/emails/embed-subscribe/thevaluabledev"
 method="post"
 target="popupwindow"
 onsubmit="window.open('https://buttondown.email/thevaluabledev', 'popupwindow')"
 class="embeddable-buttondown-form"
 >
 &lt;h3>Let's Connect&lt;/h3>
 &lt;p>
 &lt;label for="bd-email">You'll receive &lt;b>each month&lt;/b> the last article with additional resources and updates.&lt;/label>
 &lt;/p>
 &lt;p class="input">
 &lt;input type="email" name="email" placeholder="your-email@example.com" id="bd-email">
 &lt;input type="hidden" value="1" name="embed">&lt;/input>
 &lt;input type="submit" value="I want more!">&lt;/input>
 &lt;/p>
 &lt;p>&lt;a target="_blank" title="Show me your newsletter!" href="https://buttondown.email/thevaluabledev/archive/the-valuable-dev-a-practical-guide-to-fzf/">Here's how it looks&lt;/a>&lt;/p>
 &lt;p>You can reply to any email if you have questions, problems, or feedback. I'll write back as soon as I can.&lt;/p>
 &lt;/form>
&lt;/section></description></item><item><title>6 Sources of Stress in Software Development</title><link>https://thevaluable.dev/programmer-stress-causes/</link><pubDate>Thu, 27 Jun 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/programmer-stress-causes/</guid><description>&lt;p>I remember it vividly: I was lying on my bed, cold and shaking. The room was turning. I was dizzy, angry, sad, full or reproaches, mostly toward myself. My nerves were breaking, my body was reacting.&lt;/p>
&lt;p>I couldn&amp;rsquo;t move anymore.&lt;/p>
&lt;p>It was 10 years ago, a Friday, late in the evening, after coming back from work. Working from 8am to midnight was no exception. I was working in a very small web agency as a beginner web developer, without any prior professional experience. I knew how to code (I was coding as a hobby for 10 years already) but I never experienced this kind of pressure.&lt;/p></description></item><item><title>Global Variables and States: Why So Much Hate?</title><link>https://thevaluable.dev/global-variable-explained/</link><pubDate>Mon, 27 May 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/global-variable-explained/</guid><description>&lt;p>Global variables. Global states. These words induce fear and pain in every developer&amp;rsquo;s heart who had the unfortunate experience to deal with them.&lt;/p>
&lt;p>Did you already fight against applications behaving unexpectedly, without knowing exactly why, like a poor knight would try to kill an Hydra with too many heads to deal with?&lt;/p>
&lt;p>Did you end up in the infinite loop of tries and errors, &lt;em>guessing&lt;/em> 90% of the time what was happening?&lt;/p></description></item><item><title>A Detailed Explanation of The KISS Principle in Software</title><link>https://thevaluable.dev/kiss-principle-explained/</link><pubDate>Sat, 27 Apr 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/kiss-principle-explained/</guid><description>&lt;p>When I search about the KISS principle on The Internet, I stumble across many websites defining it in a couple of lines: simplicity is important, let&amp;rsquo;s be simple, the end. They often fail to explain &lt;em>what&lt;/em> is simplicity, &lt;em>why&lt;/em> simplicity is important, and &lt;em>how&lt;/em> to achieve it.&lt;/p>
&lt;p>Simplicity is one of the driving idea we should keep in mind at all time when designing a system. The problem: it&amp;rsquo;s really hard to achieve.&lt;/p></description></item><item><title>How to Learn a Programming Language in Three Steps</title><link>https://thevaluable.dev/how-to-learn-programming-language/</link><pubDate>Wed, 27 Mar 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/how-to-learn-programming-language/</guid><description>&lt;p>Learning a programming language is stretching your skills, as a developer. It&amp;rsquo;s a new tool in your toolbox, too. With it, you can create something out of thin air. If you&amp;rsquo;re lucky, others will find your creation useful, and you&amp;rsquo;ll feel the warmth of &lt;em>being helpful&lt;/em>.&lt;/p>
&lt;p>Beyond that, I love programming by itself: it&amp;rsquo;s a game to me. Logic is really fun to mess with.&lt;/p>
&lt;p>Learning is fun too: the excitement of discovery, the joy to finally understand a hard concept. It brings more colors to the world.&lt;/p></description></item><item><title>About the Valuable Dev</title><link>https://thevaluable.dev/page/about/</link><pubDate>Thu, 28 Feb 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/page/about/</guid><description>&lt;p>Did you ever feel overwhelmed by all these new techs popping up every other day?&lt;/p>
&lt;p>At the beginning of my career, I was trying to learn everything: every new technology, framework, and tool. A lot of my free time was dedicated to this endless quest.&lt;/p>
&lt;p>It was exhausting.&lt;/p>
&lt;p>With more experience, I began to realize that I felt into a trap: the &lt;em>trend twister&lt;/em>. The more I was learning, the more I was understanding that all these techs were built on the same first principles, the same foundations we build upon for decades.&lt;/p></description></item><item><title>Programming Side Project Ideas: How To Generate Them</title><link>https://thevaluable.dev/generate-programming-side-project-ideas/</link><pubDate>Wed, 27 Feb 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/generate-programming-side-project-ideas/</guid><description>&lt;p>You&amp;rsquo;re sitting at your desk, searching for hours on the Holy Internet something you need. You want to create a superb product to be rich, or you want to improve some technical skills you lack for your dream job. You want to build a great personal project.&lt;/p>
&lt;p>But you miss something. This is something simple but difficult to grasp. Something everybody speaks about, but only the chosen ones know its true meaning. Something almost magical.&lt;/p></description></item><item><title>A Guide for Debating Effectively as a Software Developers</title><link>https://thevaluable.dev/guide-debate-software-developer-skill/</link><pubDate>Tue, 29 Jan 2019 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/guide-debate-software-developer-skill/</guid><description>&lt;p>What does it mean to be a software developer?&lt;/p>
&lt;p>We could think about creating scalable design, writing good microservices, using nice programming languages, or be aware of the problems we might find along the way. What else?&lt;/p>
&lt;p>We sometimes forget that being a software developer means working all day long with human beings. Communicating, explaining ideas, adapting to your team members are very important skills, and the art of debating is part of this set. It&amp;rsquo;s something we do a lot, sometimes without a real good reason. This is a complex subject which has its own rules and outcomes.&lt;/p></description></item><item><title>Learn Computer Science by Yourself - My 100 Hours Journey</title><link>https://thevaluable.dev/learning-computer-science-software-developer/</link><pubDate>Sat, 29 Dec 2018 10:00:00 +0000</pubDate><guid>https://thevaluable.dev/learning-computer-science-software-developer/</guid><description>&lt;p>I wondered for quite a long time the following: is it useful to be trained as a computer scientist to be a software developer? Does only knowing the basics of computer science helps to be better developer?&lt;/p>
&lt;p>Could it bring value to a developer?&lt;/p>
&lt;p>If you ask yourself these questions as well, and you don&amp;rsquo;t want to invest time (yet) learning computer science, here&amp;rsquo;s the story of my experience. I&amp;rsquo;m trying, in this article, to answer these questions:&lt;/p></description></item><item><title>MySQL Command Line Tool: Unleash the Power of mycli</title><link>https://thevaluable.dev/mysql-command-line-tool-mycli/</link><pubDate>Thu, 29 Nov 2018 07:00:00 +0000</pubDate><guid>https://thevaluable.dev/mysql-command-line-tool-mycli/</guid><description>&lt;p>I had a mission, for many years.&lt;/p>
&lt;p>This quest led me to do innumerable Google searches, trying new tools to finally give up each time. I was feeling like a knight fighting the same dragon again and again, and the dragon was always winning. Where was the happy ending?&lt;/p>
&lt;p>As Perceval wanted to find the Holy Grail, I wanted to find a good interface for MySQL.
I was using MySQL Workbench, like everybody. I wasn&amp;rsquo;t satisfied, almost like everybody. The software was slow and buggy, the auto completion was working totally randomly. I was searching something similar but simpler and more reliable.&lt;/p></description></item><item><title>Judging Quickly Features as Easy to Implement: a Wrong Habit</title><link>https://thevaluable.dev/development-easy-just-simple/</link><pubDate>Mon, 29 Oct 2018 07:00:00 +0000</pubDate><guid>https://thevaluable.dev/development-easy-just-simple/</guid><description>&lt;p>Once upon a time, in the magic Startup Land, there was a fearful backend developer who needed to implement a new functionality.&lt;/p>
&lt;p>He was working on a back office for movie producers to upload their movies. These movies could then be rented on a VOD platform. Did you hear about Netflix? Same spirit, except that a customer can rent each individual movies instead of paying a subscription.&lt;/p>
&lt;p>After uploading their movies, the producers could choose in what country they would be available.&lt;/p></description></item><item><title>8 Steps to Find the Best Web Developer Job</title><link>https://thevaluable.dev/find-best-software-developer-job/</link><pubDate>Thu, 27 Sep 2018 12:00:00 +0000</pubDate><guid>https://thevaluable.dev/find-best-software-developer-job/</guid><description>&lt;p>Here you are! In front of a powerful CTO of the best we-will-disturb-the-market-startup in town. You answered a job offer promising money and glory, soon they will be all yours.&lt;/p>
&lt;p>To warm you, the mighty CTO begins to ask you to draw a B-Tree on a shiny whiteboard. Easy peasy, you draw a wonderful tree you saw in a garden today.
Then, he gives you a sheet of paper to test &amp;ldquo;your skills&amp;rdquo;. You have to &amp;ldquo;code&amp;rdquo; on it a complete Chess application in 5 hours, AI included.&lt;/p></description></item><item><title>Anemic Domain Model vs Rich Domain Model with Examples</title><link>https://thevaluable.dev/anemic-domain-model/</link><pubDate>Tue, 28 Aug 2018 08:00:00 +0000</pubDate><guid>https://thevaluable.dev/anemic-domain-model/</guid><description>&lt;p>Today is a great day: you will begin to develop the new greenfield project of the soon-very-successful startup you work for, as a PHP Ninja Wizard of the Crown.
You and Dave (your colleague developer) have been chosen to develop this new application.&lt;/p>
&lt;p>Finally you will do something else than fixing and refactoring crappy code from old PHP 4 spaghetti projects!&lt;/p>
&lt;p>Everything begins well. You set up the project&amp;rsquo;s backbones quickly and Dave is in charge to implement the first functionalities.&lt;/p></description></item><item><title>Side Projects for Software Developers: Tools and Practices</title><link>https://thevaluable.dev/side-project-tools-practices/</link><pubDate>Mon, 30 Jul 2018 06:40:05 +0000</pubDate><guid>https://thevaluable.dev/side-project-tools-practices/</guid><description>&lt;p>Here we are! This is the second article from my series explaining how to succeed with your side projects. The &lt;a href="https://thevaluable.dev/side-project-successful/">first part is here&lt;/a>.&lt;/p>
&lt;p>I&amp;rsquo;m sure by know you read the first part every time you go to bed, so you won&amp;rsquo;t have difficulties to link it to this article. If not, I would advise you to read it first.&lt;/p>
&lt;p>We&amp;rsquo;ll focus on the tools this time. What techniques did I use to successfully build the first beta version of my side project &lt;a href="https://github.com/Phantas0s/sharetoall" target="_blank" rel="noopener">Sharetoall&lt;/a>?&lt;/p></description></item><item><title>A Mouseless Development Environment</title><link>https://thevaluable.dev/mouseless-development-environment/</link><pubDate>Wed, 27 Jun 2018 06:20:10 +0000</pubDate><guid>https://thevaluable.dev/mouseless-development-environment/</guid><description>&lt;p>Once upon a time, I was a proud Ubuntu user. It was easy to install, easy to use, and it seemed to answer my needs.&lt;/p>
&lt;p>But month after month, my pride decreased as much as my annoyance increased. Ubuntu was letting me down:&lt;/p>
&lt;ul>
&lt;li>Weird display bugs were popping from time to time.&lt;/li>
&lt;li>It was slow.&lt;/li>
&lt;li>I had to compile manually a lot of applications not available (are outdated).&lt;/li>
&lt;li>I had to learn a lot of &lt;em>random&lt;/em> shortcuts for every tool I was using.&lt;/li>
&lt;/ul>
&lt;p>I didn&amp;rsquo;t know better, so I stuck with it for years. Then, the tragedy: one morning, fresh and motivated, I decided to upgrade my &lt;a href="https://wiki.ubuntu.com/LTS" target="_blank" rel="noopener">LTS&lt;/a> version. My whole system crashed. I couldn&amp;rsquo;t start Ubuntu anymore. I spent hours trying to fix the whole system, but I didn&amp;rsquo;t know how Linux-based systems were working. Where to begin? What to do?&lt;/p></description></item><item><title>Developer Side Projects: 10 Steps From Creation to Launch</title><link>https://thevaluable.dev/side-project-successful/</link><pubDate>Tue, 05 Jun 2018 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/side-project-successful/</guid><description>&lt;p>It&amp;rsquo;s 2am. Your eyes are tired, you know you&amp;rsquo;re coding nonsense but you can&amp;rsquo;t look away from your computer. With a shacking hand you catch a bottle containing a mix of sugar and caffeine. This horrible bug in your code won&amp;rsquo;t let you in peace till you destroy it.&lt;/p>
&lt;p>You spent five hours non-stop on it. But still, you don&amp;rsquo;t see the end of the nightmare. Your bed call you, but you don&amp;rsquo;t listen. The code is the most important.&lt;/p></description></item><item><title>PHP Code Quality Tools to Check and Improve your Code</title><link>https://thevaluable.dev/code-quality-check-tools-php/</link><pubDate>Sun, 25 Mar 2018 06:41:42 +0000</pubDate><guid>https://thevaluable.dev/code-quality-check-tools-php/</guid><description>&lt;p>They were coded by Dave, your colleague developer.&lt;/p>
&lt;p>The classes are full of formatting errors, poor indentation and weird one letter variables. There are so many dependencies you need to scroll down for minutes to escape the bloated constructor.&lt;/p>
&lt;p>Shacking, you open the unit tests to understand how it should work&amp;hellip; but they don&amp;rsquo;t exist. Horror and misfortune!&lt;/p>
&lt;p>You could ask Dave to come to your desk, yelling at him that you never saw anywhere such a crappy code, cursing him and his family for generations to come.&lt;/p></description></item><item><title>The DRY Principle: Benefits and Costs with Examples</title><link>https://thevaluable.dev/dry-principle-cost-benefit-example/</link><pubDate>Mon, 29 Jan 2018 05:47:53 +0000</pubDate><guid>https://thevaluable.dev/dry-principle-cost-benefit-example/</guid><description>&lt;p>Once upon a time, a fearful young developer (me) wanted to write magnificent code. I was seeing generations of developers speaking about it, as we speak about pyramids two thousands years after their construction. I wanted to let my mark in the world!&lt;/p>
&lt;p>Therefore, I did what I thought would be the best: avoiding every traps everybody felt into, by following the Holy Coding Principles, created by the Ones Who Have the Knowledge.&lt;/p></description></item><item><title>PHP 7.2: the Traps to Avoid for a Better and Cleaner Code</title><link>https://thevaluable.dev/php-7-2-pitfalls/</link><pubDate>Thu, 04 Jan 2018 06:00:34 +0000</pubDate><guid>https://thevaluable.dev/php-7-2-pitfalls/</guid><description>&lt;p>What are the pitfalls to avoid with this new version of PHP and its new functionalities?&lt;/p>
&lt;p>As my previous article on &lt;a href="https://thevaluable.dev/typing-with-php-7-what-you-shouldnt-do/">PHP 7 scalar and return types pitfalls&lt;/a>, instead of describing the new super cool features of this perfect PHP 7.2, I will describe what can be dangerous for the good health of your application.&lt;/p>
&lt;p>As &lt;a href="https://en.wikipedia.org/wiki/Ward_Cunningham" target="_blank" rel="noopener">Ward Cunningham&lt;/a> stated it: &amp;ldquo;You know you are working on clean code when each routine you read turns out to be pretty much what you expected.&amp;rdquo; As you will see, this new PHP version can make your code pretty confusing if you don&amp;rsquo;t know when to use those new functionalities.&lt;/p></description></item><item><title>Vim Search and Replace With Examples</title><link>https://thevaluable.dev/vim-search-find-replace/</link><pubDate>Tue, 05 Dec 2017 05:40:06 +0000</pubDate><guid>https://thevaluable.dev/vim-search-find-replace/</guid><description>&lt;p>Can developers survive without a good search in their editor? Who has never used the famous &lt;em>find and replace&lt;/em> trick in one or multiple files?&lt;/p>
&lt;p>Nobody indeed.&lt;/p>
&lt;p>The good new is: Vim search features are pure awesomeness. With a minimum of configuration, you can search whatever you want, wherever you want, at light speed.&lt;/p>
&lt;p>We&amp;rsquo;ll see in this article how to:&lt;/p>
&lt;ul>
&lt;li>Search in the current file.&lt;/li>
&lt;li>Search in multiple files.&lt;/li>
&lt;li>Find and replace everything you dream of.&lt;/li>
&lt;li>Use great plugins to transform Vim in a Search Monster™.&lt;/li>
&lt;/ul>
&lt;p>Without the search features I&amp;rsquo;ll present you in this article, Vim would maybe not be part of my Mouseless Development Environment.&lt;/p></description></item><item><title>10 Tips to Become a Better Web Developer</title><link>https://thevaluable.dev/better-web-developer/</link><pubDate>Mon, 13 Nov 2017 05:46:38 +0000</pubDate><guid>https://thevaluable.dev/better-web-developer/</guid><description>&lt;p>I had a dream!&lt;/p>
&lt;p>This dream was to write an article with a title beginning by &amp;ldquo;10 tips to&amp;hellip;&amp;rdquo;. I don&amp;rsquo;t normally like them so much (yes, they are often pure clickbait) but let&amp;rsquo;s face it, humans like lists. That&amp;rsquo;s why we have the &lt;code>ul&lt;/code> tag in HTML.&lt;/p>
&lt;p>You are a web developer and you want to improve? Improvement is indeed something you should have in mind: it will make your work much more enjoyable and your boss happier. The quality you will deliver will improve.&lt;/p></description></item><item><title>Vim for PHP: The Complete Guide for a Powerful PHP IDE</title><link>https://thevaluable.dev/vim-php-ide/</link><pubDate>Wed, 06 Sep 2017 04:53:33 +0000</pubDate><guid>https://thevaluable.dev/vim-php-ide/</guid><description>&lt;div class="notices note">
 &lt;div class="header">
 &lt;i class="la la-sticky-note-o">&lt;/i> Note
 &lt;/div>
 &lt;div class="body">
 If you want to build a complete Mouseless Development Environment, &lt;a href="https://themouseless.dev/" target="_blank" rel="noopener">you might be interested by this book&lt;/a>. 
 &lt;/div>
&lt;/div>



&lt;p>I can see you spitting your cereals in front of you computer. &amp;ldquo;What? A PHP IDE with Vim? Are you insane?&amp;rdquo;&lt;/p>
&lt;p>Am I? It&amp;rsquo;s definitely possible to make a very powerful IDE with Vim: you need to know what plugins to install and what are their purposes.&lt;/p>
&lt;p>The list of plugins I propose here will cover most of your needs: project management, autocompletion, PHPDoc generation, powerful search and replace tools, debugger&amp;hellip; all these features will be at your fingertips, for free.&lt;/p></description></item><item><title>How did I Replace PhpStorm by Vim in my Heart</title><link>https://thevaluable.dev/phpstorm-vs-vim/</link><pubDate>Sun, 12 Mar 2017 15:37:24 +0000</pubDate><guid>https://thevaluable.dev/phpstorm-vs-vim/</guid><description>&lt;p>Once upon a time, PhpStorm was the IDE I loved. I thought I would use it all my life, happily without looking at any other editor.&lt;/p>
&lt;p>I was wrong.&lt;/p>
&lt;p>I discovered the true love of my live, called &lt;a href="http://www.vim.org/" target="_blank" rel="noopener">Vim&lt;/a>.&lt;/p>
&lt;p>Are you confused? Are you yelling &amp;ldquo;why&amp;rdquo; to the deaf sky? What happened between PhpStorm and me? Why a PHP developer would use this&amp;hellip; old smelly thing called Vim?&lt;/p>
&lt;p>I was happy with PhpStorm. We had a productive relationship. Its basic rules was simple, as simple as many text editor in the computing world. You use a mouse, you click where you want to change or add something, somewhere. The basic editor. We are all used to that from the beginning of times!&lt;/p></description></item><item><title>PHP 7 Type Hinting: Inconsistencies and Pitfalls</title><link>https://thevaluable.dev/php-7-type-hinting-pitfalls/</link><pubDate>Sat, 10 Dec 2016 14:58:07 +0000</pubDate><guid>https://thevaluable.dev/php-7-type-hinting-pitfalls/</guid><description>&lt;p>When PHP 7 came up with strong types, I saw the light. I had the hope not to see anymore bugs and inconsistencies due to weak typing in PHP.&lt;/p>
&lt;p>I remember reading some code and having no idea what could be the type of the variables I had in front of me. Can I use the return of this method as an int? A boolean? Will it create silent bugs and unexpected behaviors?&lt;/p></description></item><item><title>PHP DateTime: Create, Compare and Format Dates Easily</title><link>https://thevaluable.dev/php-datetime-create-compare-format/</link><pubDate>Mon, 30 May 2016 15:08:21 +0000</pubDate><guid>https://thevaluable.dev/php-datetime-create-compare-format/</guid><description>&lt;p>When I search and read code about time and date problems developers have, I noticed that a lot of people still use the old PHP functions like &lt;code>date()&lt;/code>, &lt;code>time()&lt;/code> or &lt;code>strtotime()&lt;/code>.&lt;/p>
&lt;p>What about using the class &lt;a href="http://php.net/manual/en/class.datetime.php" target="_blank" rel="noopener">DateTime&lt;/a> instead?&lt;/p>
&lt;p>&lt;code>DateTime&lt;/code> can do all the usual date and time operations you could ask for, and even more. Using &lt;code>DateTime&lt;/code> can save a lot of time when you have to do simple, or more complex operations on dates.&lt;/p></description></item><item><title>10 PhpStorm Shorcuts and Tricks you Should Know</title><link>https://thevaluable.dev/phpstorm-tricks-shortcuts/</link><pubDate>Sat, 19 Mar 2016 14:43:45 +0000</pubDate><guid>https://thevaluable.dev/phpstorm-tricks-shortcuts/</guid><description>&lt;p>&lt;a href="https://www.jetbrains.com/phpstorm/" target="_blank" rel="noopener">PhpStorm&lt;/a> is my favorite IDE for coding in PHP: pretty stable, you can do a lot with it. A shed load of stuff in fact. Even coding!&lt;/p>
&lt;p>The guys from Jetbrains tried to integrate every useful tools for a web developer in one software and, I have to say, it is pretty well done!&lt;/p>
&lt;p>You can configure easily a debugger, using a terminal, sending requests to your remote or local databases. It has a very good GUI for Git and everything you expect to find in an IDE (auto completion, indexing&amp;hellip;).&lt;/p></description></item><item><title>Supporting The Valuable Dev</title><link>https://thevaluable.dev/page/support/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/page/support/</guid><description>&lt;picture>
 &lt;source srcset="https://thevaluable.dev/images/pages/support/pizza.webp" type="image/webp">
 &lt;img width="780" height="520" src="https://thevaluable.dev/images/pages/support/pizza.jpg" alt="Supporting The Valuable Dev">
&lt;/picture>




&lt;p>If you like my work, consider supporting it.&lt;/p>
&lt;h2 id="donations">Donations&lt;/h2>
&lt;p>You can donate via my Github sponsor page:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/sponsors/Phantas0s?frequency=one-time&amp;amp;sponsor=Phantas0s" target="_blank" rel="noopener">One time donation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/sponsors/Phantas0s" target="_blank" rel="noopener">Monthly donation&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="book">Book&lt;/h2>
&lt;p>You can purchase a copy, or a few hundred of copies, of my book &lt;a href="https://themouseless.dev" target="_blank" rel="noopener">Building Your Mouseless Development Environment&lt;/a>, and in return you&amp;rsquo;ll have a nice guide for building your own Mouseless Development Environment.&lt;/p>
&lt;h2 id="feedback">Feedback&lt;/h2>
&lt;p>Any feedback (positive or negative) is appreciated:&lt;/p>
&lt;ul>
&lt;li>Let&amp;rsquo;s connect! You can subscribe to my &lt;a href="https://thevaluable.dev/page/newsletter/">monthly newsletter&lt;/a> and you can reply to any email if you have a question or feedback. I&amp;rsquo;ll always reply as soon as I can.&lt;/li>
&lt;li>If you don&amp;rsquo;t want any email from me, you can also complete &lt;a href="https://www.surveymonkey.de/r/67BNK3C" target="_blank" rel="noopener">this short survey&lt;/a> (it takes 3 minutes in average).&lt;/li>
&lt;li>If you prefer social media, you&amp;rsquo;ll find them at the bottom of the page.&lt;/li>
&lt;/ul></description></item><item><title>The Valuable Dev Principles</title><link>https://thevaluable.dev/page/principles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://thevaluable.dev/page/principles/</guid><description>&lt;p>Many people might think that developers are asocial nerds. Their only interest is technology. They&amp;rsquo;re on this planet to &lt;em>produce&lt;/em> the dreams of their managers.&lt;/p>
&lt;p>&lt;img src="https://thevaluable.dev/images/pages/principles/code-monkey.jpg" alt="code monkey">&lt;/p>
&lt;p>Big surprise: this is not true.&lt;/p>
&lt;p>A developer should primarily care about &lt;strong>producing value&lt;/strong>, not code. Value for himself, value for the others, value for the clients or companies he works with.&lt;/p>
&lt;p>What does &lt;em>producing value&lt;/em> means, for a developer?&lt;/p>
&lt;ul>
&lt;li>Being aware about the business domain of the company he works with, to translate it correctly in software.&lt;/li>
&lt;li>Using his skills to be able to solve a wide range of problems. This doesn&amp;rsquo;t have to be related to technologies or even programming.&lt;/li>
&lt;li>Always trying to improve the quality of the codebase he works on. It has to work, being maintainable, understandable and scalable.&lt;/li>
&lt;li>Finding and designing solutions in a good amount of time.&lt;/li>
&lt;/ul>
&lt;p>That&amp;rsquo;s the mission of this blog: improving your value, for you to produce valuable solutions. In short, to become a good, well rounded, &lt;strong>valuable developer&lt;/strong>, with more control and autonomy.&lt;/p></description></item></channel></rss>