Skip to content

Instantly share code, notes, and snippets.

View flaviut's full-sized avatar

Flaviu Tamas flaviut

View GitHub Profile
@flaviut
flaviut / 10-server-motd
Last active April 29, 2024 21:19
motd based on armbian's 10-armbian-header and 30-armbian-sysinfo, providing a helpful diagnostic for the server.
#!/bin/bash
#
# Copyright (c) Authors: https://www.armbian.com/authors
#
# This file is licensed under the terms of the GNU General Public
# License version 2. This program is licensed "as is" without any
# warranty of any kind, whether express or implied.
# DO NOT EDIT THIS FILE but add config options to /etc/default/armbian-motd
# any changes will be lost on board support package update
@flaviut
flaviut / esp32decode.md
Last active April 27, 2024 22:06
This tool decodes an ESP32 stack trace into a human-readable stack trace. The original stack trace generally gets printed to the serial console when the esp32 crashes.

This tool decodes an ESP32 stack trace into a human-readable stack trace. The original stack trace generally gets printed to the serial console when the esp32 crashes.

Usage example:

$ python decode.py -a ~/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-addr2line ./.pio/build/esp32-3248S035C/firmware.elf
Backtrace: 0x400eee2e:0x3ffb1eb0 0x400ed765:0x3ffb1ed0 0x400f1317:0x3ffb1ef0 0x400f1576:0x3ffb1f60 0x400ebc80:0x3ffb1f80 0x400ebeed:0x3ffb1fa0 0x400d74cb:0x3ffb1fc0 0x400dcd46:0x3ffb1fe0 0x400dcda2:0x3ffb2000 0x400ebd81:0x3ffb2040 0x400dcd46:0x3ffb2060 0x400dcda2:0x3ffb2080 0x400f1954:0x3ffb20c0 0x4019f9ce:0x3ffb20f0 0x400dcbf7:0x3ffb2110 0x400dcda2:0x3ffb2130 0x400dceda:0x3ffb2170 0x400dd56c:0x3ffb21a0 0x400eea88:0x3ffb21f0 0x400d5252:0x3ffb2220 0x400d7715:0x3ffb2240 0x400d661d:0x3ffb2260 0x4010a32e:0x3ffb2290
lv_tlsf_free at .pio/libdeps/esp32-3248S035C/lvgl/src/misc/lv_tlsf.c:1167
lv_mem_free at .pio/libdeps/esp32-3248S035C/lvgl/src/misc/lv_mem.c:179
allocate_btn_areas_and_controls 
@flaviut
flaviut / ntp.py
Created November 2, 2023 01:56
A simple, experimental NTP client written in Python.
import socket
import struct
import time
from dataclasses import dataclass
from enum import IntEnum
from typing import Optional
NTP_SERVER = "pool.ntp.org"
NTP_PORT = 123
TIME1970 = 2208988800 # 1970-01-01 in NTP epoch
@flaviut
flaviut / parse-strace.py
Created October 5, 2023 15:45
Parses an strace output file to determine how long each file spends open, and makes a treemap. This may (depending on your program) be equvilant to how long it takes to read each file.
#!/usr/bin/env python
# use with `strace --absolute-timestamps=format:unix,precision:us -o strace.log yourprogram`.
import re
import csv
import os
from collections import defaultdict
import plotly.express as px
@flaviut
flaviut / sensors3.conf
Created August 11, 2023 21:39
sensors configuration for my computer
chip "nvme-pci-*"
label temp2 "flash"
label temp3 "cpu"
# ASRock B350 Fatal1ty Gaming ITX/ac
# 2019, contributed by Erdem U. Altinyurt
# Modified by Flaviu Tamas
#
# dmi: board_name: B350 Fatal1ty Gaming ITX/ac

Get all user tables & size

SELECT database, table, storage_policy, round(total_bytes / 1024 / 1024) as MiB
FROM system.tables 
WHERE storage_policy IS NOT NULL AND lower(database) NOT IN ('system', 'information_schema')
ORDER BY MiB DESC;

Get all user tables with TTLs

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""Script to draw bounding boxes and text from a Tesseract box file.
The script takes an image TIFF_FILE, draws the text and bounding boxes
of the corresponding BOX_FILE and saves the resulting OUT_FILE.
Tesseract box file columns:
<symbol> <left> <bottom> <right> <top> <page>
CREATE USER iam_admin;
GRANT rds_iam TO iam_admin;
grant rds_superuser to iam_admin;
CREATE USER iam_readonly;
GRANT rds_iam TO iam_readonly;
GRANT pg_read_all_data to iam_readonly;
REVOKE CREATE ON SCHEMA public FROM iam_readonly;
@flaviut
flaviut / Setting up Emporia Vue 2 with ESPHome.md
Last active March 12, 2024 00:27
Setting up Emporia Vue 2 with ESPHome
import sys
import datetime
"""
Dumps the data from a bluetooth-connected PC-60FW fingertip oximeter to a CSV
on stdout.
# Getting started
Make sure you have CMake, gcc, and python 3.7+ installed.