Skip to content

Instantly share code, notes, and snippets.

View atomofiron's full-sized avatar
😶‍🌫️

Jaroslav Nesterov atomofiron

😶‍🌫️
View GitHub Profile

Keybase proof

I hereby claim:

  • I am atomofiron on github.
  • I am atomofiron (https://keybase.io/atomofiron) on keybase.
  • I have a public key ASDAaXqBUgZw0RQh0iYMgWqTJgYpP3zhJ_eRwyd_ktd3sAo

To claim this, I am signing this object:

@atomofiron
atomofiron / DataFlow.md
Last active May 17, 2021 16:34
SharedFlow instead of LiveData
  1. LiveData with single events
  2. (update of 1) RxJava instead of LiveData in MVVM
  3. (update of 2) Save State By Using RxJava or Kotlin Flow

После поверхностного ознакомления со статьями пришёл к выводу, что нужно попробовать отказаться от LiveData в пользу SharedFlow.

Требования:

  • доставка всех данных/событий
  • автоматическая отмена CoroutineScope (upd: у lifecycle уже появился свой)
  • работа в нужном потоке
We couldn’t find that file to show.
@atomofiron
atomofiron / manifest
Created May 21, 2021 16:08
digital freedom manifest
пользователь - индивид, обладающий интеллектом, способный мыслить логически.
система - совокупность технического оборудования и программного обеспечения.
цифровой сервис - система, обладающая неким функционалом и предоставляющая к нему доступ.
идентификация - некий идентификатор, по которому можно определить наличие и характер связи кокой-либо информации с определённой идентификацией.
беспрепятственно - буквально, при наличии технического и программного обеспечения и доступа к сети Интернет.
каждый пользователь имеет право на доступ к цифровому сервису, бесплатно предоставляющему гарантии, нарушение которых со стороны данного сервиса исключено.
гарантии в пределах цифрового сервиса:
возможность беспрепятственно создавать неограниченное количество псевдонимных идентификаций себя.
@atomofiron
atomofiron / manjaro-luks-update-grub
Last active March 19, 2023 12:39
Recovery Manjaro on luks partitions
$ sudo su
# pamac install manjaro-tools-base
# lsblk -o PATH,PTTYPE,PARTTYPE,FSTYPE,PARTTYPENAME
PATH PTTYPE PARTTYPE FSTYPE PARTTYPENAME
/dev/nvme0n1 gpt
/dev/nvme0n1p1 gpt e3c9e316-0b5c-4db8-817d-f92df00215ae Microsoft reserved
/dev/nvme0n1p2 gpt ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 ntfs Microsoft basic data
/dev/nvme0n1p3 gpt c12a7328-f81f-11d2-ba4b-00a0c93ec93b vfat EFI System
/dev/nvme0n1p4 gpt 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f swap Linux swap
/dev/nvme0n1p5 gpt 0fc63daf-8483-4772-8e79-3d69d8477de4 crypto_LUKS Linux filesystem
@atomofiron
atomofiron / encrypted_persistence.sh
Last active October 17, 2023 12:25
Linux encrypted persistence
dd if=linux.iso of=/dev/sda conv=fsync bs=4M status=progress
# reboot
fdisk /dev/sda <<< $(printf "n\np\n\n\n\nw")
cryptsetup --verbose --verify-passphrase luksFormat /dev/sda3
cryptsetup luksOpen /dev/sda3 usb_part
mkfs.ext4 -L persistence /dev/mapper/usb_part
e2label /dev/mapper/usb_part persistence
mkdir -p /mnt/usb_part
mount /dev/mapper/usb_part /mnt/usb_part
typealias IteratorProducer<T> = (index: Int) -> T
fun <T> MutableList<T>.addAll(count: Int, producer: IteratorProducer<T>) = addAll(collection(count, producer))
fun <T> iterable(count: Int, producer: IteratorProducer<T>) = object : Iterable<T> {
override fun iterator(): Iterator<T> = iterator(count, producer)
}
fun <T> sequence(count: Int, producer: IteratorProducer<T>) = object : Sequence<T> {
override fun iterator(): Iterator<T> = iterator(count, producer)
#!/bin/sh
adbpath=$(which adb)
if [ -f $adbpath ]; then
alias adb='adbrun'
fi
adbs() { # adb / adb -s ...
devices=$($adbpath devices | grep -Po '.+(?=\tdevice)')
# make an array
devices=( $devices )
@atomofiron
atomofiron / cargo build arguments
Last active September 18, 2023 12:03
Cargo crossplatform compilation commands
Release Darwin x86_64
cargo build --release --bin <NAME> --target x86_64-apple-darwin
Release Darwin Arm
cargo build --release --bin <NAME> --target aarch64-apple-darwin
Release Gnu x86_64
cargo build --release --bin <NAME> --target x86_64-unknown-linux-gnu
Release Win Gnu x86_64
@atomofiron
atomofiron / .rc
Last active February 21, 2024 15:28
Terminal prompt
PS1="\[\033[1;32m\[\u@\h\[\033[0m\[:\[\033[1;36m\[\w\[\033[0m\[\n$ "
PROMPT='%(?.%B%F{green}√%b.%F{red}! %?)%f %B%F{cyan}%~%f%b'$'\n''%# '
PROMPT='%(?.✅.⛔ %F{red}%?%f) %B%F{cyan}%~%f%b'$'\n''%(!.😈.%(?.🙂.🥲)) '
RPROMPT='%F{235}%*%f'