Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

В linux-5.7 приняли мой фикс для драйвера 9P-файловых систем: теперь при использовании неблокирующих fd файловая система не дожидается полного заполнения предоставленного программой буфера, а отдаёт то что есть после ответа сервера, какого бы размера он ни был, что позволяет использовать синтетические файловые системы с непредсказуемыми задержками. Например, hatexmpp3, где файл это лог чатика, и в случае отсутствия сообщения по запрошенному смещению read(2) блокируется до появления нового.
#6WRKJT (3+6) / @l29ah / 35 дней назад
Я случайно переписал sendxmpp на haskell: https://github.com/l29ah/hsendxmpp
#5YMXQ8 (7+2) / @l29ah / 72 дня назад
Собираем сбалансированную 3S3P батарею из имеющихся банок: import Data.Function import Data.List import Data.List.Split main = interact $ show . doit . map (read :: String -> Double) . lines doit list = minimumBy (compare `on` snd) $ map (\x -> (x, eval3s x)) $ mk3s list mk3s :: [Double] -> [[[Double]]] mk3s list = map (chunksOf 3) $ permutations list eval3s :: [[Double]] -> Double eval3s list = let sums = map sum list in (maximum sums) - (minimum sums)
#KWQD1J (0) / @l29ah / 142 дня назад
https://github.com/l29ah/fl2k_signal_generator зделол в итоге лабораторный генератор сигналов с ncurses-интерфейсом: Set [f]requency by typing it and hitting Enter Up-Down: adjust frequency by 10% Right-Left: adjust frequency by 1% Setting waveform: s[q]uare, [s]ine, sa[w], [t]riangle [r]ound the frequency
#DTUCSF (0+1) / @l29ah / 171 день назад
https://github.com/l29ah/signal_generators наговнякал костылей чтобы использовать fl2k как универсальный генератор сигналов
#H4SPMP (0+1) / @l29ah / 171 день назад
Не покупайте датчик влажности DHT21, он же AM2301, это - говно. Биты плывут, а чексумма остаётся правильной. temp: 107.599998°C, humidity: 112.800003% valid checksum Для тех, кто всё же хочет обмазаться, я написал реализацию протокола общения с ним посредством FTDI: https://github.com/l29ah/dht21-ftdi
#BX58ZX (0) / @l29ah / 185 дней назад
https://github.com/l29ah/w3crapcli/blob/master/needsmorejpeg.com/needsmorejpeg написал скрипт на случай важных переговоров
#CJPL72 (4+1) / @l29ah / 192 дня назад
Починил IMAP в neomutt, теперь им можно пользоваться без регулярных рестартов клиента.
#T309V4 (0+1) / @l29ah / 214 дней назад
Наговнякал скрипт для gdb для починки содержимого регистров чтобы можно было делать bt, up, смотреть локальные переменные и делать и прочие полезные вещи после hard fault в ARM Cortex M-микроконтроллерах: define hfstack set $frame_ptr = (unsigned *)$sp if $lr & 0x10 set $sp = $frame_ptr + (8 * 4) else set $sp = $frame_ptr + (26 * 4) end set $lr = $frame_ptr[5] set $pc = $frame_ptr[6] bt end document hfstack set the correct stack context after a hard fault on Cortex M end
#CLK0FP (0+1) / @l29ah / 216 дней назад
Начал пилить коллекцию патчей для EC от 51nb X210 с няшным dialog-интерфейсом: https://github.com/l29ah/x210-ec
#71JJRJ (0+1) / @l29ah / 301 день назад
Наговнякал осциллоскоп для stdin: https://github.com/l29ah/stdinscope
#S9DZXU (8+2) / @l29ah / 315 дней назад
Скрутил вместе mpv и yandex-music-download: https://github.com/l29ah/yandex-music-download/tree/fixes mpv $(ya.pl -s -l -u https://music.yandex.ru/album/1893037/track/17198916)
#HQ0RIB (3+2) / @l29ah / 323 дня назад
https://github.com/l29ah/waitgdb написал костыль, останавливающий софтину в случае креша, чтобы к ней можно было подсосаться отладчиком.
#5861SU (13+3) / @l29ah / 327 дней назад
Test/drive your servos using FTDI boards: https://github.com/l29ah/ft232-servo
#7PGY67 (0) / @l29ah / 385 дней назад
Чёт data science в прыщесосноле хуевато идёт import Data.List import System.Environment import System.IO purgeOutliers :: Double -> [Double] -> ([Double], [Double]) purgeOutliers fraction list = let len = length list mean = sum list / fromIntegral len droplen = round $ fromIntegral len * fraction offsets = map (abs . (subtract mean)) list boundary = head $ drop droplen $ reverse $ sort offsets in partition (\x -> abs (x - mean) < boundary) list main :: IO () main = do args <- getArgs let fraction = read $ head args inp <- getContents let (good, bad) = (purgeOutliers fraction . map read . lines) inp hPutStr stdout $ unlines $ map show good hPutStr stderr $ unlines $ map show bad
#W5JG2G (10) / @l29ah / 585 дней назад
https://github.com/l29ah/posplyu лан чёт работает надо выкладывать
#2PAESR (11) / @l29ah / 591 день назад
Управляем SSD1306 OLED-дисплеем по I2C с помощью FTDI: https://github.com/l29ah/ssd1306-libmpsse
#QUAD2E (0+4) / @l29ah / 786 дней назад
Написал крючко-либу: https://www.thingiverse.com/thing:2889126
#R9IAT9 (0+3) / @l29ah / 797 дней назад
Модная обходилка говнолиста: Инит-скрипт для openrc: #!/sbin/openrc-run # Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 savefile=/var/db/iptables-rbl/saved depend() { need net } start() { ipset restore < "$savefile" ipset create -q vpn-whitelist hash:net maxelem 4294967295 iptables -t mangle -A OUTPUT -m set --match-set vpn-whitelist dst -j MARK --set-xmark 0x103 # ip rule add fwmark 0x103 lookup 3 # ip r a default dev myvpn table 3 } stop() { ipset save vpn-whitelist > "$savefile" } Скрипт для крона: #!/bin/bash echo Updating iptables-rbl | logger cd /var/db/iptables-rbl TARGET_SET=vpn-whitelist TARGET_TMP=vpn-whitelist-tmp mkset() { ipset destroy -q ${TARGET_TMP} || true ipset create -q ${TARGET_SET} hash:net maxelem 13107200 || true ipset create ${TARGET_TMP} hash:net maxelem 13107200 { cat list # rutracker echo 195.82.146.214 # pornhub echo 216.18.168.162 } | xargs -n1 ipset -q add ${TARGET_TMP} ipset swap ${TARGET_TMP} ${TARGET_SET} ipset destroy ${TARGET_TMP} } code=&#39;import pandas as pd import sys data = pd.read_csv(sys.argv[1], sep=";", header=None, skiprows=[0], encoding="cp1251", names=["ip", "url", "full_url", "blocked_by", "law", "date"]) ip_list = {ip for sublist in data["ip"].dropna().unique() for ip in sublist.split(" | ")} print("\n".join(ip_list))&#39; python3 -c "$code" <(wget -O - https://raw.githubusercontent.com/zapret-info/z-i/master/dump.csv 2>/dev/null) > list-new if [ $(wc -c list-new | cut -d\ -f 1) -gt 7 ]; then mv list-new list mkset else echo "iptables-rbl haven&#39;t received an address list" | logger mkset fi
#KL06TL (10+8) / @l29ah / 802 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.