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

Модная обходилка говнолиста: Инит-скрипт для 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 / 2184 дня назад
https://github.com/l29ah/pid высрал пид-регулятор с cli кароч
#ZX0YM7 (2+1) / @l29ah / 2521 день назад
Купил ещё микросхему оцифрятора термопары, на этот раз в терре. Заебись, работает! Китайцы на ебее кормят говном! // Reading MAX31855 using FTDI&#39;s MPSSE via libmpsse: https://github.com/l29ah/max31855-libmpsse
#WIZZ8Z (11+2) / @l29ah / 2526 дней назад
Зделал швабодную фирмварь для пятибаксового вайфай-выключателя: https://github.com/l29ah/sonoff-wifi-switch-sming
#5D79ST (0+3) / @l29ah / 2655 дней назад
Для любителей сохранять аттачи в mutt: https://dev.mutt.org/trac/ticket/3746#comment:1
#8DS221 (0) / @l29ah / 2868 дней назад
БАЙТЫ БЛЯТЬ ГДЕ ГДЕ БЛЯДЬ БАЙТЫ c 'int f = open("/dev/ttyUSB1", O_RDONLY);while(1){ char c; read(f, &c, 1); printf("%x\n", (int)c);}' СУКА ВСЁ САМОМУ ДЕЛАТЬ БАЙТЫ БЛ Я БАЙТЫ ИДУТ ВИДНО УРА
#6BG8KZ (15+2) / @l29ah / 2983 дня назад
Написал пиздилку/запихивалку стандартных vcard для n900. Теперь адресные книги задроида, linphone и n900 синхронизируются, ня // на самом деле нет, нужно ещё сделать умную мержилку, вместо которой сейчас мясной лях и референс-адресная книга на лаптопе.
#PUB1WA (30+1) / @l29ah / 2984 дня назад
Починил noping чтобы предсказуемо работал с ncurses-6, получился какой-то костыль уёбищный, вырезающий oping-подобную функциональность. Жаль больше вменяемых пингеров, запихуемых в небольшое окошко, нет. Сейчас получается что-то такое в дешборде: https://dump.bitcheese.net/files/ejujeku/screenshot-noping.png diff --git a/src/oping.c b/src/oping.c index 8f85234..283593b 100644 --- a/src/oping.c +++ b/src/oping.c @@ -1376,8 +1376,8 @@ static int pre_loop_hook (pingobj_t *ping) /* {{{ */ } main_win_height = height - (box_height * host_num); - main_win = newwin (/* height = */ main_win_height, - /* width = */ width, + main_win = newwin (/* height = */ 0, + /* width = */ 0, /* y = */ 0, /* x = */ 0); /* Allow scrolling */ scrollok (main_win, TRUE); @@ -1533,7 +1533,7 @@ static void update_host_hook (pingobj_iter_t *iter, /* {{{ */ context = (ping_context_t *) ping_iterator_get_context (iter); #if USE_NCURSES -# define HOST_PRINTF(...) wprintw(main_win, __VA_ARGS__) +void HOST_PRINTF(char *c, ...){if(c)return;} #else # define HOST_PRINTF(...) printf(__VA_ARGS__) #endif
#9ZR5QN (10) / @l29ah / 3026 дней назад
Нашёл свой код полуторагодовалой давности, который почему-то не опубликовал: Обожаю security through obscurity. Декодируем пароль из конфига Psi, кидая первым аргументом password, а вторым jid: #include <QString> #include <iostream> QString decodePassword(const QString &pass, const QString &key) { QString result; int n1, n2; if (key.length() == 0) { return pass; } for(n1 = 0, n2 = 0; n1 < pass.length(); n1 += 4) { ushort x = 0; if(n1 + 4 > pass.length()) { break; } x += QString(pass.at(n1)).toInt(NULL,16)*4096; x += QString(pass.at(n1+1)).toInt(NULL,16)*256; x += QString(pass.at(n1+2)).toInt(NULL,16)*16; x += QString(pass.at(n1+3)).toInt(NULL,16); QChar c(x ^ key.at(n2++).unicode()); result += c; if(n2 >= key.length()) { n2 = 0; } } return result; } int main(int argc, char *argv[]) { QString p = QString(argv[1]); QString k = QString(argv[2]); QString r = decodePassword(p, k); std::string ru = r.toUtf8().constData(); std::cout << ru << std::endl; return 0; }
#O3MZIP (2+2) / @l29ah / 3219 дней назад
https://dump.bitcheese.net/files/evurula/tkabber-muc-history-preload.patch Починил подкачку оффлайновых сообщений в муках ткаббером. Теперь если сервер настроен не уебански и не является кривым ежабберд, то ткаббер получит все сообщения, что прошли через мук пока юзера не было, в пределах лимитов в конфиге ткаббера же.
#R62YID (4+1) / @l29ah / 3274 дня назад
Красивые часики в i3lock: https://github.com/i3/i3lock/pull/7
#PMU0SM (22) / @l29ah / 3334 дня назад
Выпиливаем спам нотификашками от токсика при изменении статуса хуя из контактлиста: http://dump.bitcheese.net/files/ujebumo/toxic-dont-notify-online-status.patch
#F027HL (0) / @l29ah / 3509 дней назад

Получаем нотификашки о новом спаме в любимый десктоп из любимого mutt:
∞ cat mutt-notify-send.patch
--- curs_main.c 2014-09-05 19:30:37.578096061 +0400
+++ curs_main.c 2014-09-05 19:37:02.549530283 +0400
@@ -401,6 +401,12 @@
menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
}

+static void notifynew() {
+ if (option (OPTBEEPNEW))
+ beep ();
+ system("notify-send -a mutt -c mail 'new mail have arrived'");
+}
+
static const struct mapping_t IndexHelp[] = {
{ N
("Quit"), OPQUIT },
{ N
("Del"), OP_DELETE },
@@ -496,8 +502,7 @@
else if (check == M_NEW_MAIL)
{
mutt_message _("New mail in this mailbox.");
- if (option (OPTBEEPNEW))
- beep ();
+ notify_new();
} else if (check == M_FLAGS)
mutt_message _("Mailbox was externally modified.");

@@ -519,8 +524,8 @@
menu->redraw |= REDRAW_STATUS;
if (do_buffy_notify)
{
- if (mutt_buffy_notify () && option (OPTBEEPNEW))
- beep ();
+ if (mutt_buffy_notify ())
+ notify_new();
}
else
do_buffy_notify = 1;

#9BHI7X (16+1) / @l29ah / 3514 дней назад

Захотел чтобы OSS4 собиралась сразу в модули ядра (сейчас она компилится в объектники, а линкуется уже после установки), дабы можно было быстро проверять, насколько хуйни я туда набыдлокодил. Объелся говна с упоротой билд-системой, желание что-то быдлокодить пропало. Закрыл крышку ноута, ноут ушёл в саспенд, OSS сломалась, надо перезапускать весь звукософт, желание вкорячить в OSS поддержку power management вернулось. goto ^;

#6DTQNT (0) / @l29ah / 3514 дней назад

Выпиливаем новую фичу mpv, благодаря которой он подвисает, пока окно с его говнищем (например, обложкой альбома из эмпэти) не будет смэплено в иксовый дисплей. Актуально для пользователей оконных менеджеров с автоматическим распихиванием окон по воркспейсам.
diff --git a/video/out/x11_common.c b/video/out/x11_common.c
index adfbd95..5a74d60 100644
--- a/video/out/x11_common.c
+++ b/video/out/x11_common.c
@@ -1311,7 +1311,6 @@ void vo_x11_config_vo_window(struct vo *vo, XVisualInfo *vis, int flags,

 vo_x11_fullscreen(vo);
  • wait_until_mapped(vo); vo_x11_update_geometry(vo); update_vo_size(vo); x11->pending_vo_events &= ~VO_EVENT_RESIZE; // implicitly done by the VO
#ULIJBS (3+1) / @l29ah / 3614 дней назад

Просим qingy не лочить иксы, чтобы можно было установить свой скринлокер с красивой заставочкой, который бы правильно лочил дисплей после саспенда (да, я костылятор):
--- qingy/src/libraries/tty_guardian.c 2014-05-17 20:26:53.565035144 +0400
+++ qingy/src/libraries/tty_guardian.c 2014-05-17 20:27:41.562333125 +0400
@@ -387,7 +387,7 @@
int bark = 0;
int idle_time;

  • if (!lock_sessions && (!idle_timeout || !timeout_action))
  • if ((!lock_sessions && (!idle_timeout || !timeout_action)) || is_x_session) { wait(NULL); return;
#WZPWXA (14) / @l29ah / 3625 дней назад

Написал скробблер для mpv: http://dump.bitcheese.net/files/utyreso/lastfm.lua

#C2WBO4 (0) / @l29ah / 3706 дней назад

Выключаем несекурную антифичу подписывания сообщений в tkabber, оставляя возможность подписывания presence'ов: https://raw.github.com/l29ah/booboo/master/net-im/tkabber/files/tkabber-gpg-dont-sign-messages.patch
Гентушники могут emerge tkabber::booboo, as usual.

#4LX9G7 (16) / @l29ah / 3766 дней назад

Надоело мышевозить для производства карточек. Наговнякал скрипт:
‰ cat ~/bin/longmanki

!/bin/sh

fn=/tmp/toanki
true > "$fn"
for w in "$@"; do
printf '%s,"' "$w" >> "$fn"
sdcv -u 'Longman Dictionary of Contemporary English' "$w" | tail -n +5 >> "$fn"
echo \" >> "$fn"
done
anki "$fn"

Можно ещё прикрутить автовпиливание картинок из гугла: http://nicloay.blogspot.ru/2010/09/google-images-stardict-sound-anki.html

#J84X6F (0) / @l29ah / 3782 дня назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

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