Skip to content

Instantly share code, notes, and snippets.

View airled's full-sized avatar

Uladzimir airled

  • Minsk, Belarus
View GitHub Profile
@airled
airled / zed-settings.json
Created May 16, 2026 06:48
Zed with Sublime Text-friendly config (with Blackboard-like theme)
{
"cli_default_open_behavior": "new_window",
"git": {
"inline_blame": {
"enabled": false,
},
},
"auto_update": false,
"soft_wrap": "editor_width",
"buffer_font_family": "DejaVu Sans Mono",
@airled
airled / int_to_bin.ex
Created May 14, 2026 15:20
Represent int as binary in Elixir using tail recursion
require Bitwise
import Bitwise
defmodule IntToBin do
def call(int, endian \\ :little), do: do_call(int, <<>>, endian)
defp do_call(0, <<>>, _), do: <<0>>
defp do_call(0, buff, _), do: buff
defp do_call(int, buff, endian) do
byte = int &&& 0xFF
@airled
airled / scrot.sh
Created February 10, 2026 08:33
Ubuntu prt_scr hotkey
scrot -fs -e 'xclip -f -selection clipboard -target image/png -i $f'
@airled
airled / u128_to_string.rs
Created November 16, 2025 06:44
Represent u128 to the string
const ALPHABET: [char; 16] =
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
// Do not use in production:
// - does not check base 0
// - u128 instead of generic
// - no negative support
fn to_s(num: u128, base: u128) -> String {
let mut buffer: String = String::new();
let mut div = num;
@airled
airled / xray_server.json
Created November 11, 2025 04:37
Minimal xray server config
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "{xray uuid}",
"flow": "xtls-rprx-vision"
@airled
airled / xray_client.json
Last active November 11, 2025 04:38
Minimal xray client config
{
"inbounds": [
{
"port": 1080,
"protocol": "socks",
"settings": {
"udp": true
}
}
],
@airled
airled / u32_to_bytes.rs
Created November 4, 2025 07:24
Convert u32 to the vec of bytes big-endian
fn int_to_bytes(num: u32) -> Vec<u8> {
let mut bytes: Vec<u8> =
(0..4).map(|offset| ((num >> offset * 8) & 0xFF) as u8).collect();
bytes.reverse();
bytes
}
fn main() {
let res = int_to_bytes(1234u32);
println!("{:?}", res);
@airled
airled / extractor.sol
Created August 14, 2024 13:54
Extract a signer address from signature of a personal signed message
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
using MessageHashUtils for bytes;
using ECDSA for bytes32;
contract AddressExtractor {
@airled
airled / qsort.rs
Last active November 15, 2025 11:45
Simple quicksort in rust
fn qs<T: std::cmp::Ord>(a: &mut [T]) {
if a.len() <= 1 { return; }
let last_index = a.len() - 1; // pivot index
let mut partition_index = 0;
for i in 0..last_index {
if a[i] >= a[last_index] { continue; }
a.swap(i, partition_index);
partition_index += 1;
@airled
airled / affinity.sh
Last active June 20, 2024 06:28
Show list of process affinities ommiting threads
# Show list of process affinities omitting threads
for pid in $(ps --ppid 2 -p 2 --deselect -o pid=); do taskset -pc $pid 2>/dev/null; done