Book Review - The Subtle Art of Not Giving a Fu*k

The subtle art of not giving a f*ck I have read lots of books on self-development and productivity and recently finished the book “The Subtle Art of not giving a fuck”. There are a considerable amount of books on self-motivation and “how to be a successful person” out there but I think this book is among the bests. In this post I want to give you an insight about what this book is all about while not spoiling its content because I want you to read it yourself.

These days the COVID-19 virus has spread around the globe and as the officials says the best way to prevent it is to stay at home. Beside spending time on PS4, social network websites such as Twitter and Instagram, I think one of the best things to do is to simply read! In Iran, the government has restricted almost all of social activities including travel, cinemas, theaters, gyms, etc., to keep people at home. However, being at home is difficult. It’s really is. But we can use this time and do some valuable tasks.

The book’s main subject is aiming at our values. The values we think are important while they’re actually not. If you take a closer look on your values, you notice that most of them are not so valuable and don’t deserve the amount of concentration you’re currently putting on them.

When we care about these unimportant values, we automatically forget the things that actually matter. A great example of this is our past! Instead of pay more attention to our current state and future, some of us feel mad about things we have done in the past and always think about them, while they are gone now and there’s nothing we can do about them. We pay so much attention to our inabilities and compare ourselves to others we call successful because they can do things we cannot; while there are things we are good at and they’re not! The book is full of such examples.

The second part of the books focuses on what we call happiness. The author describes that TRUE happiness comes from difficult moments of our lives. It argues that short-term happiness does not last for long; on the contrary, achieving difficult milestones such as monetizing from your first start up or running your first marathon are examples of things that gives you the REAL happiness.

The book then talks about the importance of owning less. This is something most of us know as minimalism. It describes that having lots of things doesn’t give us joy; in contrast, owning less things delivers the true happiness! Because when we own less things (only things that are essential), we don’t have to care about extra-unimportant things we have.

Finally, the book talks about death. The truth that most people don’t want to talk about. They don’t want to think about that they are going to die one day. When we think about this inevitable fact, our brain automatically focuses on things that matters most and stops putting effort on things that are not valuable.

There are actually a lot to talk about this book. I described the content as general as possible to avoid any spoils. As I have mentioned, this is a must-read book; so don’t waist a moment and start reading.

How to convert markdown files to PDF?

Markdown is the markup language I got really interested in recently and I use it everywhere from generating the content of this blog to simple documents such as letters and GitHub README files and wikis.

As I have mentioned before in my previous posts, one my text editor of choice is currently Visual Studio Code. Using VSCode to edit markdown files are really enjoyable. The community developed a considerable amount of extensions you can choose to manipulate markdown files and in this post I want to talk about just two of them.

MarkdownLint

MarkdownLint is one of the most popular extensions (with over 1.5M downloads as of today) which enables markdown syntax highlighting and formatting. The extension also provides live preview as well which let you see what will be the output as you type:

MarkdownLint live preview

In addition, by enabling formatOnSave option in VSCode settings, it automatically reformat your markdown whenever you save a file.

Markdown PDF

Markdown PDF is probably one of the coolest markdown extensions of VSCode. The extension let you convert markdown files to HTML, PNG, JPEG and even PDF. To use it, simply press Cmd+Shift+P, search for Markdown PDF, and select your desired output format.

Markdown PDF options

Hope you like it.

Everybody is talking dark right now; so here's my dark preferences

During the last few years, dark themes are getting more and more popular and everybody is turning the lights off. Operating systems introduced dark mode, text editors’ and IDEs’ default color schema are dark now. Some websites like Twitter and Reddit now have Switch to dark mode setting.

Now that everybody is living in dark, here are my dark mode preferences:

Operating systems

I have turned on the dark mode on macOS as well as iOS. I don’t use any custom background image and prefer to stick with one of the built-ins. I don’t use night shift settings because I hate to see my screens turn red despite the fact that it’s good for my eyes and will help boost my sleep quality.

Editors configurations

My text editors of choice are Vim and Visual Studio Code. I’ve been using VSCode’s default dark theme but recently I have switched to Dracula theme and I loved it.

"Dracula theme screenshot"

When using Vim, I use the evening theme. I have tried a lot of themes from flazz/vim-colorschemes and returned to evening.

"Vim evening theme screenshot"

Browser extension

In general, I prefer light over dark when browsing the web. However, I turn on dark mode for certain websites such as Github. Some websites already have the dark-mode switch but most of then don’t. To solve this, you can use one of many browser extensions to help you turn the lights off. The extension I use is Darkreader. It is very simple and cross browser.

Darkreader browser extension

Update 1 (Mar. 1st 2020): It seems Ubuntu 20.04 will have the dark mode settings as well. More info

Embrace the change

Last week a friend of mine sent me this video. Please take a moment and watch it (It’s just 3 minutes and half):

Javatar

It’s a funny video about a family that worship Microsoft technologies especially .NET framework and C#. The smallest member of the family asks his father about other technologies instead of Microsoft technology stack (Java in this video) and suddenly his father gets angry and tells his child not to even think about it. After the child grows up, he decides to use Java but he hides it from family. One day while they’re having dinner, the child announces that he is going to continue with Java and doesn’t want to use .NET framework anymore. His mother instantly starts crying and tell him to leave them as soon as possible. “You’re not a part of family anymore”, his father says. The child has it’s own path now.

Although it’s just a funny video, it delivers an important message! Some people tend to stick with things they get used to. They’re afraid to try new things because they think it may put their situation at risk. They don’t like to try new things because they have to learn a lot of new stuff and dealing with them is difficult to some people.

As developers we have lots of options to chose from. It’s completely OK to use Microsoft technology stack. In fact, I was (or maybe am) a .NET developer. Undoubtedly it’s a powerful and one of the best frameworks out there. But in my opinion, you have to try new things as well. For example, if you are a backend developer, you may want to try some other programming languages such as Go or Python. If you’re a Windows user, you may want try Linux as well (Backup everything before doing such thing ;)). It gives you an insight about what’s going on outside the .NET world! I know it could be risky sometimes; but, it definitely worth it.

I love Vim too but ...

Vim is a great text editor. It is actually one of the most popular ones among developers and nerds especially if they have experience working with Unix-like operation systems. Most people instantly fall in love with Vim’s key bindings and the philosophy behind its mindset. It allows you to do almost anything without using the mouse.

By default, Vim is just a text editor; however, with the help of a few plugins, you can turn it to an IDE. Plugins like YouCompleteMe and Jedi provide auto completion as you type! NerdTree brings tree-like project structure to Vim and Ctrl-P allows you too simply search through your project files and find the file you’re looking for fast.

It also supports themes! You can download and install your desired theme or simply choose from one of the built-ins. You may want to do some strange things in Vim as well. A friend of mine, checks his emails and plays music in Vim!

These are cool right! You live inside the terminal like you’re living in 70’s and there’s no GUI available. You use Vim because it’s lightweight like your 2019 MacBook Pro has only 32MB of RAM and you’re trying your best saving resources. You behave in a way that your computer is something like below! Oh come on man; this is just insane!

An old computer with 16mb of RAM

Things have changed during the past 3 decades dude! Smartphones now have 16GB of RAM and 1 TB of flash storage. Every CPU now has a powerful GPU built-in which can output up to 8K! The internet connection you’re using to read this post post can download files fast. Developers code in such environments these days:

A modern computer for coding

I love Vim! I really do. I have also published my .vimrc file on Github. But I believe it should be used only if there is no other options. It is the swiss army knife for system administrators because they mostly connect to servers using SSH and need a CLI-based editors get their job done. But as developers, we have much broader options to choose from. That 8GB of memory that is installed on your machine is completely free to use. I don’t want to advertise the text-editor or IDE I’m using myself. It’s completely up to you! You may want to continue using Vim and that’s OK. But just because geeks use Vim for coding doesn’t mean it is the best option and you have to do the same!

If you’re a developer, remember that the job is to develop the software. Your client doesn’t pay you more if you use a geeky text-editor or hard-to-install linux distro. They just want their software to be developed using best-practices and they want it fast. Using CLI-based software doesn’t make you a good developer.