Seth Barrett

Daily Blog Post: Febuary 22nd, 2023

Software

Feb 22nd, 2023

My Daily Software and Configuration Stack

Hello everyone,

In this post, I would like to share with you the various software and configurations that I use on a daily basis. I use a combination of Windows, MacOS, Debian, Ubuntu, Mint, De-Googled Android, and Rasbian for my various computing needs. I will provide a detailed overview of each operating system and the software that I use, as well as a few that I plan to learn in the future.

Starting with Windows on my personal laptop, I use Windows 10 and have debloated it using a Powershell script available in this Github repository. This script helps to significantly reduce the resource demands of Windows 10, and I have not yet upgraded to Windows 11 due to the lack of a similar script. For Windows-specific software, I use Notepad++ for text editing and software development. It is an excellent, open-source software that is highly extensible. I have used it to create my own syntax highlighting scheme for the CLIPS rule-based system. I also use the CLIPS repl in Windows 10, though I hope to investigate alternative solutions for Linux and Mac in the future.

For my school-provided MacBook Pro, I use MacOS. While I appreciate the strong battery life, performance, and memory of the M1 Mac, I have not yet fully embraced Mac as my preferred operating system. I use the zsh shell on this machine, and have not yet explored its customization options, but plan to in the future.

For Linux, I have Debian installed in virtual machines on both my MacBook and Windows laptop, as well as on my web server. I use nginx as my web server software and have not added any additional components to the remote server. The virtual machine instances utilize the Cinnamon desktop environment with the Solarized Dark theme, and the bash shell.

I use Ubuntu for most of my programming needs and have the GNOME desktop environment with the Solarized Dark theme. I use the same software for programming across all of my devices, and I will outline those below. While Ubuntu was the first Linux operating system I learned, I usually prefer Debian for my personal computers.

I have Mint installed on my old laptop, which I use primarily for research. It has the xfce desktop environment with the Solarized Dark theme, and the laptop has 8GB of memory, which allows it to run effectively despite its limited specifications.

I run Graphene OS on my smartphone, which is a security-focused fork of Android that removes all Google tracking. I use the F-Droid store to download apps, which only allows free and open-source applications. I have several unique tools on my phone, including the Termux terminal emulator, the VNC viewer client app, Feeder for aggregating my RSS feeds, and ViMusic for playing ad-free YouTube Music with offline saving capabilities.

For my Raspberry Pis, I use Rasbian as it simply works. On my senior capstone project, I used headless Debian, which also worked well. The only unique software I use on my Pis is the VNC server, which allows me to easily control them visually from my laptops and phone.

For general program development, I use Visual Studio Code. It works exceptionally well for web development and Python scripting, and has extensions for most programming languages. I use the Sonar Lint extension for static code analysis, as well as extensions for Python, Java, JavaScript, and C#. I also use the Solarized Dark theme.

For C#, C++, and 32-bit x86 development, I use Visual Studio, as in my opinion, it is the best tool available for C# development.

For Java development, I mostly use JetBrains' Idea IDE, but also often turn to VSC or Eclipse when encountering issues. I enhance my experience by utilizing the SonarLint extension in both Idea and VSC.

For text editing, I rely on Vim. It is ideal for composing short documents and can greatly boost coding efficiency. I aspire to expand my knowledge on Vim macros and Emacs.

For office work, I prefer LibreOffice on all my devices. I see no reason to switch to Microsoft Office except for Visio, which I'm gradually replacing with LaTeX.

When it comes to video playback, I use VLC. I have been using it for years for music and it's an excellent, free, open-source program that works across all my devices.

For music, I use MPD and ncmpcpp, which form a seamless and optimized setup. My configurations for both are available on here Github.

For remote code storage, I use Git, GitLab, and Github. I aim to learn how to set up a remote Git server soon.

My preferred browser is Brave, a fork of Chromium, which I highly recommend for its sensible standard settings, native ad and tracker blocking, and customizable features. I use the Video Speed Controller extension to adjust web video playback and the Sponsor Block to skip sponsored content on YouTube. I also turned off Brave's crypto rewards and enabled dark mode using the flags found here

As for my shell, I predominantly use Bash and have become proficient in shell scripting, familiar with its configurations. My Bashrc, profile, and aliases are all available here on Github where I've greatly enhanced my shell capabilities with custom aliases.

I hope this information will assist you in choosing practical software for your daily use.