Updated some older posts to improve readability

This commit is contained in:
Hamza Ahmed
2024-01-04 19:42:49 +00:00
parent 510de47e68
commit 8ddd7eb3b2
4 changed files with 120 additions and 156 deletions
@@ -1,68 +0,0 @@
---
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
@@ -0,0 +1,23 @@
---
title: Be More Productive by Being Bored
date: 2024-01-02T23:48:23Z
author: "ahmza"
draft: true
weight:
tags: ["Prodcutivity","Lifestyle","Minimalism"]
description: "In the modern age we are overwhelmed with stimuli. Learning to cut out the noise is the answer"
canonicalURL: "https://blog.ahmza.com/Page%28/posts/be-more-productive-by-being-bored.md%29"
cover:
image: "<image path/url>" # image path/url
alt: "<alt text>" # alt text
caption: "<text>" # display caption under cover
relative: false # when using page bundles set this to true
---
## **Introduction**
## **Conclusion**
+15 -26
View File
@@ -1,5 +1,4 @@
---
title: Welcome 👋
date: 2021-12-01T13:36:08Z
author: "ahmza"
@@ -16,40 +15,30 @@ canonicalURL: "https://blog.ahmza.com/Page%28/posts/Setup-an-NGINX-Reverse-Proxy
showtoc: false
searchHidden: true
---
### Hello World
### Hello world
The mandatory hello world when you start something new.
I'd like to say thank you for visiting my site and I hope that you
gain something valuable from it.
I'd like to say thank you for visiting this site.
### A bit about me
I'm currently based in the UK in the early stages of my career. And
like most people - possibly you - I am very interested in learning
new technologies and techniques.
I'm based in the UK, and like most people -- probably you -- I'm
interested in learning new technologies and techniques.
I get bored fairly easily and so I have to keep my self busy by
learning new stuff. The reason this site exists is because I wanted
to learn how web servers work and long the way I learned a lot of
other stuff too.
I get bored, so to keep myself busy I learn new stuff. This site exists because
I wanted to learn how web servers work and along the way I learned a lot about
neighboring moving parts.
I feel If you are interested in something then definitely go ahead
and try to learn it I'm sure you will learn a lot more than you
expect. Like a lot of people say
I'm enthusiastic about learning and love when people sharing my findings.
I am slowly building my network of people whom I can share my progress with and
collaborate.
> ***Its about the Journey as much as it is the destination***
I have always tinkered and naturally gained an interest for technology, I don't
limit myself to one part of tech I try to dabble in a bit of everything. one
hobby that has stuck with me is photography where you have to understand the
camera and its limits to adapt to different situations.
I have always tinkered and naturally gained an interest for
technology, I don't limit myself to one part of tech I try to dabble
a bit in everything. I love photography as you operate the camera and
in certain situations have to learn to develop film 😂 but I also get
to incorporate the creative side.
Check out my photography focused site here photos.ahmza.com
If you would like to learn more about me then feel free to contact me
on any of my social media.
You can see some of my photography on my Instagram.
+82 -62
View File
@@ -1,94 +1,114 @@
---
title: "You Need to Learn Linux \U0001F427"
title: You Need to Learn Linux 🐧
date: 2021-12-17T19:16:50Z
author: "ahmza"
draft: false
weight:
tags: ["Linux"]
description: "Here's why you should learn Linux"
canonicalURL: "https://blog.ahmza.com/Page%28/posts/you-need-to-learn-linux.md%29"
cover:
image: "/webp/posts/learn-linux/feature-anim.webp" # image path/url
alt: "learn-linux" # alt text
caption: "<text>" # display caption under cover
relative: false # when using page bundles set this to true
showtoc: true
searchHidden: false
---
## **Introduction**
You need to learn *Linux* because there is no reason not to. If you
are pursuing a career in IT, without a doubt you will come across
*Linux* and having even basic knowledge is very helpful. Many people
struggle with the OS simply because it's fundamentally different
compared to the other operating systems, but with a bit of time you
can master the basics and unlock it's true power.
**You need to learn *Linux*** !!
{{\< video label="true power" webm="/webm/mha-power.webm" >}}
Without a doubt you will come across *Linux* at some point in your IT career and
having baseline knowledge is helpful. *Linux* can seem daunting, it's
fundamentally different compared to windows. but with a bit of time you can
master the basics and unlock its true power.
{{< video label="true power" webm="/webm/mha-power.webm" >}}
## **But Why**
**Linux is everywhere**, from data centres to your smart toaster. So
if you are interesting in anything IT related then it's a great asset
to have.
- ***Linux* is everywhere**, from data centres to your smart fridge. A lot of
developers at Google use *Linux*. In fact access to the full codebase is given
on *Linux*.
Linux is great for power users because it allows you to customise all
aspects of your workflow to make it yours. The amount of
customisability is mind blowing and an endless rabbit hole which is
awesome as there is always something you could implement to improve
your workflow.
- **Power user?** The ability to personalise all aspects of the system **make it
your** system. This can result in you chasing the white rabbit, but the feeling
of booting into a system that's yours from start to finish is something else.
Another great aspect of the customisability is the crazy number of
options you can choose from to theme and tailor the Linux desktop
experience to your liking. For some great and inspiring examples
checkout [r/unixporn](https://www.reddit.com/r/unixporn/). This
is what drove me to switch to Linux and Arch specifically.
- **Make it pretty** - You can create something that's **functional and beautiful**
[r/unixporn](https://www.reddit.com/r/unixporn/)
Linux is very Light weight (Depending on Distribution) and much
faster than competing operating systems simply because more often
than not the distributions of Linux are not filled with bloatware.
The most extreme examples of this are distros like Arch or something
like LFS (Linux From Scratch) where you get a completely bare bones
installation of Linux and are required to install everything from
Network Managers, to the Desktop Environment, although this can seem
pointless at the start as you use more and more distros you will find
things you like and don't on each and something like Arch allows you
to choose every bit of software that is installed and come up with
something completely custom. Plus then you can say `I use Arch BTW`
**Lightweight and extensible** limiting the fluff. Making *Linux* by default a
lot faster than other operating systems.
## **Ok but what about ...**
- **Application Support** - Some popular applications you use may not be
available e.g Microsoft Office and the Adobe suite. All is not lost though,
there are alternatives if you can spend the time learning new software.
- **Drivers** - More often than not *Linux* just works. Edge cases could rise
that you might struggle with, don't give up Google it and dig in !!
## **How can you start**
> please note the steps below will require further reading to set up
### **Install Linux as your main OS**
This is the full send option.
**This is the full send option.** It may take you a while to acclimate but I feel
this is the fastest option to success as you force yourself into learning.
*Linux* Distributions I have enjoyed using:
A great Distribution that I recommend is [Manjaro with KDE Plasma](https://manjaro.org/downloads/official/kde/)
as it offers a heavily customisable desktop environment `KDE Plasma`
and Manjaro itself is a great as it's Arch based but does not require
you to start from step 0.
- [Ubuntu](https://ubuntu.com/download/desktop) - Beginner friendly
- [Manjaro](https://manjaro.org) - OS Basics set up, provides more flexibility
- [Arch Linux](https://wiki.archlinux.org/title/installation_guide) - Jump in the deep end, go from start to finish and learn all about *Linux's* moving parts
### ***MacOS*** **Terminal**
### ***MacOS* Terminal**
*MacOS* is actually *UNIX* based and so **if you have an *apple
Mac/MacBook* all you need is the Terminal** application. I used this on
my work machine and it's a great alternative to the full send option.
However I do not recommended this if you don't own one of these devices
already due to cost 💸
**If you do not own a *MacBook* skip this due to cost 💸**
*MacOS* is *UNIX* based, **if you own a *MacBook* download a Terminal Emulator**
-- [iterm2](https://iterm2.com/) or [kitty](https://sw.kovidgoyal.net/kitty/binary/)
both great options -- install [Homebrew](https://brew.sh/) and get going.
### ***Windows WSL***
The *Windows Subsystem for Linux* is another great option to get started
with *Linux*, it installs the *Linux Kernel* in windows and allows you
to play around in a real *Linux* environment.
*WSL* installs the *Linux Kernel* and allows you to use the *Linux* terminal
within *Windows*. This does have its limitations but a low bar to entry.
### **Virtual Machines**
### **Virtual machines**
If there is a specific Distribution of *Linux* you want to try then
this is a great option. However if you want to simply get to know
*Linux* then choose the *MacOS* terminal or *WSL* methods as they are
a lot lighter on system resources
Virtualising *Linux* is another great option. VMs are quick to spin up and remove
providing the ability to try out a handful of distributions with ease. This does
come with the condition of having a device that can handle virtual machines
meaning:
- A CPU capable of virtualization
- enough free RAM for the VMs
### **Buy a secondary device**
Have another cheap laptop or desktop to run *Linux*. This will cost you a bit
more than the options above. If you're considering a second device then look
at the Thinkpad lineup. These laptops are rugged and highly upgradeable.
Two Thinkpad Models I own:
- T440P
- T480 *(Non S model)*
## Conclusion
**Why are you still reading go and get stuck in with *Linux* 💨**
{{\< video label="do it" webm="/webm/do-it.webm" >}}
{{< video label="do it" webm="/webm/do-it.webm" >}}
As with anything learning *Linux* is a journey and will take time.
Enjoy the experience of learning it and uncovering it's hidden powers
because it is well worth it. I have linked some great resources for
other great Linux related content that helped me.
**Learning *Linux* is a journey that will take time. Enjoy the experience of
learning and uncovering it's hidden powers.**
[DT youtube Channel](https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg)
[r/unixporn](https://www.reddit.com/r/unixporn/)
[Arch Wiki](https://wiki.archlinux.org/) (Although specific to Arch
this is a great knowledge base, also useful for Manjaro as it's Arch based)
I have linked some great resources for other great *Linux* related content that
helped me:
- [DT YouTube Channel](https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg) -
Covers *Linux* related topics
- [r/unixporn](https://www.reddit.com/r/unixporn/) - Get inspired and make *Linux* pretty
- [Arch Wiki](https://wiki.archlinux.org/) - Although specific to Arch, it's a great knowledge base