 The exact iPad I have is the iPad Air fourth generation. My 2013 MacBook Pro has had two battery replacements and the charging cable was starting to wear out. It's been over five years since I last bought a Apple device and I'm curious what the landscape looked like in 2020. The original plan I had was to buy a MacBook Air. I didn't really need the power of the Pro anymore and after watching a couple hours of YouTube reviews I became convinced that I needed an iPad Air with a magic keyboard. Normally I don't make large purchases like this but I justified it so I kind of went all in. The main question I had was does an iPad work for data science and I watched a few videos on iPad reviews and I remember finding one using an iPad for data science mostly reviewing software for doing local Python development and Jupyter notebooks things like that. This is a pretty different workflow from mine so I wasn't a hundred percent sure this was going to work for me. I also looked up a few YouTube videos on the Blink app about SSH'ing into a server and working from a server and this workflow is a lot closer to to what I do on the desktop. I if you've seen any of my other videos don't use anything other than a terminal. My text editor is Vim and I have some really great Vim plugins so I can't really speak for all data scientists. In fact my experience in workflow probably relates to smaller than one percent of the data science population. I tend to do all of my scripting in Vim and I'm very aware as someone who's been a data scientist professionally for going on my fourth year now there's many different ways to do data science and the way I do it is pretty much contrarian. That said I do use my co-workers tools when I collaborate and we all get along very well. When I'm working on something that has zero collaboration I have a little bit more freedom and I just choose to stick to minimal terminal tools for data science and I'm very happy with that and very effective with it. When I'm working with others I'm happy to use whatever my co-worker is most comfortable with. VS Code, PyCharm these are kind of soft skills where it's nice to adopt what someone else is using and get a project done and work together. So again when I was watching YouTube videos these videos mostly focused on local Python development. This doesn't really do it for me personally. I do use Python a lot but I also use R and sometimes I play with Armadillo C++. I also like to follow what the Go community and Rust community is doing and I've had some history with Julia. You can see that I'm very promiscuous when it comes to programming languages and with Envim and the Send to Window program I get a universal code executor or code runner. I also personally don't really get lots of pleasure out of learning someone else's GUI. I've used quite a bit in the past Cloud9, Dreamweaver, Spyder, PyCharm, Jupyter, CoLab notebooks, Databricks notebooks, SageMaker notebooks, VS Code, RStudio and I'm sure I've missed a couple that I've used in the past and if history repeats itself I'm sure that we'll see many more IDEs not fewer and again learning IDEs is just something that I think is good to do to collaborate with others but it's not something that I like to do as a personal hobby. In contrast what I prefer to do is work on my Envim configuration. I spent the last seven years working on tailoring my Vim configuration to me. Vim is coming on 30 years now and I plan to use it for at least 30 more years or as long as I'm I'm working where I need to edit text. So the takeaway if I were to say this all in one line is that the iPad is 110% capable for 1% of data scientists. So if you have the same workflows I have and can relate to my experience then I can tell you that the iPad does everything you need and more. Even if you don't use my specific workflow and you just want to try what I'm doing then maybe you can just give this a shot and see if it works for you. If it doesn't that's fine. What I can talk about specifically in this video is what has worked for me. So the way I do this is that I have an iPad Air and a Magic Keyboard. I use Blink and I pay for Blink. I think it's definitely worth paying for Blink. It's a great app. I use Blink to SSH into a Google Cloud computer and then I just work away once I download the software that I need. All I really need to do is set up my VIM configuration onto this cloud computer and install the software I want to use and it's ready to go. And since I already have install scripts from Xmonad and from DWM on Debian machines it's really not a big lift to modify those scripts to work in a cloud server SSH-ing from my iPad Air. Once this is installed I just go to work as usual and the nice thing with being able to work completely from the terminal is that you don't have many of the dependencies that might be difficult to install on non-standard desktop software. That's something I never have to worry about. All I have to worry about is can I get a terminal and from there I can do anything that I do day to day. So I've never been in a situation where I wish I had my MacBook Pro or ThinkPad when working on my data science projects. I like to play around a little bit. I made a package it's called Turnbox Plot that was 100% created on the iPad Air going through the Blink app and working on a cloud computer essentially. So today I was starting a new instance and I thought I'd just go ahead and start from scratch so I could show how you can do data science work on an iPad through the Blink app on a virtual machine. So I already had an instance before. I'm just going to go ahead and delete that and start from scratch and now create a new instance. There's not much that needs to be changed. This is a standard WNVM. There are a couple firewall check boxes though to check off. Checking off this HTTP traffic and HTTPS traffic is something that you've got to do and then just click on create instance. So on this screen I have one instance that's being deleted and then another one that's being created. Again just deleting an old instance that I had before. So once it's created it's important to add a SSH key. So to do that you just click on edit and scroll down to SSH keys and the SSH key you grab from the Blink app. So the Blink app stores your keys and the keys section. You can pull up settings by typing config once you open Blink and you want to copy the public key the first option. The big thing here is to enter the user xvzf is my username and that's the name of the account. I also have xvzf set up in my Blink app so the default user in Blink is xvzf. From here you can just save settings. Once it's saved you go ahead and grab the external IP and you add that in your hosts. So create a new host. You can see I've had lots of hosts before. This is an old host Google VM is an old host that's a host I just deleted. So I have to do when you enter a new host is put the external IP and the host name and for host just give it any name. The name doesn't really matter so much but under host name you've got to put the IP. User is xvzf just like was input for the SSH key section. Now we can go ahead and try to SSH and ask the standard questions whenever you SSH into a new server and we're in. So this point all I've got is a blank virtual machine. So what I want to do is I want to actually set this up to do some data science work. Previously I had a video on setting up a minimal DWM environment for data science on a Debian machine. I also have one for Xmonad so right now live I am going to go ahead and edit the DWM Debian config for an iPad. So this isn't going to be perfect. Hopefully there's no mistakes along the way here. Now there's a couple things that are different here. The big thing is that there's no need for a X window manager. So I'm not going to install all the X software. Everything is in the terminal. So there's no dmini bar. There's no ST terminal. There's no DWM with multiple windows. I'm just going to name this ipad.sh. I'm just looking through this to see what I should delete. All this X stuff, X init, X input, X fonts. I'm just going to go ahead and get rid of all of that. I'm playing a little bit with the Apple Pencil just doing the scribble function to delete. So the common utilities I'm going to keep those. The R install I'm going to go ahead and keep that. Open Blast will keep that. I definitely want to keep Envim and my Envim configuration. Fonts I'm not sure if it would really hurt to leave it or keep it. I'm not going to need ST. Go ahead and scribble that out. You can tell I'm not so great at scribbling. I won't need DWM here because I won't have a desktop environment. So I'll do a really bad job scribbling that out also. And the menu won't need that. Definitely need Vimplug, Jedi, all those utilities for making Python and Envim nice. I still want STO for the dot files. Definitely don't need X Session to set a wallpaper anymore. And I won't need a browser. These instructions are really for desktop environment workflows. I'm just going to delete some of those comments. I'm still going to need to go into the Envim configuration and do a plug install, though. Let's keep that comment there. So this should do it. I don't know for sure if this is going to work. This is kind of off the cuff, but I think this has pretty much what I need. I do like to have WGet. So I'll go ahead and just add that in here also. I use WGet to download packages, files from a URL. It's a pretty nice utility. I'll go ahead and save that and grab the URL. I'm going to go ahead and install WGet right now. Now I can run WGet to get that shell script and do a CHmod to give it executable permissions. CHmod plus X. So this is going through the installation right now. This will take some time. There will probably be about one, maybe two prompts where you just need to select yes for. I'm going to fast forward through some of this. So I'm going to make a directory for some Python scripts, pip install some standard packages just to make sure that I have the packages there for when I test to make sure that my auto completion is working. Before I go into those files and test auto completion, I'm just going to show you that my nvim is not set up right now. And you see some of these errors here that I can't find the theme. This is all just because plug install needs to be run. So I'm going to go into my .files to the nvim configuration in .vim and run plug install. So that's just a colon plug install. And now you can see all the vim packages getting installed. Only takes a few seconds. Now I'm going to run nvim and you'll see the cow say this is from one of the plugins. And you can see the theme is different. That's because it's downloaded the one theme. And now all the text looks really nice. Good colors. Now I'm going to test my auto completion in a Python script. So I'm just going to make some file a.py and make sure that auto completion is working. And you can see it'll it'll all complete. So that was enough for the Python scripts. I'm going to go ahead and make a directory for R and do a R test. R is a little bit different. nvim R, you start with backslash rf and that will start nvim R. The first time you start it you'll get this error at the bottom. You just click yes through it and it's going to build the software you need for nvim R. So I made the mistake the first time through installing the tidyverse library and tidyverse has gotten really big since I feel like at least since the last time I installed it. So I would probably recommend installing the binary for tidyverse as opposed to installing it here. This was just taking too long so I decided to stop the install of tidyverse and install dplyr instead. So again to start nvim R it's slash rf. Now dplyr is installed so I'm going to go ahead and load it with library dplyr. And the way you send commands in nvim R is slash pd when you want to send a full paragraph. So I thought the diamonds dataset was in dplyr but I was wrong. Then I thought the bands dataset was in dplyr and I was wrong again. So I had to go on google and find some dplyr examples and pull some actual data that is from the dplyr library. So it turns out the star wars dataset is a dataset that dplyr provides. So I'm just going to copy this paste it make sure everything's working. So here I'm loading the data and I'm just running a filter to filter species that are equal to droid and that's it. So with this setup I've got everything I need to go ahead and start working on some data science projects. Thanks for watching.