Skip to content

Instantly share code, notes, and snippets.

View WillSams's full-sized avatar
🚀

Will Sams WillSams

🚀
View GitHub Profile
@WillSams
WillSams / loft_and_devspace.md
Last active March 15, 2023 13:24
Improving the Development Experience with Loft & DevSpace

Improving the Development Experience with Loft & DevSpace

Introduction

The success of any software project relies on providing developers with the tools and resources they need to work efficiently and effectively. This is particularly true when it comes to Kubernetes, which is a powerful platform for building and deploying applications. However, Kubernetes can be complex and challenging to work with, especially for developers who are new to the platform. As a result, providing a good developer experience is essential to ensure successful Kubernetes projects. In order to provide a good developer experience with Kubernetes, it's important to offer tools and resources that help developers work efficiently and effectively. By providing these tools and resources, developers can focus on building and deploying applications, rather than spending time on administrative tasks or troubleshooting issues. Organizations can also ensure that their developers are working efficiently and eff

@WillSams
WillSams / helm-charts-tutorial.md
Created March 1, 2023 22:52
The Case For Helm Charts Over DevSpace and/or Loft

The Case Over Helm Charts Over DevSpace/Loft

DevSpace and Loft are both tools designed to simplify the development and deployment of applications on Kubernetes. Both tools provide features such as local development environments, simplified deployment workflows, and streamlined debugging and logging. However, they have some differences in their approach and feature sets. DevSpace is more focused on providing an end-to-end development workflow, while Loft emphasizes multi-tenancy and collaboration features for teams.

Many of the features that DevSpace/Loft provides can be achieved by a more cost-effective approach: just by packaging and deploying Helm charts as normal.

Pre-requisites

@WillSams
WillSams / cplusplus_lambdas_kata.cpp
Last active January 16, 2023 12:36
GoF Command Pattern using C++ Lambdas
#include <iostream>
#include <stack>
#include <functional>
using Receiver = std::function<void(std::function<void()>)>;
class Command {
public:
virtual void setReceiver(Receiver receiver) = 0;
virtual void execute() = 0;
@WillSams
WillSams / dc_dev_setup.sh
Last active December 1, 2022 16:50
Dreamcast - sh4 toolchain and KOS
#!/bin/bash
DCDEV=/opt/toolchains/dc
sudo bash -c "apt-get install -y genisoimage squashfs-tools libpng-dev libjpeg-dev liblzo2-dev"
sudo bash -c "mkdir -p $DCDEV/tools/kos"
sudo bash -c "chown -R $(id -u):$(id -g) $DCDEV"
cd /tmp && git clone https://github.com/LuaDist/tolua.git && cd tolua
mkdir build && cd ./build
@WillSams
WillSams / sh2_dev_setup.sh
Last active December 3, 2022 17:15
Saturn/32x Tool chain
#!/bin/bash
# I'm just going by what I've done before and the configuration flags found here:
# https://github.com/kentosama/sh2-elf-gcc/
TEMPBUILDDIR=/tmp/saturn
GCCBUILDIR=$TEMPBUILDDIR/pkgs/gcc-build
BINUTILS_VERSION=2.39
GCC_VERSION=7.1.0
@WillSams
WillSams / psx_dev_setup.sh
Last active December 11, 2022 20:17
Playstation 1 Dev Setup
#!/bin/bash
TEMPBUILDDIR=/tmp/psxbuild
GCCBUILDIR=$TEMPBUILDDIR/pkgs/gcc-build
BINUTILS_VERSION=2.39
GCC_VERSION=7.1.0
PSXDEV=/opt/toolchains/psx
@WillSams
WillSams / fullstack_macbook_setup.sh
Last active November 15, 2022 19:32
Fullstack Macbook Setup
# March 11th, 2022 will be a day of infamy....
echo '# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi' >| ~/.bash_profile
echo 'set -o noclobber
PS1="\[\e]0;will@samswebs.com \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]willsams@samswebs.com\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\]"
' >> ~/.bashrc
@WillSams
WillSams / amd_on_linux.sh
Last active March 11, 2022 13:44
AMD Radeon RX-6600 XT Graphics on Linux Mint
# Radeon 6000 series Graphics on Linux Mint
## Note: ensure nomodeset is not in your Grub config. Check/modify via `sudo bash -c "xed admin:///etc/default/grub"`.
## Note2: May have issues with games starting or saving to the cloud, such as Death Stranding. If that's the case, delete the data install. For example, for Death Stranding, execute "rm -rf ~/.steam/debian-installation/steamapps/compatdata/1190460"
## Todo: Need to -> purge amdgpu* as pre-caution?
sudo bash -c "add-apt-repository --remove ppa:oibaf/graphics-drivers" # just in case this is here, get rid of it
sudo bash -c "add-apt-repository ppa:kisak/kisak-mesa"
sudo bash -c "apt update && apt upgrade"
@WillSams
WillSams / simple_etl.sh
Last active September 17, 2021 09:01
Simple ETL example In Python Using PETL
#!/bin/sh
# Simple ETL example
# Just extracting one table from a database and loading it into another
# Adapted from https://www.linkedin.com/pulse/easy-etl-python-beginners-oscar-valles
# Pre-req is Docker. If you are a savage and haven't used Docker yet, here are the install instructions on any disto with Ubuntu as the base:
# . /etc/os-release; RELEASE=$UBUNTU_CODENAME
@WillSams
WillSams / iam_user_codecommit_setup.md
Last active June 29, 2021 12:17
Setting Up IAM User for AWS CodeCommit

Setting up for AWS CodeCommit

Create a new IAM User for Developer to Use Striclty For Development

  1. Navigate to IAM within the AWS Console.
  2. Create a new user. For this example instructions, we'll set the username to be test-user-dev. For AWS access type, just check the Programmatic access checkbox.
  3. Create a new group to use for developers to have access to one or more repositories. For this example, we'll create a new group called dev-team. Attach the AWSCodeCommitPowerUser policy to this new group.
  4. Click through the other defaults to create the new user.

Generate a new key