🎙 Develpreneur Podcast Episode

Audio + transcript

Building a Portable Development Environment That is OS-agnostic

Rob and Michael discuss the importance of having a portable development environment that is OS-agnostic. They talk about the benefits of using cloud storage, version control, virtual machines, and containers to create a development environment that can be accessed from anywhere.

2024-06-01 •Season 21 • Episode 27 •Portable development environment •Podcast

Summary

Rob and Michael discuss the importance of having a portable development environment that is OS-agnostic. They talk about the benefits of using cloud storage, version control, virtual machines, and containers to create a development environment that can be accessed from anywhere.

Detailed Notes

Developers often struggle with setting up their development environment on different machines or operating systems. To overcome this challenge, they can use cloud storage to sync their development environment across devices. Version control systems like Git can also help them keep track of changes to their code. Virtual machines and containers can provide a flexible and isolated environment for development, allowing developers to work on multiple projects simultaneously. Furthermore, using cloud-based IDEs and development tools can enable developers to work from anywhere, without worrying about the specifics of the operating system or hardware.

Highlights

  • Operating system agnostic environments
  • Portable apps
  • Cloud storage
  • Version control
  • Virtual machines
  • Containers
  • Docker
  • Git

Key Takeaways

  • Cloud storage can be used to sync development environments across devices.
  • Version control systems like Git can help track changes to code.
  • Virtual machines and containers can provide a flexible and isolated development environment.
  • Cloud-based IDEs and development tools can enable remote work.

Practical Lessons

  • Use cloud storage to sync development environments across devices.
  • Implement version control systems like Git to track changes to code.
  • Set up virtual machines and containers for a flexible and isolated development environment.
  • Use cloud-based IDEs and development tools for remote work.

Strong Lines

  • A portable development environment is essential for modern developers.
  • Cloud storage can revolutionize the way we work.
  • Version control systems like Git are a game-changer for code management.
  • Virtual machines and containers can provide unparalleled flexibility.

Blog Post Angles

  • The importance of a portable development environment
  • How cloud storage can improve productivity
  • The benefits of using version control systems like Git
  • The advantages of virtual machines and containers
  • The future of remote work with cloud-based IDEs and development tools

Keywords

  • Portable development environment
  • Cloud storage
  • Version control
  • Virtual machines
  • Containers
  • Docker
  • Git
Transcript Text
Welcome to Building Better Developers, the Develop-a-More Podcast, where we work on getting better step-by-step professionally and personally. Let's get started. Hello and welcome back. We are into yet another episode of Building Better Developers, Develop-a-More Podcast. This episode, look, I'm going to right away talk to you about this one. In this episode, we're going to talk about what could I call them? Operating system agnostic environments. These are some of the things that actually goes back, I actually talked about them in the Develop-a-More book. We talked a little bit about having, we talked about like having personal repositories and some things like that. We talked about being able to have like a mobile development environment for yourself. And probably today it is more important than it has been in the past. But the good news is there are way more tools available to help you to do this than there ever were in the past. And so that's where our focus is going to be. First, before we get too far into it, my name is Rob Brodhead. I'm one of the founders of Develop-a-More, Building Better Developers, also founder of RV Consulting. On the other side is my, I'm not going to tell you name. I'm going to let him introduce himself, name included this time around. Hey everyone, my name is Michael Milosz. I'm also a co-founder of Develop-a-More and founder of Envision QA, where we help health care and small businesses build applications and test software. Now let's just dive right into it. This is, this is one of those things that probably is not as much of an issue now when you're remote, but when you're in an office, there are things that you run into. Now some of them you don't, technically you don't want to, we'll call it work around them because it's going to get you fired. Or it's illegal or something like that, particularly if you're like DOD or something like that where, yeah, you need to be like, you know, cross all your Ts and dot all your Is. However, there are, there's a lot of value in being able to have a mobile development environment for yourself where you can at any given time, pretty much just sit down, grab a machine or something and dive in. One of the worst cases that I've known of somebody that's run into this and really found that their backup system, we'll call it, was invaluable is they were traveling and their laptop died. It got like crushed in the flight. I can't remember exactly what it was, but it was dead. They needed to work. The good news was is they had, they called portable apps. It was a Windows development environment they had. They had a hard drive backup. So they were able to basically take that hard drive, plug it into a kiosk somewhere to, you know, like a business center PC, and they were able to run all their stuff. They didn't have to do a bunch of installations or anything. They had everything already set up. So it took them almost no time to convert over. So that if you're, now it's a, portable apps originally was Windows only. There is a Mac version out there. I don't think it's being maintained because you really don't need that for Mac. I mean, it's these days, it's like, usually if you jump on any Mac, it's going to have essentially the same stuff. Just the need for it has sort of, sort of disappeared. However, and Windows is sort of the same if you think of the cloud, but if you need something installed on your machine, then you may want to go that route. You also may want to have just, have like, it's cheap now to have a really big honking external USB drive that's pretty good speed. And you can put, if you want, you can, for a while I had installs for my entire, I had it for my ID. I had it, I was doing Java Tomcat. So I had the version of Java that I was on. I had the, I had an executable. It's on Windows, yes. And sorry, just cross myself because I used to have to do that. I had the Java environment. I had, at the time I was using a thing called My Eclipse, which was just like Eclipse with some extra stuff, but I had that executable. I had the Tomcat stuff because I was pushing everything. I was using Tomcat and I had MySQL. So I had my, it would be my, you know, maybe my Jam stack instead of, you know, Linux and everything actually would have been a WAMP, I guess, but it was without PHP. It was with the J and so forget the letters. It was Java database, web and an IDE and a Partridge and a Paratree. But I also had like Ant. I use Ant at the time. I use it, I still do actually use it heavily for like, you know, moving stuff around, build scripting and things like that. So that all made for a pretty easy way for me if I needed to, to jump on a machine, fire everything up and just go, particularly if I'm on a, like I'm on traveling or something like that or something happens to my laptop. Luckily it didn't. But I also, I always make sure I had, which was a bonus is I had my local development environment on my machine, but then I always copied on a regular basis back to my hard drive. Now flash forward a few years and then created this thing called Dropbox or you might also use Box or you may use the, the Windows uses Whatchamadigger. I forget what they call it, but Windows has got their own file stuff, Google Drive. You've got all of these different things. So you've got all of these opportunities to put, and I highly recommend that you do that is have your development environment on your local machine set up so that whatever your cloud provider thing is that it's syncing it up there. So if it's Google, it should sync up to your Google Drive. If it's Dropbox, sync up to Dropbox. If it's, you name it, sync it up to their use that because if something happens and you can, bam, you can pull that stuff right back down. And I have had it happen, not even trying. I've had it. It's just like sitting there working one day and the hard drive on my development machine dies. Boom. I, you know, I'd swap it out and I'm ready to go again, or I can just move to another machine and then everything synced up. Now of course there's this other thing that I haven't even mentioned right now is version control. If you're committing your code on a regular basis, and I mean regular like multiple times a day, not like once a year, then you'll have all of that and you can just pull the latest version and you're off and running. So that should help you as well. So there's a lot of different ways you can do it. I'm talking about low tech solutions so far, but I'm going to flip it over to Michael and let him talk about some of the other, I guess the higher tech things will call it that things like virtual machines and containers and stuff like that, because that also, and we'll use the D word everybody or it's and it's variants of Docker and those other things that are now becoming very commonplace I find in the development world. And we'll let you sort of take over there and talk about your experience with those or how you can see those being a good solution. Yeah, thanks for. So even before Docker and like Kubernetes and all these containerizations that have been out there, probably about a decade or so ago, it was really big was VMware and virtual machines and being able to run Citrix within an environment. So basically you create a operating system with an environment, you configure it, and then you essentially clone it for different users. And that essentially started this whole idea like the portable apps, things like that. People are like, well, why can't we do that with our applications? Why can't we do that with our desktops? So today we now have Google Drive, we have Docker, we have virtual storage locations. So now with containers, we can now even virtualize our environments more. So what you can do now is you can actually create a folder structure, store all of your application files, your development environments, everything in that nature, store it in one place. And then you could essentially create a container and spin up the container with your environment already set up. So you could actually back up your virtual environments. Like if you're running Linux, you could create a Linux container with all of your virtual, your Eclipse, your IDEs, whatever you need, your JVMs, whatever you need to do your work. You basically build this container, you set it all up, and then you back up your container. You store that in a virtual environment on Dropbox, Google Drive, whatever. But you have that file structure that you essentially attach as a virtual drive to these containers. And now you have the ability to just plug and play containers and just attach your file system. So now if you do what Rob was suggesting and you create version controls of your file system, you can now keep track of all of your files. You have virtual backups, you can use Git, you can use Subvergent, and you could set essentially do a time machine, what Mac has for backups, of your development environment or basically your desktop. I saw you come off mute there, Rob. Did you have a... I was just going to say, I just had to like, no, you cannot use Subversion. You can use Git, but you can use RCS. You can use anything but Subversion. Sorry, I just had to throw that in. You go right in. Well, I was trying to avoid CVR. Was it CSV, CVS? I always get that flipped. I don't know why they named it so close, but... I think that was probably before CSVs, but yes, CVS, RCS, which to me was actually less painful than Subversion. Although I know people love Subversion and all that. I was rather like back to like, was it Source? Safe? I think was the original Microsoft one before it became, eventually became the Teams version control team. I forget what it's called now because they've changed it a couple of names, but I digress. I'm sorry. I was just like, I almost had to say something and I was like, all right, I'll come off mute just in case I need to like, at some point, if you say something like that again, carry on. No, but it's probably saying that, you know, really though today Git is primarily what you should be using for version control or something newer than that. Pretty much Git is it right now for most developers. But where I was going with this is not only Linux, but you can set up your own Windows machines for those of you listening to the podcast. If you jump on and watch the pre video for this, we actually talked about some additional ways you could actually spin up like Windows machines virtually and install software and test things on that. Not only for development and setting up your environments, but this is also a great way to test different versions of software. You can also test your environments in different OS levels, so you could spin up different containers for say Windows 10, Windows 11, Windows 8. It just depends what you need. But the whole idea of this concept that we're talking about is setting yourself up to where you're essentially operating system neutral or essentially environment neutral. And where this came from is I have dealt with so many companies over the years in so many different jobs where there's so many security policies in place that are there to protect the company, sure, but they can also impact us as developers and our ability to work. For example, you could have a policy that comes down that now blocks all your Maven dependencies. You now can't pull down your Maven versions to actually install and run your software. Ways to get around that, well, you can go out and actually download all the jars, put them in a central repository, and then pull them in that way. There's ways around this. But if you think essentially neutral, set yourself up to where these policies, these things won't impact you. And that way, if you do it right, no matter where you go, what system you're working on, you can pretty much sit down on any machine, plug in your or connect to your virtual drive, plug in your thumb drive, whatever. And essentially you're up and running no matter where you're at. And that's it's one of these, especially if you're any sort of a we'll call it that, you know, the road warrior that they used to talk about. It is actually very valuable to have that. And it is easier now to carry around a, you know, like a little tablet or you've got like the Microsoft Surface or some of those kinds of things that are pretty small. You can have some pretty, a fairly small, fairly lightweight laptop or the Android Chromebooks. The thing you want to look at with those though, because you could have a really awesome if you're traveling a lot, you get a dirt cheap Chromebook for, I don't know, 100, 150 bucks. I think they're pretty cheap for that. So it's going to be less than a desktop. The key there is just to have enough of your stuff offloaded from the computer so that you're not having to like build this entire, you don't have to have this big honking thing. You have this really cheap little thing, throw a couple of files on there, make sure you can do, you know, editing and building. And then a lot of it, particularly if you've got somewhere out on a cloud where you've got a container or something like that, then you can always go hit that. Tune that into it, SSH into it, whatever you need to do. And you can work there. You can also use a lot of the tools that are out there. We've talked about before somewhere a long way, a while back now, talked about cloud nine and some of those kinds of things where they are cloud first tools. Feel free to, I would say regularly use your favorite search engine to look for cloud based IDEs or cloud based development tools. Things along those lines. Do those searches because there's a lot of stuff that pops out. And there's a lot of projects out there. There's one, I came across it was a visual studio code that was built for like a lightweight kind of thing so that you could put it on just about any. And it is those kinds of things are cross platform enough that you can run them pretty much anywhere. I think you run some of this stuff outside on your phone. Worst case, learn VI or EMAX or something like that. And you can literally. I've got a little app that allows me to remote in. I don't know if it's the same one Michael uses. It is, what is it called? Tellius I think is what it's called. I'm going to look at, I'm going to look at my phone right now. Terminus. T-E-R-M-I-U-S allows you to do, you can do regular telnet. You can do SSH into a machine. It gives you a nice little, you know, your standard console can do. It's got your basic escape keys and stuff like that as well. So you can work around in a remote environment if you need to. If you need something more gooey related, tablets work really well. You do have to watch out because if you get onto some of the, a lot of them now, especially the Apple based ones, there's a double click has a different, it gets overwritten. So if you're flicking on a form or need to double click a form or something like that, it does mess with your, your navigation. But that being said, swinging back around to the original point before I pass it on to this guy that just did a little finger in the air. You want to watch out if it's like, if it's a security related thing, then you need to make sure that you, you conform. But there are going to be things like Michael brought up, perfect examples of where you can't work because the security gets in the way. So make sure that you're thinking you can look for ways to do it that would be secure, like copying files local or talk to your network administrator, security people to say, Hey, we need access to this. You in the back, you raised your hand. So one other thing we were mentioned. So we've talked about open apps or that app tool that we, that you can install apps on thumb drives. The other thing to think about too, when you're dealing with applications for virtual work and things of that nature, look at the binary versions of those applications. And by binary, I mean, like for instance, if you have like Eclipse, Eclipse can run on a Java runtime, open, was it, shoot, not Libre, open office will also run on the Java runtime. You have WinZip, which will run on just about everything or seven, seven plus, which I think comes with both installers if you download it. So these are things you can download, put on the thumb drive and literally plug in. And as long as you have like Java or you have the compiler or the runtime, you can run these applications literally on any machine in any environment. If you have access to the thumb drive, otherwise you would need to download them from a virtual storage like Docker or Google Drive. What you can do, I mean, it's, like I said, it's become more common to have cloud access of varying sorts. I'm sorry, I'm just choking. It's causing me so emotional right now. There's cloud access to so many of these things that you can, for example, if you throw it out in Dropbox, then you might be able to just pull it down. If you have a secure server, may have even a personal server that you can lock down to the point where it's like the only place you can, where you can get to it is through a VPN or through, you know, from specific IPs. There's a lot you can do to make your stuff available. We'll call it your stuff, but also make it only available to yourself or in a way that only, you know, that you can turn on and off access to it so that it does prevent, you know, it like covers the security types of issues while also making the stuff available to you, which is really the key here is you want to be able to be productive and not spend days going through and configuring stuff and environments and stuff, which is sort of my last thought on this one is also where once you set up your IDE in your environment, whatever you can take a snapshot or something, a lot of places it's like they'll allow you to export your configuration, all your settings and stuff like that. Particularly if you're in there and you've got all these little special fonts you do and color schemes and all these things that you can do, make sure that you export those. And this includes making sure that you get in a habit of consistent directories and folders and file names and locations so that when you jump on another machine, that they're ideally, they're all relative to some starting point that you can easily set. If not, do them as standard as possible so that you can get access to it so that you can easily just jump in and go instead of having to remap all of your settings the next time you jump on a machine. Parting thoughts from you, Mike? Yeah, I would like to kind of add to that. So we've talked about, you know, portable apps, things of that nature and taking snapshots of your development environment. The other thing is maybe download all of the utilities and applications that you use and store them in a offline location, either Gmail, thumb drives, Google Drive, Dropbox, whatever. Because if you put them in a place that you secure, in most situations, you can get access to that wherever you're at, whereas you might be blocked from some of those sites to actually get the tools you need to do your job. You may also, and we'll wrap this one up on that, but you may also lose access to those. There have been, I used to periodically, I would, just back in the day, I would actually burn stuff to CD like every six months that was my utility stuff because it was easier to get it off of that than it was off of a thumb. And actually it was more accessible to have a CD than a DVD than there was a thumb drive. Nowadays, you can probably put it out and you have network access, but you may want to have it on a thumb drive. Make sure it's your thumb drive. However, you have it set up that you have the dongles or whatever you need in case you have a USB thumb drive and you end up on a machine that only has USB three ports or USB-C, I guess it is now. There's things like that you want to run it, that you want to make sure you don't run into compatibility issues. But those things are great for you because you may find that your favorite utility no longer, you know, is no longer supported or whatever happens. You also need to make sure you have the licensing stuff if you, you know, for whatever you've purchased so that you've got the right keys and all that kind of stuff that you need to. That being said, you don't need any special keys, licenses or anything else to listen to us or to give us feedback. So as always feel free to shoot us an email at info at developineur.com. Check us out on our at developineur Twitter, well now X stuff, Facebook, we've got a page, LinkedIn, we've got a page. Go to developineur.com, D-E-V-E-L-P-R-E-N-E-U-R.com and leave us notes there, post, we've got contact us forms and also tons and tons of content for you to pre-use. You can also check us out on YouTube, lots of stuff there as well, including you can see this instead of just listen to it. So, and you get bonus material that always occurs. So we'll wrap this one up. We're not done yet. We're going to continue. We're actually getting close. We're trying to figure out how we want this to look as far as wrapping up this season and what the next season will be. But we're getting into that. We're getting about to that point where we'll probably call it, you know, shut the books on season 21. It'll be on season 22. Amazingly enough, once again, way beyond, we've got more seasons than some people have podcast episodes. That being said, I hope that you have a great season and lots of cool podcast episodes in your future. Go out there and have yourself a great day, a great week, and we will talk to you next time. Thank you for listening to Building Better Developers, the Develop-a-Noor Podcast. You can subscribe on Apple Podcasts, Stitcher, Amazon, anywhere that you can find podcasts. We are there. And remember, just a little bit of effort every day ends up adding into great momentum and great success.