Compare commits

...

10 Commits

Author SHA1 Message Date
Your Name ce7cbe1c9f bsdlfeed-light imports subprocess 2026-06-29 23:30:20 +02:00
Your Name fb7450d264 bug copying solved + env 2026-06-03 18:52:01 +02:00
Your Name 04c006937c sumcol 2026-05-26 18:43:27 +02:00
Your Name 7c24a1e1d1 bscon.py imports atproto 2026-05-14 15:42:23 +02:00
Your Name 4c99342a0e SuperCollider
archive.sctxar
downloaded-quarks/Dirt-Samples
downloaded-quarks/SuperDirt
downloaded-quarks/Vowel
downloaded-quarks/quarks
sclang_conf.yaml
startup.scd
2026-05-01 19:49:10 +02:00
Your Name bf0809fa86 Merge branch 'main' of github.com:nidionis/svr 2026-05-01 19:48:32 +02:00
Your Name 8744bb65d4 modified: install/fedora.sh
modified:   usr/etc/env
2026-05-01 19:47:11 +02:00
Your Name 5fb9020f79 stereogramer 2026-04-27 18:33:40 +02:00
Your Name f9e41163ec catssh 2026-04-27 10:42:31 +02:00
Your Name 54e98e568e tidal-install 2026-04-18 18:23:28 +02:00
18 changed files with 274 additions and 16 deletions
+7
View File
@@ -0,0 +1,7 @@
dnf update
dnf upgrade
./tree_cpy /svr/usr
./config.sh
dnf install nvim
dnf install vim
+1 -1
View File
@@ -16,7 +16,7 @@ src="$(readlink -f "$src")"
find "$src" -type f | while IFS= read -r f; do
rel="${f#$src/}"
target="$dst/$rel"
target="$dst$rel"
# ensure parent dir exists (but never replace dirs)
mkdir -p "$(dirname "$target")"
Executable
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/bash
if [ "$#" -lt 1 ] || [ "$#" -gt 3 ]; then
echo "Usage: $0 arg1 [arg2] [arg3]"
exit 1
fi
# interactive session check
if [ -t 0 ]; then
echo -n "Delete existing output files? [y/N]: "
read ans
case "$ans" in
y|Y) rm -f *.school ;;
*) echo "Aborted"; exit 0 ;;
esac
fi
# process input file
while IFS= read -r line; do
new_f="${line%.*}.school"
f > "$new_f"
done < "$FILE"
exit 0
+6 -2
View File
@@ -1,7 +1,11 @@
#!/usr/bin/env python3
from atproto import Client
import argparse
import os
try:
from atproto import Client
except ImportError:
os.system("pip3 install atproto")
from atproto import Client
import argparse
DEFAULT_DOMAIN = "bsky.social"
DEFAULT_NAME = "ni-bot"
+1
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env python3
import argparse
import subprocess
from bscon import connect
from bsdlprofile import TMP_DIR
import os
+70
View File
@@ -0,0 +1,70 @@
#!/usr/bin/env python3
import argparse
pusher = {
'A': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '20+', '2': '20+'},
'K': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '19.9', '2': '19.3'},
'Q': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '16.3', '3': '13.5', '2': '12.7'},
'J': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '18.6', '5': '14.7', '4': '13.5', '3': '10.6', '2': '8.5'},
'T': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '11.9', '4': '10.5', '3': '7.7', '2': '6.5'},
'9': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '14.4', '4': '6.9', '3': '4.9', '2': '3.7'},
'8': {'A': '20+', 'K': '18.0', 'Q': '13.0', 'J': '13.3', 'T': '17.5', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '18.8', '4': '10.1', '3': '2.7', '2': '2.5'},
'7': {'A': '20+', 'K': '16.1', 'Q': '10.3', 'J': '8.5', 'T': '9.0', '9': '10.8', '8': '14.7', '7': '20+', '6': '20+', '5': '20+', '4': '13.9', '3': '2.5', '2': '2.1'},
'6': {'A': '20+', 'K': '15.1', 'Q': '9.6', 'J': '6.5', 'T': '5.7', '9': '5.2', '8': '7.0', '7': '10.7', '6': '20+', '5': '20+', '4': '16.3', '3': '2.5', '2': '2.0'},
'5': {'A': '20+', 'K': '14.2', 'Q': '8.9', 'J': '6.0', 'T': '4.1', '9': '3.5', '8': '3.0', '7': '2.6', '6': '2.4', '5': '20+', '4': '20+', '3': '2.2', '2': '2.0'},
'4': {'A': '20+', 'K': '13.1', 'Q': '7.9', 'J': '5.4', 'T': '3.8', '9': '2.7', '8': '2.3', '7': '2.1', '6': '2.0', '5': '2.1', '4': '20+', '3': '1.8', '2': '1.8'},
'3': {'A': '20+', 'K': '12.2', 'Q': '7.5', 'J': '5.0', 'T': '3.4', '9': '2.5', '8': '1.9', '7': '1.8', '6': '1.7', '5': '1.8', '4': '1.6', '3': '20+', '2': '1.7'},
'2': {'A': '20+', 'K': '11.6', 'Q': '7.0', 'J': '4.6', 'T': '2.9', '9': '2.2', '8': '1.8', '7': '1.6', '6': '1.5', '5': '1.5', '4': '1.4', '3': '1.4', '2': '20+'},
}
caller = {
'A': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '20+', '2': '20+'},
'K': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '17.6', '7': '15.2', '6': '14.3', '5': '13.2', '4': '12.1', '3': '11.4', '2': '10.7'},
'Q': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '16.1', '8': '13.0', '7': '10.5', '6': '9.9', '5': '8.9', '4': '8.4', '3': '7.8', '2': '7.2'},
'J': {'A': '20+', 'K': '20+', 'Q': '19.5', 'J': '20+', 'T': '18.0', '9': '13.4', '8': '10.6', '7': '8.8', '6': '7.0', '5': '6.9', '4': '6.1', '3': '5.8', '2': '5.6'},
'T': {'A': '20+', 'K': '20+', 'Q': '15.3', 'J': '12.7', 'T': '20+', '9': '11.5', '8': '9.3', '7': '7.4', '6': '6.3', '5': '5.2', '4': '5.2', '3': '4.8', '2': '4.5'},
'9': {'A': '20+', 'K': '17.1', 'Q': '11.7', 'J': '9.5', 'T': '8.4', '9': '20+', '8': '8.2', '7': '7.0', '6': '5.8', '5': '5.0', '4': '4.3', '3': '4.1', '2': '3.9'},
'8': {'A': '20+', 'K': '13.8', 'Q': '9.7', 'J': '7.6', 'T': '6.6', '9': '6.0', '8': '20+', '7': '6.5', '6': '5.6', '5': '4.8', '4': '4.1', '3': '3.6', '2': '3.5'},
'7': {'A': '20+', 'K': '12.4', 'Q': '8.0', 'J': '6.4', 'T': '5.5', '9': '5.0', '8': '4.7', '7': '20+', '6': '5.4', '5': '4.8', '4': '4.1', '3': '3.6', '2': '3.3'},
'6': {'A': '20+', 'K': '11.0', 'Q': '7.3', 'J': '5.4', 'T': '4.6', '9': '4.2', '8': '4.1', '7': '4.0', '6': '20+', '5': '4.9', '4': '4.3', '3': '3.8', '2': '3.3'},
'5': {'A': '20+', 'K': '10.2', 'Q': '6.8', 'J': '5.1', 'T': '4.0', '9': '3.7', '8': '3.6', '7': '3.6', '6': '3.7', '5': '20+', '4': '4.6', '3': '4.0', '2': '3.6'},
'4': {'A': '18.3', 'K': '9.1', 'Q': '6.2', 'J': '4.7', 'T': '3.8', '9': '3.3', '8': '3.2', '7': '3.2', '6': '3.3', '5': '3.5', '4': '20+', '3': '3.8', '2': '3.4'},
'3': {'A': '16.6', 'K': '8.7', 'Q': '5.9', 'J': '4.5', 'T': '3.6', '9': '3.1', '8': '2.9', '7': '2.9', '6': '2.9', '5': '3.1', '4': '3.0', '3': '20+', '2': '3.3'},
'2': {'A': '15.8', 'K': '8.1', 'Q': '5.6', 'J': '4.2', 'T': '3.5', '9': '3.0', '8': '2.8', '7': '2.6', '6': '2.7', '5': '2.8', '4': '2.7', '3': '2.6', '2': '15.0'},
}
def main():
parser = argparse.ArgumentParser(description="Poker hand coefficient and Nash calling info.")
#parser.add_argument("cards", type=str, help="ex:AK")
parser.add_argument("--cards", "-c", type=str, help="ex:AK")
args = parser.parse_args()
cards = args.cards
try:
cards[2]
except IndexError:
cards = cards + 'o'
print("pusher: " + get_pusher(cards[0].upper(), cards[1].upper(), cards[2] == 's'))
print("caller: " + get_call(cards[0].upper(), cards[1].upper(), cards[2] == 's'))
def get_call(card1, card2, suited):
if suited:
if card1 < card2:
card1, card2 = card2, card1
else:
if card1 > card2:
card1, card2 = card2, card1
return caller[card1][card2]
def get_pusher(card1, card2, suited):
if suited:
if card1 < card2:
card1, card2 = card2, card1
else:
if card1 > card2:
card1, card2 = card2, card1
return pusher[card1][card2]
if __name__ == "__main__":
main()
+39
View File
@@ -0,0 +1,39 @@
#!/usr/bin/env python3
import sys
import numpy as np
from PIL import Image
def depth_map(w, h):
# simple demo: circular bump
y, x = np.ogrid[:h, :w]
cx, cy = w // 2, h // 2
r = min(w, h) // 3
d = ((x - cx)**2 + (y - cy)**2) <= r*r
return d.astype(np.float32)
def stereogram(depth, pattern_w=64, max_shift=32):
h, w = depth.shape
img = np.random.randint(0, 256, (h, w), dtype=np.uint8)
for y in range(h):
for x in range(pattern_w, w):
z = depth[y, x]
shift = int(z * max_shift)
src = x - pattern_w + shift
if src >= 0:
img[y, x] = img[y, src]
return img
def main(argc, argv):
w = int(argv[1]) if argc > 1 else 600
h = int(argv[2]) if argc > 2 else 400
out = argv[3] if argc > 3 else "stereogram.png"
d = depth_map(w, h)
s = stereogram(d)
Image.fromarray(s).save(out)
print(out)
if __name__ == "__main__":
main(len(sys.argv), sys.argv)
Executable
+19
View File
@@ -0,0 +1,19 @@
#!/bin/bash
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <file> <column_number>"
exit 1
fi
file="$1"
col="$2"
awk -v c="$col" '
{
if ($c ~ /^-?[0-9]+([.][0-9]+)?$/)
sum += $c
}
END {
print sum
}
' "$file"
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
sudo usermod -a -G audio $USER
sudo dnf install git-core qjackctl gcc-c++ cabal-install
sudo dnf install supercollider
VERSION=$(git ls-remote https://github.com/musikinformatik/SuperDirt.git | grep tags | tail -n1 | awk -F/ '{print $NF})
echo run scland
echo paste: Quarks.checkForUpdates({Quarks.install("SuperDirt", "v1.7.4"); thisProcess.recompile()})
+4 -12
View File
@@ -1,28 +1,20 @@
#!/usr/bin/env bash
set -euo pipefail
set -uo pipefail # drop -e
LIST=${1:-list}
FILE=${2:-}
usage() {
echo "usage: $0 [wordlist] <zipfile>"
echo "default wordlist: ./list"
exit 1
}
[[ -z "$FILE" ]] && usage
[[ ! -f "$LIST" ]] && { echo "missing wordlist: $LIST"; exit 1; }
[[ ! -f "$FILE" ]] && { echo "missing zip: $FILE"; exit 1; }
[[ -z "$FILE" ]] && { echo "usage: $0 [wordlist] <zipfile>"; exit 1; }
i=0
while IFS= read -r line; do
((i++))
(( i % 1000 == 0 )) && echo "$i tried..."
if unzip -P "$line" -t "$FILE" >/dev/null 2>&1; then
unzip -P "$line" -t "$FILE" >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo "FOUND: $line"
exit 0
fi
+4 -1
View File
@@ -13,7 +13,10 @@ LOG_CONN_DIR=/var/log/tcpd
LOG_CONN=$LOG_CONN_DIR/lasts.log
NET_STATUS=/tmp/status.txt
SSH=177
IAMUTOPIST=128.65.199.189
GITEA=83.228.210.97
REPRO=83.228.247.250
FAIRPOLL=128.65.199.13
JOURNAL_DIR=$HOME/journal
PERSO_DIR=$HOME/perso
+22
View File
@@ -0,0 +1,22 @@
var o, p;
o = [
Archive.prNew, IdentityDictionary.prNew, Array.prNew(32)
];
p = [
// Archive
0, [ dictionary: o[1] ],
// IdentityDictionary
1, [ array: o[2], size: 0,
proto: nil, parent: nil,
know: false ],
// Array
2, [ nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil ]
];
prUnarchive(o,p);
Submodule usr/home/SuperCollider/downloaded-quarks/Dirt-Samples added at c74fc80f8d
Submodule usr/home/SuperCollider/downloaded-quarks/SuperDirt added at adb0ed30a0
Submodule usr/home/SuperCollider/downloaded-quarks/Vowel added at ab59caa870
Submodule usr/home/SuperCollider/downloaded-quarks/quarks added at 0bc7e426ac
+8
View File
@@ -0,0 +1,8 @@
includePaths:
- /home/pain/.local/share/SuperCollider/downloaded-quarks/Vowel
- /home/pain/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples
- /home/pain/.local/share/SuperCollider/downloaded-quarks/SuperDirt
excludePaths:
[]
postInlineWarnings: false
excludeDefaultPaths: false
+57
View File
@@ -0,0 +1,57 @@
/*
This is an example startup file.
If you want to modify it, best copy it elsewhere to keep the git repository clean.
You can then load it by calling
"path/to/my/superdirt_startup.scd".load
from the supercollider startup file
The supercollider startup file is to be found in
Platform.userAppSupportDir +/+ "startup.scd",
or via the menu File > Open startup file
*/
(
s.reboot { // server options are only updated on reboot
// configure the sound server: here you could add hardware specific options
// see http://doc.sccode.org/Classes/ServerOptions.html
s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples
s.options.memSize = 8192 * 32; // increase this if you get "alloc failed" messages
s.options.numWireBufs = 2048; // increase this if you get "exceeded number of interconnect buffers" messages
s.options.maxNodes = 1024 * 32; // increase this if you are getting drop outs and the message "too many nodes"
s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary
s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary
// boot the server and start SuperDirt
s.waitForBoot {
~dirt.stop; // stop any old ones, avoid duplicate dirt (if it is nil, this won't do anything)
~dirt = SuperDirt(2, s); // two output channels, increase if you want to pan across more channels
~dirt.loadSoundFiles; // load samples (path containing a wildcard can be passed in)
~dirt.loadSoundFiles("/home/pain/Music/tidal/sounds/samples/*"); // load samples (path containing a wildcard can be passed in)
// for example: ~dirt.loadSoundFiles("/Users/myUserName/Dirt/samples/*");
// s.sync; // optionally: wait for samples to be read
~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0
SuperDirt.default = ~dirt; // make this instance available in sclang (optional)
// optional, needed for convenient access from sclang:
(
~d1 = ~dirt.orbits[0]; ~d2 = ~dirt.orbits[1]; ~d3 = ~dirt.orbits[2];
~d4 = ~dirt.orbits[3]; ~d5 = ~dirt.orbits[4]; ~d6 = ~dirt.orbits[5];
~d7 = ~dirt.orbits[6]; ~d8 = ~dirt.orbits[7]; ~d9 = ~dirt.orbits[8];
~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];
);
// directly below here, in your own copy of this file, you could add further code that you want to call on startup
// this makes sure the server and ~dirt are running
// you can keep this separate and make it easier to switch between setups
// by using "path/to/my/file.scd".load and if necessary commenting out different load statements
// ...
};
s.latency = 0.3; // increase this if you get "late" messages
};
);