Skip to content

Instantly share code, notes, and snippets.

@stek29
stek29 / dreame_1c_root.md
Last active August 17, 2026 14:39
Root Dreame Robot without via uart only

These are just my notes, and described process worked for me on my 1C robot
If anything goes wrong, having USB adapter for FEL flashing might be the only way to restore your robot
this is not an official guide
oh, and I'm not responsible for any damage blah blah
and huge thanks to Dennis and Hypfer, and everyone behind this root :)

0. get uboot shell

to enter uboot shell on 1C you have to: 0. turn robot off normally

  1. hook up uart, open console
@stek29
stek29 / multisaber_quest.md
Last active May 27, 2025 19:39
multiple copies of beatsaber app on quest

Here's how you can have multiple versions of beat saber at the same time by having different package names.
Unfortunately, BMBF is hardcoded to use original BeatSaber package id, so it's not possible to have completely unmodded version with BMBF modded version.
If BMBF starts using this method, it would be possible to have unmodded beat saber from oculus store with multiplayer support and modded BMBF version.

I made this because BMBF modded version used to crash time to time, and I prefer to have choice between stable game and custom songs.

You'd need apktool, zipalign, apksigner – I'm on mac, so I've installed apktool from brew and used Docker for other tools: fopina/dedroid.

Grab the APK

@stek29
stek29 / extract_telegram_macos.ipynb
Last active September 4, 2026 05:34
Extract Telegram messages from db_sqlite PostBox – made for Telegram for macOS, but should work with Telegram for iOS
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@stek29
stek29 / bmstu-mail-crawl.sh
Created April 27, 2020 20:08
Crawl communigate mail
#!/usr/bin/env zsh
# zsh because bash cant handle {$a..$b} expansion
# Directories to crawl
DIRS=(INBOX INBOX%2FARCHIVE Sent%20Items)
# ID range to try
RANGE_MIN=${RANGE_MIN:-1}
RANGE_MAX=${RANGE_MAX:-150}
@stek29
stek29 / gethost.c
Created August 10, 2019 00:20
get hostname by address on windows
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
// link with ws2_32.lib
#pragma comment(lib, "Ws2_32.lib")
int __cdecl main(int argc, char **argv)
{
@stek29
stek29 / CREAT.py
Created August 10, 2019 00:09
park.mail.ru entry tests
class FUCK:
def __init__(self):
self.x = list()
self.n = 0
def CREATE(self, N):
self.n = N
self.x = [0] * self.n
def SET(self, L, R, val):
@stek29
stek29 / imagemagick.Dockerfile
Created June 16, 2019 10:08
imagemagick with liblqr in docker
FROM debian:9 AS builder
RUN apt-get update && \
apt-get install -y \
build-essential \
pkg-config \
wget \
tar \
libltdl-dev \
libpng-dev \
package main
import (
"bufio"
"fmt"
"os"
"strings"
"github.com/rivo/uniseg"
)
@stek29
stek29 / jira-ps-dumper.js
Created May 8, 2019 12:59
Dump Jira permission scheme into JSON
JSON.stringify(Object.fromEntries(Array.from(document.querySelectorAll('[data-permission-key]')).map(tr => {
let title = tr.querySelector('[class="title"]').innerText
let types = Object.fromEntries(Array.from(tr.querySelectorAll('[class="types"] dt')).map(dt => {
let sentence = dt.innerText
let next = dt.nextSibling
let values = (next !== null) ? [] : null
while (next !== null && next.tagName == "DD") {
values.push(next.innerText)
next = next.nextSibling
}
@stek29
stek29 / fixvenvopt.sh
Created March 27, 2019 20:19
Fix Cellar versioned links in virtualenvs
#!/usr/bin/env bash
# Python virtualenvs contain references to base python
# For brew installed python they reference versioned Cellar
# Which breaks even on minor update
# This hacky script rewrites all those references to opt based,
# unversioned ones.
#
# Example usage: fixvenvopt.sh ~/.virtualenvs/jupyter
set -euo pipefail