Skip to content

Instantly share code, notes, and snippets.

View iTrooz's full-sized avatar
💭
CODE

iTrooz

💭
CODE
View GitHub Profile
@iTrooz
iTrooz / main.py
Created July 30, 2024 11:07
pacman package upgrade size verbose
#!/usr/bin/env python
"""
This script shows the individual size changes of upgradable packages in Arch Linux.
You can use it to understand, e.g. why your upgrade size is negative.
"""
import typing
import subprocess
import sys
@iTrooz
iTrooz / FILE.md
Last active November 13, 2024 16:07
Map of Sodium and Lithium forks

This document is about the Minecraft mods Sodium and Lithium, and their forks. These are mods to help performance.

The Sodium stuff

What is it

Sodium optimizes the client rendering pipeline. It does nothing for the server.

Table

@iTrooz
iTrooz / stdout_breakpoint.gdb
Last active July 24, 2024 22:39
Make a breakpoint when a certain text is written to stdout
# Make a breakpoint when a certain text is written to stdout
# Note: only work with C/C++ binaries
set width 0
set height 0
set verbose off
# Modify this to search for a different string
# Case sensitive
set $STR_SEARCH = "hello world"
@iTrooz
iTrooz / main.py
Created July 22, 2024 04:12
Reads stdin from the user console and stops input with Ctrl+C
"""
Reads stdin from the user console and stops input with Ctrl+C. Also support piped stdin.
Works only on Linux (and maybe MacOS ?)
"""
import sys
import os
import time
import fcntl
def read_user_stdin() -> bytes:
@iTrooz
iTrooz / main.c
Last active July 8, 2024 09:12
Manual implemenation of a split() function in C
#include<stdlib.h>
#include<stdio.h>
#define bool short
#define false 0
#define true 1
bool my_contains(char *charset, char c) {
for (int i = 0; charset[i] != '\0'; i++) {
if (charset[i] == c) {
@iTrooz
iTrooz / live_processes.py
Last active July 5, 2024 14:15
Show processes lifecycle in real time
#!/usr/bin/env python3
# Simple monitoring script to print processes being created/stopped in real-time
import time
from typing import Optional
import psutil
import shutil
import sys
import argparse
@iTrooz
iTrooz / live_processes.sh
Created July 5, 2024 14:02
OLD BUGGY IMPLEMENTATION - Show processes lifecycle in real time
#!/bin/sh
get_running_processes() {
processes=$(ps -eo ppid,pid,cmd)
echo "$processes" |
grep -v "\[.*\]" | # Filter out kernel processes
awk -v pid="$$" '$1 != pid' | # Remove children of current script
awk '{print $1 " " $2 " " $3}' | # Remove ppid + command params
sort
}
@iTrooz
iTrooz / tiktoken_count
Created June 25, 2024 11:40
CLI to count number of tokens in files using tiktoken
#!/usr/bin/env python3
import tiktoken
import sys
if len(sys.argv) == 1:
print(f"Syntax: {sys.argv[0]} <file>")
exit(1)
enc = tiktoken.get_encoding("cl100k_base")
@iTrooz
iTrooz / main.py
Last active June 21, 2024 13:29
Run python shell command, return merged stdout and stderr, and exit code
import subprocess
from typing import Tuple
def run_cmd(cmd: str) -> Tuple[int, str]:
p = subprocess.Popen(cmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output, _ = p.communicate()
return p.returncode, output.decode("utf-8")
print(run_cmd("ls /"))
print(run_cmd("ls /does-not-exist"))
@iTrooz
iTrooz / java-bytecode.py
Last active June 18, 2024 12:10
Simple script to map java versions and java bytecode versions
#!/usr/bin/env python3
RESET='\033[0m'
COLOR='\033[0;36m' # Cyan
# List from https://javaalmanac.io/bytecode/versions/
JAVA_TO_BYTECODE = {
1.0: 45.0,
1.1: 45.3,
1.2: 46.0,