How much resources are actually enough?

Yesterday I came across this post on Reddit in which a person shows that he has upgraded his laptop’s RAM to 128GB and its storage to 12TB!

A high-end laptop with 128GB of storage

For the first 10 seconds after I watched this I said: Wow! This is a bold configuration. He probably can do whatever he wants with his laptop now! But after 30 seconds I said: What he can do with his laptop that I can’t with mine? After that, my brain started to use its power to convince me that there are certain areas, which I’m not aware of, that need a decent amount of resources. For example, maybe he’s a 3D animator who needs these resources to render heavy graphics. Or maybe he is a scientist that does a lot of complex computations. Anyway, I hope he has compelling reasons for this upgrade.

As an another example, a couple of weeks ago Samsung announced their new flagship phone Galaxy S21 Ultra. Believe it or not but this phone has 16GB of RAM, 5! cameras (one of them has a 108MP sensor), an octa-core processor (1x2.9 GHz Cortex-X1 & 3x2.80 GHz Cortex-A78 & 4x2.2 GHz Cortex-A55), and up to 512GB of storage! The funny part is that this phone has twice more resources than my current laptop I use for software development. My daily driver laptop has a Core i5 processor with 8GB of RAM and 256GB of storage. I use it almost every day and since I’m a software developer I do lots of resource-intensive tasks such as compilation and computation. I own this for about 4 years now can’t find a reason to upgrade it yet; however, the battery needs to be replaced which is normal.

In my opinion, the question we should ask ourselves before buying these stuff is that do we really need all of these? I personally do care about photos. I took lots of photos from my family and we love watching them every now and then. But my 12MP iPhone camera was always enough. We have even printed some of our best photos as well and the quality is satisfying.

Companies like Apple and Samsung are delighted to see people consume more even if they don’t use what they have purchased. They simply don’t care! All they want is your money! Even further, they want the society to believe that people who have the latest gadgets are more admirable; and unfortunately, they have succeeded!

The tragedy begins when you spend a considerable amount of money on a new device (The Galaxy S21 Ultra I mentioned above is around $1,400), let’s say a new phone, and after less than a week you face this unpleasant truth that it doesn’t make you happy anymore because the difference between your new gadget and the previous one is so slight you can’t even feel!

In November 2000, when Intel announced their first-generation Pentium 4 processors, most people instantly upgraded their PCs. You know why? Because the difference between previous generations and Pentium 4 was huge! Nowadays, your 2015 computer performance is almost as same as a 2020 model. You can feel it more obviously on smartphones these days. An iPhone 7 is capable of doing 80% of whatever you can do with an iPhone 12. Because the companies cannot provide life-changing features, they have started to limit older phones intentionally. Here are some very ridiculous examples:

  • Some wallpapers in iPhone 12 are not available in iPhone 11. Some of iPhone 11 wallpapers are not available in iPhone X.
  • Default ringtone on iPhone X or later is not available on earlier iPhones.
  • Software updates are not available for all phones. Buy a new phone to get the latest version of Android.

And then to sell you even more they trap you in an infinite loop:

  • The new iPhone 12 has new Blue color and you can’t believe how gorgeous is it! However, to protect it you will need to buy a case as well… Oh, you won’t be able to see our gorgeous blue color after the case is used.
  • You can now shoot videos in 8K! Wait… we forgot to mention that you will also need a display/TV to watch these videos on. But don’t worry! We got your back. You can buy one for just $2000!
  • Our previous phone had a 100MP camera sensor, but this year we have done a great job upgrading it to 108. Although the quality of the images is 99% similar to 12MP photos but theoretically 108MP is better.
  • Our new laptop boots up 5 seconds faster than our previous generations; so, you have 5 more seconds getting yourself conformable behind the desk.

Examples I’ve mentioned above seem funny but I’m afraid they are the truth behind what some companies advertise.

What I’m going to emphasize here is that more than 80% (if not 90%) of people upgrade their devices not because they need to be upgraded but because they just want to have the latest ones. Some people even use them to show off! They think the more belongings they have, the more respect they get from society. I believe we should stop value humans by what they have; instead, we must value them by what they have done! I’ve seen plenty of engineers and scientists who are using very typical devices; but, they do extraordinary things with them. On the other hand, I see some other guys who own lots of high-end gadgets but they even don’t know how to use them! Computers that are used to send astronauts to space have specifications similar to the majority of smartphones made 10 years ago.

I’m not against new gadgets. A friend of mine bought an iPhone 12 a week ago after his iPhone 6 screen broke. He bought a new phone because he needed one and it’s totally OK! You don’t need 128GB of RAM on your computer to write a great book. You don’t need an iPad Pro to become a good doctor. You don’t need a high-end smartphone with 108MP camera to solve world’s most demanding problems. You don’t need the latest Apple Watch to win olympic games! All you need is you!

I quitted Instagram and Twitter for about two months and nothing changed

I have been using Instagram and Twitter for nearly a decade. After reading Digital Minimalism by Cal Newport, I decided to practice using social media in a more intentional way so I started monitoring all of my social media activities and values they provide. What I realized was that Instagram, Facebook, and Twitter create almost no values for me at all. It was such a surprise because I put so much effort to take care of them in the past. For example, I tried my best to curate almost all of my tweets, try to post the best photos I could on Instagram; but in fact, I received almost no values from them.

As a result, I removed all social media apps from my phone and practiced using them via my computer’s web browser instead to reduce the amount of time I spend on each service. I also tweeted a few and posted a couple photos on Instagram since that time but again, I received no values in return! Finally I made my choice and signed out from my accounts even from web browsers. I wanted to see if not using these social media services have effects on my life and the results was a big NO! After quitting Twitter and Instagram nothing changed. I still in touch with my friends and family via Whatsapp and if I want to share a photo with them, I just post it to our family groups.

To be able to stay tuned with the latest news I care about, I installed an RSS reader on my computer and subscribed to my favorites websites and blogs and I usually check them once every other day.

It’s important to understand that by using social media, you’re spending your time and companies behind those services are selling your time to other companies like advertisers. They make a lot of money out of your attention and I believe it’s important for everyone to understand what is going on behind the scenes. I highly recommend you to reconsider your social media consumption and decide how you want your time to be spent because all creatures only live once.

2020 is coming to an end ... finally

2021 is coming (Photo taken from 2020 will be over in less than 5 days. It was not a good year especially for me. Due to some circumstances, I had no choice but to stay at home. I was supposed to join my new company by June, but because of the pandemic, I had no choice but to stay home and WAIT! Believe me or not but waiting and uncertainty are the worst things I have ever experienced.

Although I’m still waiting and trying to deal with the uncertainty, I did my best to adapt to this situation by taking advantage of it. I learned a lot! There were lots of topics either technical or non-technical that I was interested in learning them but I had not enough time in the past to dig deep. For example, I have started to learn a new language (Ich begann eine neue Sprache lernen 😉), extended my contribution to more open source communities, dug deep in Go programming language, and more importantly, learned how to work from home. I tried to be the best friend for my wife and a better father for my daughter. I understood that having a good family and relationship is one of the most important things to have.

I know lots of you may have similar situations but as mentioned in the Shawshank Redemption: “Hope is a good thing”. I’m confident that 2021 would be the year of happiness and progress.

Stay safe and happy new year!

In Misc | 26 Dec 2020

Automate tmux environment creation

As a software developer I always tend to tune my development environments. I usually do this by using and setting keyboard shortcuts and creating workflows that works best for me.

One of the environments that is essential to me is the terminal. I spend a lot of time everyday in it compiling and testing my code. In addition to that and because I love the simplicity of the terminal, I prefer to do other things than code-related stuff in it as well. For example, I use Newsboat RSS reader to follow up my favorite blogs.

Every morning I start my day by setting up my tmux windows and panes. The first window is for my VPN connection (Since we can do nothing without a VPN connection in Iran) and htop. The second window is always for backend development. It usually contains a pane that belongs to docker and docker-compose, another for running my tests, and another for neovim. If I do freelancing, the third window goes to frontend development and so on. Because setting it up takes a little bit of time everyday, I decided to write a bash script to create all windows and panes for me automatically.

tmux new-session -d
tmux rename 'dev'
tmux renamew 'vpn'
tmux new-window -n 'backend' -c ~/go/src -d
tmux split-window -h -t 2. -c ~/go/src -d
tmux new-window -n 'frontend' -c ~/dev -d
tmux new-window -n 'other' -c ~/dev/scripts -d
tmux attach -t dev

Let’s see what we have in here:

  • In line 1 we create a new tmux session. The -d switch creates the session in detached mode.
  • Line 2 renames the session name to dev in this case.
  • Since the session always starts with a window by default, we rename the first window name by using renamew command in line 3.
  • In line 4, we create the second window and name it backend. The -c option is used to specify the current working directory for that window. As you can see a -d option is also used to prevent switching to that window automatically.
  • Line 5 splits the second window in half. The -h option is used for horizontal splitting. The -t switch is also used to specify which window should be split.
  • Line 6 and 7 create two other windows named frontend and other with same arguments used in line 4.
  • Finally we attach what we have created to the screen using the attach command. As you may have already guessed, the -t option is used to specify which session we should attach to the screen.

The script may seem very simple, but it saves me plenty of time every day. One routing I’m trying to adopt in my life is to automate whatever is possible to be automated. I hope you do the same because it saves you a lot of time and hence you can spend that freed time doing something more important.

How Iranian software engineers are suffering from US sanctions

Before I start, I would like to ask you to take a quick look at screenshots below: website

Docker Hub

Google and Android Developers website Google Developers

Oracle developers Oracle Developers

You may have never seen such things before but Iranian software developers are facing many difficulties accessing these websites and services every day; and of course, it’s not limited to the above examples.

Last year, Github (an essential service for developers) blocked Iranian software engineers. So, many developers have migrated to Gitlab because it was the only accessible git service. Last month, Gitlab joined Github and banned Iranians and prevented them to access their software source codes.

In 2017, in an unprecedented move, Apple removed Iranian apps from the AppStore due to US sanctions and as a result so many iOS and macOS developers lost their jobs because they could not publish their apps anymore. To deal with this, a few organizations decided to use Enterprise app certificates to keep their iOS users. But, every once in a while, Apple recognizes these accounts and blocks them. Consequently, most iPhone/iPad users have no other choice but to use the web app version of their desired services.

Because of sanctions, Iranian developers are unable to access cloud services such as AWS or Microsoft Azure as well!

Nearly all developer services and tools are blocked for Iranians; therefore, developers must change their IP addresses by using a VPN or proxy to be able to access them. For example, Android developers cannot download Android Studio and its modules without using a VPN! This applies to Docker and Golang packages as well! Iranian developers must again use a bypassing tool to be able to access all of mentioned resources. It’s also worth mentioning that using a VPN in Iran is considered a crime.

These limitations are not just applied to software industry. Designers of all kinds are victims too! For instance, Adobe Creative Cloud along with services like Behance and Dribbble are blocked for Iranian graphic designers.

As a matter of fact, restrictions were in place for years but have intensified during Trump administration. They always tell the news that they are sanctioning the Iranian government but the truth is that people are the only ones that are hit.

I would to ask you to take a moment and think about it. Just imagine one day you wake up and you cannot access these resources. What would you do?

In Misc | 27 Oct 2020