Tag Archives: linux

aynthing about linux

Developing on Linux – Choosing OS

In real open source, you have the right to control your own destiny.

Linus Torvalds

Intro

I have been using Windows machine since my first encounters with PC. Almost 20 years from my first keyboard entries. I did work with Linux back in my college years, but mostly to learn Java and Oberon as part of my commitments (Fedora and SuSe installation base mostly).

Nevertheless, I did prefer having Windows on my PC. Everybody I knew back then had Windows. Games were easy to install, no scripting needed, no weird setup procedures, just double click MSI and Next Next Finish. All the tech books I read to learn to code, had an easy procedure to install tools on Windows. It felt normal and comfortable. Of course, using animations from StarDock and keyboard-driven file manager – TotalCommander helped a lot to adopt it even faster.

One of the main reasons why I choose Windows was Visual Studio. Mixed with ReSharper, it was no match for any other tools out there. Even now, these combinations beat the majority of the .NET development editors for .NET development.

Why then trying out Linux? The answer is simple: I have been working directly or indirectly with Kubernetes lately, spending 3/4 of my time on Linux – mostly Ubuntu. Even though leveraging Cloud Shell with Bash enabled either WSL or even Powershell to work with dev/prod clusters, I needed to connect to workers behind the scenes to maintain/manage system updates or to update container images / repos. With that in mind and .NET being designed and built from zero to be a hero on every platform, I decided to give Linux a try. So here I am, an enthusiastic .NET developer trying our Linux for a few months.

p.s.: To be fair, I own MacBook Pro, but after two weeks the usage / different keyboard setup and app management, that was too much stress for me to continue the adventure. Maybe it was too easy 🤷‍♂️

Choosing the distribution of Linux

The first hit (when you search for Linux) is the link to https://www.linux.org/. Clicking Download menu options, you get a list of distributions to select from. Each of them brings something different for the user but have Linux as a core. So, which one to select? I worked with Ubuntu in production, heard about Kali, install Fedora a few times, used Debian and CentOS – but that was me playing around, doing distro hopping. Yeah, that is a thing 🙂 Since it is really easy to install and you could run it via USB or “Live CD”, you can try it without destroying anything. Having limited time, I asked a friend, who has been a Linux user for more than 10 years, to recommend me one. He said: ” Linux Mint. You like animations, fast responsiveness and frankly, it can be a shock for you to start so fast with only terminal power at your hands.”

So Linux Mint it is.

Picture from https://linuxmint-installation-guide.readthedocs.io/en/latest/install.html

On the download page, I found out Linux Mint has 3 options you can leverage – described here. I went with Cinnamon 64 bit edition, as it was fully featured. I searched for USB installation instructions and went through installation procedure with USB stick (for me it worked with tool Etcher – I did try to make it with Rufus, but for some reason the ISO image was corrupted).

Installation was easy and fast. First login impressive – startup screen with tips and first steps. In my case everything worked as expected. I did update Nvidia drivers via driver manager – if you have challenges, you should give it a try.

First impressions

I installed Linux on a Lenovo laptop T460S, Intell CPU i7, 16gb RAM, 512 GB SSD, integrated graphics card. You can check the full version of my system information here.

What I really liked:

+ Battery Life: Having max 1h 30 min on my Windows machine, Linux has surprised me. I worked 3h without any challenges.

+ Powerful modifications: settings, colors, fonts, start menu logo, integration of themes, etc.), ease of install through a package manager, built-in tools like docker, textpad, gimp, …., made me productive immediately. No need to search through numerous blogs/sites to find appropriate software with installation paths and MSI. The package manager is quite good on finding additional applications.

theme modifications
Theme modification options

+ Hot corners: defining what happens, if I hover with mouse in different corners. Quite useful, when you need to do additional things and can take advantage with your mouse.

hot corners
Hot corners.

+ Workspaces: Windows has them as well, but here the usage feels natural. You can select with an app, define where it should show itself (current or all workspaces), you can have terminal opened full screen in one workspace, open new terminal in second one, work there, switch back and forth, no interaction between workspaces (unless you want to) – if you click on an icon in taskbar, it opens new instance, quick switches, hot corners support. Productivity on steroids.

workspaces
Workspaces

+ File searching in Nemo was surprisingly fast and effective. I found what I was looking for, without waiting for search index to pick it up.

searching in Nemo
Search in Nemo

+ Applets: having small utilities on my desktop or taskbar is useful so I can configure them however I like them. Quite handy – this is something that is in Windows by default (toolbar), but I never used it, because it feels too cluterish for me. More here.

Applets
Applets

Conclusion

Honestly, I was sceptical to run Linux on my main dev laptop and to use it daily. I started to install software on my machine, which is a post on its own due to some challenges. As a user, it feels natural to use and has some quite good advantages (see upper points). Still having Windows on all other machines, but the journey until now was sweet.

To the batmobile and let’s make the laptop dev usable….