Skip to content

Instantly share code, notes, and snippets.

View stokito's full-sized avatar
Self-hosting become easier 🤗

Sergey Ponomarev stokito

Self-hosting become easier 🤗
View GitHub Profile
@jorticus
jorticus / detect_cameras.py
Created November 13, 2023 06:07
dnsmasq rtmp device discovery
#!/usr/bin/python
#
# Dynamically populate NGINX config with network cameras
# detected via DHCP leases table and DNSMasq
#
import os
import sys
import time
@stokito
stokito / README.md
Last active January 25, 2025 22:14
Cryptography GUI tools: OpenSSL GUI, keys management, PKI, PGP/GPG GUI
@joshtrichards
joshtrichards / WebDAV-Small-Files-Perf.md
Last active November 27, 2024 18:09
WebDAV Client Small Files Performance Testing

Rankings

Results, ranked so far (executed via unix time command where possible; balance based on wall clock observation cross-verified with log files):

  1. Cyberduck: 12 seconds (!!!)
  2. cURL + NC's Bulk File API: 50 seconds
  3. Duck.sh: 1 minute 10 seconds
  4. cURL (parallel mode aka -Z): 2 minutes 20 seconds
  5. Windows 10: 4 minutes 45 seconds
  6. Rclone: 7 minutes 41 seconds
@rezazarchi
rezazarchi / MessageConverter.kt
Last active October 7, 2023 09:42
Mapping K9 MimeMessage objects to Javax Mail MimeMessage objects together
package com.fsck.k9.message
import android.content.Context
import com.fsck.k9.mail.internet.MimeHeader
import com.fsck.k9.mail.internet.MimeMessageHelper
import com.fsck.k9.mail.internet.MimeMultipart
import com.fsck.k9.mail.internet.TextBody
import com.fsck.k9.mailstore.TempFileBody
import java.io.File
@optozorax
optozorax / README.md
Last active February 1, 2022 17:10
Противоречие в диагональном аргументе?

Итак, что же такое вещественное число? В общем случае это число с бесконечным числом знаков после запятой.

Но знаете, я не особо верю в бесконечно длинные числа сами по себе. Ведь у нас нет к ним доступа, мы не можем ими напрямую оперировать. У нас есть конечная вселенная, максимальная скорость света, текущее время обозначается конечным числом. Мы никогда не сможем получить бесконечно длинное число, даже если захотим. У нас есть доступ только к конечным ресурсам.

Но есть один способ сделать бесконечное через конечное - алгоритмы. Мы можем записать бесконечно длинное число некоторым алгоритмом, который получает на вход номер знака, а возвращает цифру нашего бесконечного числа. Мы такими алгоритмами пользуемся постоянно, например: sqrt(2), pi, e. Для любого N мы можем вычислить N-й знак любого нужного нам числа. Ну, в теории. И таким образом мы можем представить все нужные нам вещественные числа.

Для бесконечно длинных чисел существует так называемый диагональный аргумент, который доказывает что бесконечност

@zdebra
zdebra / throttled_transport.go
Created June 15, 2021 14:48
NewThrottledTransport wraps transportWrap with a rate limitter, improvement of https://gist.github.com/MelchiSalins/27c11566184116ec1629a0726e0f9af5 since it allows use of *http.Client
package main
import (
"net/http"
"time"
"golang.org/x/time/rate"
)
// ThrottledTransport Rate Limited HTTP Client
@e-minguez
e-minguez / README.md
Last active December 1, 2024 05:30
docker on lxc on turris omnia

Turris

opkg install kmod-veth
opkg install kmod-ipt-extra
opkg install iptables-mod-extra
  • Install a new container (I created an arch linux container)
  • Open up the /srv/lxc/containername/config file for editing:
@milolav
milolav / googleapi_oauth2_cert.sh
Created March 8, 2021 00:50
Oauth2 certificate authentication in bash for Microsoft Graph and Google APIs
set -e
client_email='[email protected]'
subject_email='[email protected]' #user that will be impersonated
scopes='https://www.googleapis.com/auth/<scope1> https://www.googleapis.com/auth/<scope2>'
key_file='my.key' #certificate private key (for signing)
jwt_header="{\"alg\":\"RS256\",\"typ\":\"JWT\"}"
ts=$(date +%s)
@kylekyle
kylekyle / sshuttle-openwrt.md
Last active June 7, 2024 17:54
Install and configure sshuttle on OpenWrt

Install and configure sshuttle on OpenWrt

Note that ANY flash update will wreck the extroot configuration. I didn't realize that and had to:

Configure extroot

authority letsencrypt {
api url "https://acme-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-privkey.pem"
}
domain graph.openshift.tips {
domain key "/etc/ssl/private/graph.openshift.tips:443.key"
domain full chain certificate "/etc/ssl/graph.openshift.tips:443.crt"
sign with letsencrypt
}