Skip to content

Instantly share code, notes, and snippets.

View crazyoptimist's full-sized avatar
🐌
crawling

crazyoptimist crazyoptimist

🐌
crawling
View GitHub Profile
@crazyoptimist
crazyoptimist / pyenv-install.sh
Last active December 6, 2024 13:54
Install pyenv on Ubuntu/Debian
#!/bin/bash
# Install dependencies for pyenv(because pyenv compiles python from the source)
## Debian / Ubuntu
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl
## Fedora
# sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
@crazyoptimist
crazyoptimist / bat-install.sh
Created October 6, 2022 17:24
bat is written in rust, is an excellent alternative to cat
#!/bin/bash
curl -s https://api.github.com/repos/sharkdp/bat/releases/latest \
| grep -v ".sha256" \
| grep browser_download_url
curl -SL https://github.com/sharkdp/bat/releases/download/v0.22.1/bat_0.22.1_amd64.deb -o bat.deb
sudo dpkg -i bat.deb
rm bat.deb
@crazyoptimist
crazyoptimist / pointers.go
Created November 2, 2022 21:18
Pointer in Go (Checkout this gist whenever you forget the concept of pointers in Go)
package main
import "fmt"
func main() {
i, j := 42, 2701
fmt.Println(i, j)
fmt.Println(&i, &j)
// you can read "&i" as "address of i"
@crazyoptimist
crazyoptimist / rbenv-install.sh
Last active January 4, 2023 18:11
Install rbenv on Ubuntu/Debian
# Install build dependencies for ruby(https://github.com/rbenv/ruby-build/wiki#suggested-build-environment)
sudo apt-get install -y autoconf bison patch build-essential rustc libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev uuid-dev
# Install rbenv using git
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bashrc
source ~/.bashrc
# Install ruby-build plugin for rbenv
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
# List available ruby versions
rbenv install --list
@crazyoptimist
crazyoptimist / verify-cognito-jwt.ts
Last active August 11, 2023 16:43
Verify Cognito JWT tokens
import {
CognitoJwtVerifier,
CognitoJwtVerifierSingleUserPool,
} from 'aws-jwt-verify/cognito-verifier';
const verifier: CognitoJwtVerifierSingleUserPool<{
userPoolId: string;
tokenUse: 'access' | 'id';
clientId: string;
}> = CognitoJwtVerifier.create({
@crazyoptimist
crazyoptimist / monitor-memory-usage.ts
Created June 6, 2023 07:43
Monitor Memory Usage in NodeJS
function formatMemoryUsage(data: number) {
return `${Math.round((data / 1024 / 1024) * 100) / 100} MB`;
}
function getCurrentMemoryUsage(): Object {
const memoryData = process.memoryUsage();
return {
rss: `${formatMemoryUsage(memoryData.rss)} -> Resident Set Size - total memory allocated for the process execution`,
heapTotal: `${formatMemoryUsage(memoryData.heapTotal)} -> total size of the allocated heap`,
@crazyoptimist
crazyoptimist / build_spa.yml
Created June 7, 2023 10:52
Build SPA in GHA
name: Build SPA
on:
pull_request:
types: [opened, edited, synchronize, reopened, closed]
branches:
- main
jobs:
build:
@crazyoptimist
crazyoptimist / deploy_spa.yml
Last active May 1, 2024 09:38
Deploy SPA into AWS Cloudfront & S3
name: Deploy SPA
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
@crazyoptimist
crazyoptimist / compose.yaml
Last active April 10, 2024 00:56
Kafka Cluster Setup with Provectus KafkaUI for Local Development Environment
name: kafka_cluster
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.5.3
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
@crazyoptimist
crazyoptimist / workerpool.go
Last active February 3, 2024 04:05
Worker Pool Concurrency Pattern in Go
package main
import (
"fmt"
"sync"
)
const (
NUM_WORKERS = 10
NUM_JOBS = 10000