Skip to content

Instantly share code, notes, and snippets.

View SanariSan's full-sized avatar
😯
1 2 Fizz 4 Buzz

SanariSan

😯
1 2 Fizz 4 Buzz
  • Georgia, Tbilisi
View GitHub Profile
@SanariSan
SanariSan / gist:7f7396f213298c0526f3a4bc5dbeaa25
Created June 9, 2025 16:53 — forked from pwlin/gist:8a0d01e6428b7a96e2eb
Android : add cert to system store
https://code.google.com/p/android/issues/detail?id=32696#c5
If you have a certificate that is not
trusted by Android, when you add it, it goes in the personal cert store.
When you add a cert in this personal cert store, the system requires a
higher security level to unlock the device. But if you manage to add your
cert to the system store then you don't have this requirement. Obviously,
root is required to add a certificate to the system store, but it is quiet
easy.
@SanariSan
SanariSan / clip.js
Created May 14, 2025 11:21
Recursively clip code files with path prepend (for ai to get proj summary)
import { appendFileSync, readFileSync } from 'fs';
import { readdir } from 'fs/promises';
import { join } from 'path';
const ROOT = './src';
const OUT = 'samples_clipped.txt';
const init = async () => {
const entries = await readdir(ROOT, {
recursive: true,
@SanariSan
SanariSan / arr-to-entries.js
Created April 10, 2025 09:02
Flat array to entries (pairs of key-val)
const arr = [1, 2, 3, 4, 5, 6]; // -> [[1,2],[3,4],[5,6]]
arr.reduce((acc, cur, i) => {
const pos = ~~(i / 2);
acc[pos] = acc[pos] ?? [];
if (i % 2 === 0) acc[pos].push(cur);
else acc[pos].unshift(cur);
return acc;
@SanariSan
SanariSan / git-batch-push.sh
Created March 31, 2025 15:43 — forked from spenserhale/git-batch-push.sh
When your repo exceeds upload limit (GitHub 2GB), you can push in batches so you can store up to total size limit. (100GB) (Warning uses force push, ideally should be used for setting up new remote, once)
# Adjust the following variables as necessary
REMOTE=origin
BRANCH=$(git rev-parse --abbrev-ref HEAD)
BATCH_SIZE=250
# check if the branch exists on the remote
if git show-ref --quiet --verify refs/remotes/$REMOTE/$BRANCH; then
# if so, only push the commits that are not on the remote already
range=$REMOTE/$BRANCH..HEAD
else
@SanariSan
SanariSan / sol_is_freezable.js
Created February 12, 2025 18:15
Is sol token freezable, chatgpt
const { Connection, PublicKey } = require('@solana/web3.js');
const { getMint } = require('@solana/spl-token');
async function checkTokenFreezable(tokenAddress) {
// Connect to Solana mainnet
const connection = new Connection('https://api.mainnet-beta.solana.com');
try {
// Create PublicKey from the token address
const mintPubkey = new PublicKey(tokenAddress);
@SanariSan
SanariSan / prettify-ts-type.md
Created November 26, 2024 17:48
Prettify, show full nested ts type

tsconfig.json This prevents typehints for big types from showing ... N more ...

{
  "compilerOptions": {
    "noErrorTruncation": true,
  }
}
@SanariSan
SanariSan / favicon-optimize.md
Created September 24, 2024 22:30
Favicon optimization

imagick cli

convert favicon.ico -define icon:auto-resize=64,48,32,16 compressed_favicon.ico

Demo:

Spoiler warning

Spoiler text. Note that it's important to have a space after the summary tag. You should be able to write any markdown you want inside the <details> tag... just make sure you close <details> afterward.

console.log("I'm a code block!");
@SanariSan
SanariSan / keys.txt
Created September 10, 2024 14:38 — forked from f0r34chb3t4/keys.txt
Proxifier.txt
Portable Version KEYS:
P6Z3T-UYJC9-YAK3F-APN9M-6ZDSD
FGZPK-93CWX-Q33Y6-D5URV-YXC3X
9CZQX-9YAQA-PF33L-XVUQH-NSD48
8RZ3L-H3Y5L-W2RY5-Z5M8N-C7Z2U
CCZNU-LW3LF-K9V2T-MYZFF-94667
EWZM6-3W4UX-KH922-C96GK-VGBH2
Standard Version KEYS:
4AZNW-S2YHE-LLMWM-J6EL8-7QKDL
@SanariSan
SanariSan / clear-old-snaps.sh
Created May 15, 2024 13:38
Clear old snaps
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done