Skip to content

Instantly share code, notes, and snippets.

View gubatron's full-sized avatar

Angel Leon gubatron

View GitHub Profile
gubatron /
Last active June 30, 2023 20:08
Batch delete 30 Github Workflow Run Logs using the github command line tool
# This script uses the github command line tool
# to delete the last 30 logs from your repository's workflow runs
# Requirements
# gh - github command line (brew install gh)
# you will need a GH_TOKEN, create it here:
# once you've created the personal access token with permission to manage your workflows
gubatron /
Last active November 28, 2022 17:56
How to build your Docker image using the same Dockerfile regardless of the host architecture

How to build your Docker image using the same Dockerfile regardless of the host architecture


If you are now using docker on a Mac M1 (arm64 platform), you don't want to use amd64 as the architecture for your Linux Images.

You could have 2 lines on your Dockerfile and comment each one depending on where you're building the image


# Building on Apple Silicon host
gubatron /
Created September 12, 2022 23:03
script to build php8.1.10 from source so that we can link to openssl1.1.1 (new ubuntu 22.04 makes use of openssl 3 and it breaks a lot of stuff that depended on weaker ciphers)
sudo apt install build-essential autoconf libtool bison re2c pkg-config libwebp-dev libxml2-dev libsqlite3-dev libbz2-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype-dev libonig-dev libedit-dev libreadline-dev libzip-dev
cd php-8.1.10
#builds configure file if there isn't one
#./configure --help for full list of options
./configure --with-curl \
--disable-cgi \
gubatron /
Last active April 19, 2022 22:04 - Decent brute force 8 queens state finder (takes about 235k iterations)
from random import shuffle
This module tries to solve the 8 queens problem.
identity_rows = [0, 1, 2, 3, 4, 5, 6, 7]
def queens_attack_each_other(queen_a, queen_b):
'''True if 2 queens face each other'''
return queen_a[0] == queen_b[0] or queen_a[1] == queen_b[1] or abs(queen_a[0] - queen_b[0]) == abs(queen_a[1] - queen_b[1])
gubatron / complex.js
Created April 14, 2022 17:46
Class to represent a Complex number and a few operations that can be done with them
View complex.js
class Complex {
constructor(real, imag) {
this.real = real
this.imag = imag
length() {
return Math.sqrt(this.real * this.real + this.imag * this.imag)
gubatron /
Created March 23, 2022 20:50
Crates a Merkle Tree using the given data, per light Clients for Lazy Blockchains paper by Ertem Nusret Tas et. al
import hashlib
import binascii
def H(data):
if type(data) == str:
data = str.encode(data)
if type(data) == int:
data = data.to_bytes(4, 'big')
return hashlib.sha256(data).digest()
gubatron /
Last active March 6, 2022 16:24
remove repeated entries on a sqlite3 table (there's no delete limit 1 in sqlite3, you gotta do a select within the delete statement)
import sqlite3
# python script to cleanup double entries on the marketsnapshots table.
#CREATE TABLE marketsnapshots (
# symbol TEXT,
# ...
# lastupdatetime INTEGER);
def symbolList(cur):
gubatron / gist:c8ecee2d54033a0b131812324e5a7a33
Created January 6, 2022 15:50
Fixing "configure: error: ACC conformance test failed. Stop." when building ucl on macos with M1 (arm64) CPU
View gist:c8ecee2d54033a0b131812324e5a7a33
git clone
cd ucl
./configure CFLAGS="$CFLAGS -Wno-error=implicit-function-declaration"
make -j 10
sudo make install
gubatron / int_as_array.cpp
Last active November 12, 2021 17:10
Access and manipulate an int via char array using an union. C Plus plus
View int_as_array.cpp
#include <iostream>
int main() {
union {
unsigned int a; // 32 bit number, 4 bytes
unsigned char aa[4]; // access a's bytes as an array
a = 0xaabbccdd;
printf("a: 0x%x\n", a); // a: 0xaabbccdd
gubatron /
Created September 12, 2021 02:08
How to isolate crashes with `ndk-stack` from `adb logcat` output

adb logcat | ndk-stack -sym <path to folder with .so files>

Example: adb logcat | ndk-stack -sym ~/workspace.frostwire/frostwire-jlibtorrent/swig/bin/release/android/armeabi-v7a