Files
blog-ahmza-com/content/posts/Away-with-local-dev-environments.md
T

68 lines
3.1 KiB
Markdown
Raw Normal View History

2023-11-24 03:18:34 +00:00
---
title: Away with local dev environments
date: 2023-11-24
author: ahmza
draft: true
weight:
tags:
description:
canonicalURL: https://blog.ahmza.com/Page%28/posts/Away-with-local-dev-environments%29
cover:
image: /webp/posts/away-with-local-dev-environments/feature.webp
alt: <alt text>
caption: <text>
relative: false
---
## **Introduction**
Over the past few years I have been constantly iterating on my local development environment across multiple devices. This has become a headache having to manage all of these changes across all of my devices.
## How it used to be
I work across 4 devices:
- Work MacBook Pro
- Desktop PC
- Personal Linux Laptop
- IPad
Each of these systems involve their own initial setup as well as installing my [dotfiles](https://gitlab.com/ahmza/dot). In an attempt to make this process easier I created a [script](https://gitlab.com/ahmza/dotinstall) that would handle the dotfiles. The problem this introduced however was one more THING to maintain. I continued like this for a while until I picked up an IPad.
## Eureka
When I picked up the IPad its purpose was simple:
- Streaming media
- Creative Endeavours
- Basic Note taking
As I used the IPad more I became invested in the idea of it being able to replace a laptop. Its light and fits into my sling bag when I ride. So if it can do the tasks my laptops can then it makes the perfect travel device.
Off the bat Emails and Slack are easy enough. Video meetings if required are easier than the laptop. It is able to hammer through image processing for my street photography and I am able to edit video off the GoPro thanks to the M2 chip and thunderbolt.
The one fatal flaw was struggling to find a good shell interface. so the search began. I finally came across [ISH](https://ish.app/) and fell in love. However of course it has its limitations and I didn't want to install a bunch of extras on the IPad. So I needed a remote device I could SSH to.
My initial thinking was one of the main devices listed above however that meant making sure they are up and available all the time which is not always the case. I then considered the [RPI Cluster](https://blog.ahmza.com/posts/building-a-docker-swarm-with-pis/) however I did not want to interfere and again install unnecessary packages there. Then it clicked ... THE CLOUD.
## WIN !!
I spun up an EC2 instance in aws. Which meets all my requirements:
- Available whenever I need it
- Powerful enough
- Native Linux
Now all I need to do is SSH to that machine and boom I have everything I need to work on my projects.
No more spending hours setting up a new device with all the dependencies and dotfiles. All I need to do is add the SSH key and go from there.
Ok maybe change some terminal colours.
## **Conclusion**
Working like this also means I can leave stuff running in the "background". So I need to learn to use [tmux](https://github.com/tmux/tmux/wiki)
- https://github.com/tmux/tmux/wiki
- https://www.youtube.com/watch?v=DzNmUNvnB04
- https://www.youtube.com/watch?v=-B5VDp50daI
- https://www.youtube.com/watch?v=H70lULWJeig
- https://www.youtube.com/watch?v=qyV_hOtMdwg
- https://www.youtube.com/watch?v=ceRYL271cao