For most people, keeping notes and other stuff in text files is ridiculous – tons of services and apps could do it better. But what the better means?

Despite the availability and diversity of note-taking solutions on the market, I haven’t found any that would meet my expectations. I tried to stick to the one app but I had felt the internal resistance to settling in one specific, often a vendor-locked solution.

The breakthrough was when I ask myself – why I even want to note this information? I had started to look for my “why” and it turned out, that I don’t need a fancy app or service to storing notes but a directory called “notes”.

In this article, I would like to show you how to prepare the script that will back up your important files to the cloud storage using a tool called restic. Even though the article is specific for macOS and Backblaze B2, you can use some techniques for creating a similar script for Linux systems.

The first draft of this article was about the code-style. I wanted to show you why it is important and why we should care about it. But the longer I thought, the stronger conviction I gained, that the code-style – whatever it means – is only a way to achieve a much more important goal.

I’m a big advocate of well-quality code. Besides good architecture, I pay attention to style – consistent spacing and indentation, coherent naming convention and other rules that make the code visually better. But how to convince someone, who never took care of style before, that is it a good thing?

The Internet is teeming with services you can take advantage of. You can store your files in the cloud, share movies, organize photo collections, talk with friends, manage your projects and so on. It also means that your data is stored outside your computer and you don’t have full control over it. 

You may use self-hosted counterparts of services. Instead of accepting vague privacy policies, you may set the rules. However, you are fully responsible for sustaining your data. 

I used to consider self-hosted services as a privacy-respective and cheap alternatives of popular services. The former is true, however, the latter factor is often far-fetched.

During development, you probably take advantage of some extra command-line tools. In PHP world it could be a mess detector or program to check the code style. The framework you use also exposes some functionalities to clear cache, migrate database or generate documentation. All these commands are helpful but you need to look for them until you memorize the most useful ones.

Sometimes you need to perform a task, like project initialization or restoring a stable snapshot of the database. It’s rarely an atomic operation, so you need to execute a few commands in a specific order.

This is a place where a task runner comes to play. Take a look at how a program called make can help you organize common tasks in your project.

Ten post jest dostępny w języku polskim. Kliknij tutaj, aby do niego przejść.

5 years have passed since I had started working as a professional software developer. Although the programming was my hobby since the early years, my skill started to grow when I had taken a real job.

I was surprised when I had recalled my very beginning because I noticed how much I had changed and how big progress I had taken. So, I decided to write it down.

In this article, I’ll take you on a short journey where I’ll tell you about my development process. You’ll find out what I’ve been thinking about, what I’ve been working on and ultimately what changed from my perspective. Ready?

I create a lot of notes. Seriously, I write tons of notes. Inspired by Getting Things Done method, I treat my mind as a thoughts generator rather than the storage. I capture thoughts, ideas, inspiring quotes, links, and pictures. Mostly using files.

Although I’m on the early stage of creating my custom note-taking solution, I’ve done some work to synchronize notes between devices and versioning them. In this article, I’d like to focus on the latter and I’m going to show you how to set up automatic files versioning.

I’m a software developer so, unsurprisingly, I use git to versioning my notes as well. Instead of manually committing changes, I take advantage of tools like fswatch and launchd to automate this process.