Tag: ubuntu

As individuals who spend most of our time next to a computer, we sometimes need to ask ourselves questions about our most basic habits. As you may already guess, I’m talking about the operating system each of us uses on a daily basis. Windows’ market share, in terms of desktop computers, is above 90%! Everyone uses Windows, for different reasons:

Windows OS (operating system) comes with almost every PC (personal computer) as a default OS.

Since we were young we grew up on different Windows OS versions, so it’s difficult to make a move.

Leaving MacOS aside, you barely see non-Windows users so you’re not exposed to additional alternatives. Therefore, most of the people think Windows is the only alternative for running their desktop PC.

I must admit that Windows is well-designed, convenient, allows you to perform many tasks fairly easy and gets updated every once in a while. But, as a Windows user who hasn’t experienced any other operating system, you sometimes tend to not even think of the possibilities that you don’t have.

The Windows alternative I’m about to present here is Linux. Linux is an open-source operating system developed by the community. Linux is Unix-like, which means it is based on the same principals as other Unix-based systems. Linux is completely free and has different distributions, like Ubuntu, CentOS, Debian, etc. Every distribution has its own pros and cons and is commonly used in different applications. Linux is light-weight in terms of hard-disk, and therefore it’s used in embedded systems, smart home devices, IoT (Internet-of-things) and much more. Android OS is also based on Linux.

If you’re not yet a Linux user, I hope that you have an idea by now of what Linux is all about. As a technological entrepreneur who have more than 7 years of experience in software development, data science and entrepreneurship, I have to say that moving from Windows to Ubuntu was one of the most productivity boosts I’ve experienced.

It all started when I noticed that the basic tools that I’m working with, like Android Studio IDE and an Android simulator running on a Windows machine, barely allows me to make progress in work in terms of latency. I thought to myself that it’s probably about the hardware, so I decided to upgrade to a Lenovo Y50-70 PC with 16GB of RAM and 512MB SSD hard-drive.

After installing the necessary software to keep developing my project, I realized that I face to similar latency issues from my brand-new PC. I didn’t use too many RAM-consuming applications at once and I expected my new PC to work like a spaceship. But it didn’t happen. At this point, I realized that I have to do a more radical pivot (a shift in strategy).

Once realizing that the hardware is probably not the problem, I started to investigate the software approach. After interacting with Linux for short periods of time during college, I decided to conduct a full research. Ubuntu distribution of Linux is the most popular distribution for PC users. Ubuntu is available both as a client edition for PC users and as a server edition for installing and operating servers. One of the huge advantages I found about moving the Linux is to be well-familiar with Ubuntu and to work with it both on my PC and on the servers I operate for my applications.

After reading A LOT of resources online discussing Linux or Windows and Windows vs. Ubuntu, I realized that OS that fits your needs and adapts itself to you is what can make you extremely more productive in the long run.

So I waited for a sign, and the sign arrived – a virus attack that enforced me to backup all my files and format my PC. But this time – with an Ubuntu operating system on board. I had some thoughts about maybe installing Windows and Ubuntu side-by-side for a soft landing, but I’m now happy that I didn’t do it. The reason for leaving Windows entirely is that I wanted to be fully-committed to Ubuntu without the Windows fall-back alternative.

Here are some lessons learned from the process of moving from Windows to Linux. The lessons can refer to any general user but are mostly aimed to developers, coders, programmers, and every person who codes or creates products.

Performance

Linux runs faster than both Windows 8.1 and Windows 10 thanks to its light-weight architecture. After moving the Linux I’ve noticed a dramatic improvement in the speed and performance of my work flow, with the exact same tools I used on Windows. Linux supports many efficient tools for developers and enables you to operate them seamlessly.

Security

Linux is open-source. That is, theoretically, everyone can contribute code in order to enhance the experience, add features, fix bugs, reduce security risks and more. Naturally, every large-scale open-source project enjoys many pairs of eyes examine every aspect of it. Therefore, in terms of security, Linux is naturally more secure than Windows. Rather than installing anti-viruses and 3rd party tools for cleaning malware, you just need to stick to the recommended repositories and you are good to go.

Software development

The terminal in Linux is a wild card. You can do almost anything with it, including software installation, application and server configurations, file system management and much more. As developers, the terminal is our sweet spot. There is nothing more convenient than running servers, training machine learning models, accessing remote machines, compiling and running scripts all from the same terminal window. It’s a huge productivity booster. Automation is also a game-changer using the terminal.

Modularity

Linux provides you with a lot of modularity as a developer. You can easily configure and access any corner in your computer, monitor processes and manage virtual environments for different projects. Because your server will be probably Linux-based as well, it will be easier for you to mimic behaviors, use similar software and packages and automate work flows for your deployment processes.

Working with remote Linux servers

Most of the servers that hold the entire internet are Linux-based for many reasons that will not be listed here. Linux provides any tools you need as a developer to operate a scalable, secure servers. Therefore, mastering Linux for configuring and maintaining servers is a must to have skill for any technological entrepreneur who operates end-to-end applications. While working with Windows on your local machine, you need to use 3rd party tools like PUTTY in order to connect and interact with Linux-based remote servers, which is not so convenient. For copying files, for example, you need to download another tool when you use Windows. A huge advantage of working with a Linux-based local machine is the ability to connect to any remote server with a single line executed via the terminal. Hosts can be stored in a file as well as SSH keys and usernames, so all you have to do in order to connect via SSH is:

ssh ofir-server

and you’re in! No passwords required. This is a simple demonstration of many capabilities of configuring and maintaining Linux-based servers with a Linux-based local machine. The ability to work via the terminal for both machines is a no-brainer. Most of the popular cloud providers also have CLIs (command-line-interface) for easy integrations.

Familiarity with low-level OS principals

Windows implementation is very high-level. In other words, you’re barely exposed to internal issues and implementations of the operating system itself. Linux is just the opposite. When using Linux, you often face configurations that have to be implemented by the terminal, editing OS files, adding scheduled tasks, updating software, installing drivers and more. When running Ubuntu, AskUbuntu.com is your friend. Not only you earn more capabilities as a developer, you also learn (sometimes the hard way) how to solve issues, monitor your machine for potential problems, configure different components and more.

Not everything is perfect, though

Becoming an Ubuntu user is based on a learning curve. Some things you didn’t need to consider back when using Windows, now might need to be configured with help from AskUbuntu.com. Expect issues if you have special hardware installed on your computer, like GPUs.

I believe that every technological entrepreneur must be a little bit of a designer with some minimal skills of graphic design. Unfortunately, Adobe hasn’t released any of its products for Linux users so it’s impossible to run them directly. The Ubuntu alternative is called GIMP, which is a free software for all the basic requirements of a developer-designer (and beyond).

Despite the disadvantages, since I decided to move, I have no regrets. I’m all Ubuntu now and wish I had moved a few years ago.

Linux is not for everyone. As aforesaid, you should check whether it fits your daily tasks. I think that if you consider yourself a technological entrepreneur/developer/data scientist/programmer – a person who codes or interact with technical stuff related to coding in one way or another – you should definitely check out Ubuntu.