 Linux is my IDE, and Vim is my text editor. So I wanted to give a little tour of a minimal IDE or operating system with minimal software. You'll see that there's not much here, but I think that it has everything that's needed to do work as a data scientist. So let's log in. So this is the desktop environment. This is DWM. I don't have a wallpaper. The reason I don't have a wallpaper here is that I don't really need one. I've been in the RISING world before. When you get a wallpaper, at least for me, I had to worry about the theme of everything else. That means making sure that my terminal had the same theme as my wallpaper. And there are applications to do that, things like PyWall, but that's just one more thing to have to think about. The purpose of this build is just to get things done. This is the simple terminal. If you go to the subreddit Unix porn, you'll see people with terminals that are transparent or have a shadowing from their compositor. No transparency is needed here because there's no wallpaper to look at. This is just a terminal. It executes commands, which is all I need my terminal to do. So far, this build looks minimal. The one thing that does have quite a bit of configuration is my NeoVim configuration. So this is pretty similar to the NeoVim I've shown before in previous videos, but most of my time is really spent editing text. So making sure that my text editing is as comfortable as possible is something that means a lot. Because I put a lot of effort into editing text, I put a lot of effort into making sure that that text editing process is smooth. Something else you'll notice is that the font is a nice looking font. It's source code pro. Other than my NeoVim theme, the font is the only aesthetic manipulation I've done to this IDE. So the operating system is Debian. I've used quite a few Linux distributions. I don't really think that getting the Linux distribution right is a big deal. It just so happened that I settled on Debian. A couple things that Debian does have going for it, thinking about data science, is that there's a strong Debian slash R community. And so I can be pretty confident that the R packages from the Debian repositories are going to be stable. Another thing I like about Debian is that it's popular. So there's a large community behind Debian. Lots of times it's pretty easy to find answers to questions I have. Also for new software, there's usually a way to get that software with apt-get. Another application that this IDE has is a browser. So Firefox could be launched with the menu. It's launched over on Workspace 9. I tend to work with my windows stacked. Even though it opened up on Workspace 9, I tend to have everything in one workspace and stacked on one workspace. So I just kind of scroll through the different windows I have open. And recently I've also been hiding my DWM bar on the top. I didn't add that in the configuration. You can add on your configuration whether you want the bar on the top or the bottom, whether you want it hidden or not. There's also patches to add. Some padding around the bar. But again, most of my time is spent just editing text. And I'm not too worried about bouncing around to different workspaces. You'll notice I don't have a system tray to see what's happening with my audio or network configuration or my battery life. I usually use applications in the terminal to tell me that when I want to know that. Lots of times, I just hide that bar. Alt B to hide the bar. So this is usually what I've got open. I've got a terminal and I've got a browser open. Usually when I'm working, I'll be working in Tmux. So I'll have multiple Tmux sessions opened. Maybe I'll have Envim open in one Tmux window. And the shell open. What do I have installed here? The shell opened in another terminal. I guess I don't normally have top running. Sometimes I'll have VisiData. I'm going to pull some data just to show what VisiData looks like. So this is VisiData. So if I'm working on some data manipulation, maybe I'll just have the data open in VisiData. And I'll be working on some kind of script. I also have this setup to work well with Python editing. This is something I've showed off a little bit more in other videos. I've also got this setup with R, specifically Envimar. And so this can run R. Now that I've given a little tour of this, I'm going to close this. This is all open in VirtualBox. And I'm going to show you how to install this in a VirtualBox. So you can play around with this and get comfortable before maybe you install it on your main desktop machine. Before I actually show the installed Debian, I wanted to talk about what is happening here. So once Debian is installed, I'll download this DWM setup script and just run the commands in this script. It's a little less than 100 lines. But I thought it'd be useful to just go over what's in here so it's not mysterious what's happening. The first thing is just to do an apt-get update and upgrade. All of this here is X things. When you launch X server, you use a command start X. And so there's lots of things that you need to get a window manager running. This line is just a number of utilities I tend to use. Curl, Neovin, Make, Tmux, Git, Pip, NeoFetch, and Stow. And feel free to add more utilities and edit this as much as you'd like. This is really pretty basic if you feel like you want to add more. Feel free to add more. This is just something that I've been very comfortable with. This chunk here is an R chunk. It seems like a lot. And there's a little bit of extra work that I did here to make sure that the most recent version of R is installed. So this is going to be R4. And the way that packages work in Debian, at least the way I understand it, is that your version number is glued to the latest Debian release. So if we're in Buster right now, the Debian version Buster, then you have to be using the R release that was available in that Buster release. And so that's an older version of R, like 3-point, something I can't remember which version it is. I like to have the latest version of R, or at least a more recent version of R. And so the work done here is to make sure that the back ports are set up so that you can use the most recent version of R. This single line is to install Open Blast. Open Blast makes the linear algebra operations go really fast. This chunk is to make a directory for Envim and then to pull my Envim configuration, my nit.vim. This is the one aesthetic thing I do to the IDE. I pull a font and install it. So this is a source code pro. These three sections are the three suckless pieces of software I use, ST for the terminal, DWM for the window manager, and D-Menu for the application launcher. Normally, all you would have to do is clone CD into the directory you just cloned and then do a pseudo-make install. But I wanted to also make sure that the font was consistent between my terminal, DWM, and D-Menu. And so what's happening here with SED is that I'm inserting a line that sets the font, and then here I'm deleting the old line, the line that had the other font. It's a monospace font by default. It's just called monospace. Same idea with DWM. The idea here is I inserted the font in the two places it needed to be set for fonts and D-Menu font, and then deleted line 8 and line 8 again, which had the two lines that were the old font. And then I did a pseudo-make install. For D-Menu, same idea. Insert source code pro and delete the line that had the old font. And then pseudo-make install. Vimplug is necessary to get N-Vim working with its plugins. So this command here is simply to download Vimplug. These are all the pip-installed packages that make Python text editing smooth. Jedi is for auto-completion. Flake 8 is for linting. iSort is to sort the libraries that you're importing. PyEnvim is Python. Envim integration. And black is... I don't know what it's called technically. But I run AL-Lint fix, and it fixes my Python. Maybe it's a fixer. I can use the AL plugin to AL-Fix my Python script, and it cleans up the formatting. Stowe, I'm not going to get into what Stowe does, but the only thing I stowe is Envim, and that's going to be in the .files directory. Because we're using x, there needs to be an x-session file. So all that's happening here is I'm adding three lines. The standard shell, she-bang-bin-sh, x-term, and execute-dwm. That's all that needs to be in the x-session file. And then finally, I install a browser. There's some instructions here. I know it's a little bit of a taboo to have comments in a script, but if this is something that is unfamiliar, I think it's useful just to have some helpful instructions here. You have to run start-x to get wm-opened, alt-shift-enter to get st-open, alt-shift-c to close a window in st- well, any window, and alt-p to get dmenu running. So if you wanted to launch Firefox, you would just run alt-p and then start typing Firefox, and you'll see it on your top bar. And finally, you'll have to run plug install on your init.vm file. So I'm going to go through all of this right now, starting with installing Debian. So you can get Debian from debion.org, and just click the download link, and you'll see this ISO. I've already got this downloaded, so I'm not going to re-download it, but you just hit OK, and that's going to be the ISO that you use to feed VirtualBox, or if you're installing it on your desktop, this is what you flash the USB with. Really easy. So in VirtualBox, I'm just clicking new. I'm going to name this debxvzf, and the type is Linux. The version is a Debian 64-bit memory. I usually like having at 8 gigabytes. I'll just make this around 100, and then click start. This is the ISO that's downloaded from the Debian page. You can just click on add, and you'll find it in your downloads. But since it's already selected here, I don't really need to do that. I'll just select the ISO here, and start. As far as the Debian install goes, I'm just going to fast forward this. Lots of this is really just waiting for installs to happen. So I'm just going to take off the audio and start installing Debian. If there's anything that's not standard, I'll hop in and talk about that. But I'm just going to run through the Debian install and speed up the video. So this is where I diverge from the standard Debian install. I don't install the desktop environment, and I don't install a print server. All I have checked on this whole list is standard system utilities. So now Debian's installed. I'm just going to log in. And now I'm going to download the DWM setup script. Out of the box, virtual box doesn't have any kind of ability to do copy and paste. That's something I'll show how to set up after this. So as a convenience, there is a tiny URL here that links to the raw code here. This just makes it so you don't have to type as much. So the script was downloaded. I'm going to rename this. Now I just need to make it executable. And at this point, the script can be run. As this runs, you'll notice that a few prompts come up. Just click enter through those prompts. Except for this one. This is asking for your password. All right, the install is done. All you have to do is type star x. And here it is. One thing you'll notice though in virtual box is the screen never goes above this size. Which is pretty annoying. But before we fix that, I wanted to go ahead and install some nvim plugins. And then we'll fix that issue. One thing you'll see when I first get into this text is there's going to be some warnings that come up. All those warnings have to do with the fact that none of the plugins have been installed for nvim. So you'll see you can't find the color scheme one. That's just because we haven't run plug install to install that yet. And there's a few other things that will come up. Just hit enter through those. So here, just hit colon, plug install. And you can tab complete. All right, that's ready to go. colon wq to quit. I actually do wqa to close everything. Now when we type nvim, everything is working fine. And we can look at our nvim configuration and everything looks great. So now let's fix this dimension issue with virtual box. The hope is that you'll install this on virtual box and play around with it, get used to it. And once you're comfortable, you can install on your own desktop. So I'm thinking that you'll be working with this for a little bit of time on virtual box. So it'd be best to be as comfortable as possible and not have to deal with this squished display. So I have this just vboxguest.sh. With this script, you do have to go to devices and click on insert guest additions. And once that's done, then you download this and run it. So I just downloaded this script and renamed it vbox.sh. Now it's ready to run. One thing to note is that this has a shutdown command at the end of this. The virtual box needs to be shut down for this installation to work properly. And again, just click enter through the prompts. So this should be ready to go. Let's give it a shot. You just need to go to view and full screen mode. So everything will still look squished until we log in to DWN. Initially it might look squished still, and then it will blow up to the full screen. So now we have a full screen. And you can get working and figure out what works for you. I'll repeat what I said at the beginning. Linux is my IDE. And Vim is my text editor. With this setup, even though this is technically a Linux distro, and we've got a window manager and things like that, the idea here is that with Linux as your IDE, you have the world's most powerful IDE. And this has worked well for me as a data scientist. Thanks for watching.