Author Archives: Tolik Punkoff
Про архиламеров Хуйла
Некое продолжение темы, развитой здесь
Отдел «К» на самом деле такие придурки, что я охуел. Склевали подставное лицо, как голуби семечки из рук гопника.
А технология-то проще, чем музыка у группы «Технология»:
1. Покупаем старый, относительно известный хотя бы в узких кругах блог, желательно вместе со всеми наработанными текстами и связанными ресурсами.
2. Нанимаем старого хозяина контент-менеджером на недолгий срок.
3. Изучаем его литературный стиль, учимся дублировать.
4. Разрываем контракт.
5. Устраиваем скандал, ведущий к «деанону» желательно в таких же узких кругах.
6. Инструктируем чела, как если что говорить с ментами.
7. Устраиваем в блоге скандал, который заинтересует ментов.
8. […] на самом деле, тут могут быть всякие дополнительные плюхи, типа установки на компьютер первоначального хозяина публичного прокси за дополнительные деньги, или даже проплата интервью региональным изданиям
9. Менты наябываются, и даже суда не получается.
10. ФАНФАРЫ! ЗАНАВЕС!
Это такой общий план проекта по наебыванию деанонимизаторов в сети, на деле, чтоб корректно все сделать, надо прикладывать разум и руки, без анализа конкретики и подстройки под ситуацию оно вряд-ли сработает, если вы такой же ламер, как сотрудники отдела «К». Но, если все продумать, то выполнить сможет даже школьник.
Как-то так.
Удачи!
Конфиги pptp для vpnbook.com
Кое-кто просил pptp-конфиги для vpnbook.com
Получите, распишитесь.
На Pastebin:
Общий конфиг options.pptp
Куда класть, понятно из конфигов пиров (помещаются в директорию /etc/ppp/peers
)
vpnbook-ca1
vpnbook-de233
vpnbook-euro214
vpnbook-euro217
vpnbook-us1
vpnbook-us2
Скачать одним архивом с mega.nz
На euro-214 и 217 открыты все порты, на остальных доступен только HTTP/HTTPS, за торренты (ну так написано) могут типа по голове настучать, в смысле отрубить, но хз, я в принудительном режиме качал 100 метров, не отрубили.
217 на мой взгляд довольно падучий, 214 более стабильный, но чет последнее время тоже периодически разрывает коннект.
Сам пользуюсь в основном канадским, ну нравится мне, что сервер предоставляет моя любимая контора ZOG ЦРУ ФСБ СБУ CDC.
Конфиги не комментированные, гуглите, если что непонятно, как-нибудь может посвящу этому заметку, но не сейчас.
Можно закомментить строчку debug
, чтоб не срал лишнего в логи.
Пароль там действующий на момент публикации заметки, надо пердически менять, когда-нибудь затрону тему, расскажу, как автоматом менять, благо просто.
Решение проблемы отображения кириллицы в lynx
Собственно, некое продолжение темы из предыдущей заметки. Мне и потребовались русские буквы в консоли для того, чтобы вбивать их в строку поиска гугеля из консольного браузера lynx
. Так уж получилось, что был недавно в ситуации, где окромя консоли ничего нет, а почитать новости или Мракопедию хотелось. Или в гугель что-нибудь вбить.
Но lynx
с настройками по умолчанию подложил мне свинью, точнее маленького поросеночка. Русскоязычные сайты отображались translitom.
Оказалось, что лечится довольно просто (во всяком случае у меня)
1. Запускаем lynx на каком-нибудь сайте с русским текстом. Например lynx tolik-punkoff.com
2. Видим translit, но смело нажимаем кнопку «o» (латинская буква «о») и попадаем в окно с настройками браузера.
3. Пролистываем настройки (клавишами вверх/вниз) и становимся на пункт Display character set
в разделе Display and Character Set
, и видим там какую-нибудь фигню вроде Western (cp850)
4. Поднимаемся выше на пункт Use locale-based character set
, жмем Enter, в выпадающем списке выбираем On, жмем Enter
5. Поднимаемся вверх до пункта сохранения изменений (Accept Changes
) и жмем на нем Enter
Lynx сама определит кодировку, которую использует терминал, сохранит изменения на текущую сессию и перекинет нас обратно на сайт.
Если все получилось, значит, терминал русифицирован, и lynx
определил его кодировку
Если нет — скорее всего, косяк где-то в русификации консоли.
Осталось сохранить это на веки вечные. 🙂
Еще раз нажимаем кнопку «o», спускаемся на пункт Save options to disk: [ ]
, устанавливаем чекбокс нажатием на нем Enter и сохраняем изменения, как описывалось выше.
Можно ради интереса спуститься к пункту Display character set
и посмотреть, какую кодировку определил браузер. У меня, как и ожидалось, оказалась UNICODE (UTF-8)
Маленькая заметка по русификации консоли в Slackware
Понадобились мне русские буквы в чистой консоли. Решилось все на удивление просто.
Делается в файле
/etc/rc.d/rc.font
Его надо изменить так, чтобы подгружался нужный шрифт. Мне повезло, и шрифт, устраивающий меня, подгружался из коробки.
Но если шрифт не устраивает, то идем в /usr/share/kbd/consolefonts
и смотрим, какие там есть шрифты, соответственно изменяя /etc/rc.d/rc.font
по своему вкусу.
Например, шрифты у меня были такие:
LatArCyrHeb-19.psfu.gz
А сам
LatArCyrHeb-16.psfu.gz
LatArCyrHeb-14.psfu.gz
LatArCyrHeb-16+.psfu.gz
LatArCyrHeb-08.psfu.gz
rc.font
выглядел так:
#!/bin/sh
#
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
#
#setfont -v
setfont -v LatArCyrHeb-16.psfu.gz
Вроде все интуитивно понятно.
В файл
/etc/rc.d/rc.keymap
дописываем (или правим соответствующую по виду) строчку:/usr/bin/loadkeys /usr/share/kbd/keymaps/i386/qwerty/ruwin_ctrl-UTF-8.map.gz
Где самое интересное — файл
ruwin_ctrl-UTF-8.map.gz
В этом файле содержится описание раскладки клавиатуры и способа переключения.
Цитата из источника [2]:
Стоит прежде всего обратить внимание на ruwin под разные кодировки и варианты переключения:
$ (cd /usr/share/kbd/keymaps/i386/qwerty/; ls -1 ru*)
Конец цитаты
ru1.map.gz
ru2.map.gz
ru3.map.gz
ru4.map.gz
ru-cp1251.map.gz
ru.map.gz
ru-ms.map.gz
ruwin_alt-CP1251.map.gz
ruwin_alt-KOI8-R.map.gz
ruwin_alt-UTF-8.map.gz
ruwin_cplk-CP1251.map.gz
ruwin_cplk-KOI8-R.map.gz
ruwin_cplk-UTF-8.map.gz
ruwin_ctrl-CP1251.map.gz
ruwin_ctrl-KOI8-R.map.gz
ruwin_ctrl-UTF-8.map.gz
ruwin_ct_sh-CP1251.map.gz
ruwin_ct_sh-KOI8-R.map.gz
ruwin_ct_sh-UTF-8.map.gz
ru_win.map.gz
ru-yawerty.map.gz
На терминал, запускающийся из X, эти настройки не влияют, как и на PuTTY.
В PuTTY раскладка в консоли переключается аналогично раскладке во всем остальном Windows, а в иксах — соответственно настройкам иксов. Хотя на всякий случай я выбрал переключение левым Ctrl, которое отличается от моего виндового Ctrl+Shift, чисто на всякий случай, мало ли в PuTTY или еще где что поменяется, а я потом забуду где что менял.
1. Русификация Slackware 12
2. Русификация консоли в Slackware 14
Межлокальное
Крестина упоротая
(из классификатора «Эсхатологические мутанты»)
Пришло в голову. Посвящается В.
Мой дядя самый честный блоггер
Когда не в шутку занемог,
Он даже сам себя забанил,
И лучше выдумать не смог.
Скрипт waiter, скрашиваем скучное ожидание в своих скриптах. Еще раз про обратный отсчет на BASH
Иногда бывает, что в скрипт надо вставить скучную команду sleep
, пока что-нибудь делается, например, поднимается сетевой интерфейс или стартует демон.
Вообще, правильнее в этих случаях писать отдельные проверки, проверяя в цикле, поднялось ли, запустилось ли нужное.
Но иногда лень и где некритично можно «просто подождать», как пелось у классика. А чтобы юзеру не было скучно, и он не думал, что наш скрипт висит, можно подменить обычный sleep
небольшим скриптом, показывающим обратный отсчет, да еще и с вращающейся псевдографической фенечкой.
Я уже когда-то поднимал этот вопрос, посему с ноля все делать не придется, нужно лишь чуть доработать имеющийся скрипт.
Итак, скрипту будут передаваться два параметра. Первый обязательный, содержащий время ожидания, и второй дополнительный — сообщение, выводимое в терминал. Если второй параметр не задан, то по умолчанию будет выдано сообщение, заранее определенное во внутренней переменной скрипта.
Определяем переменные (сообщение по умолчанию, время ожидания, счетчик текущего элемента в массиве псевдографической «мельницы» и сам массив элементов):
MESSAGE="Wait"
WTIMEOUT=0
ITEM_ARR=0 #current item counter
CH_S[0]='-' #pseudographic items
CH_S[1]='/'
CH_S[2]='|'
CH_S[3]='\'
print_help()
{
echo "use waiter <time> [message]"
echo "<time> - wait time"
echo "[message] - optional text message"
}
Проверяем первый параметр скрипта, на предмет того, нужно ли вывести справку и завершить работу:
#parameters check
if [ -z $1 ];then #if no parameters
print_help
exit 2
fi
#if help request
if [ $1 = "-h" ];then
print_help
exit 2
fi
if [ $1 = "--help" ];then
print_help
exit 2
fi
Проверяем первый параметр скрипта на соответствие его числовому значению (подробнее описано здесь):
if (echo $1 | grep -E -q "^?[0-9]+$");then
WTIMEOUT=$1
else
echo "Not a number in first parameter <time>"
exit 1
fi
И второй параметр. Если он не пустой, присваиваем его значение переменной, содержащей сообщение:
if [ -n "$2" ];then
MESSAGE=$2
fi
Переходим к основной части скрипта:
Выводим сообщение для пользователя и сохраняем позицию курсора:
echo -n $MESSAGE" ("$WTIMEOUT" secounds): "
tput sc #save cursor position
Ключ -n
в команде echo
означает, что следующее сообщение будет печататься на той же строке, команда echo
не совершит перевод курсора на следующую строку.
while [ $WTIMEOUT -ge 0 ]; do
#print timeout and current pseudographic char
printf '%3s %s' $WTIMEOUT ${CH_S[ITEM_ARR]}
tput rc #restore cursor position
sleep 1
#decrease timeout and increase current item ctr.
let "WTIMEOUT=WTIMEOUT-1"
let "ITEM_ARR=ITEM_ARR+1"
if [ $ITEM_ARR -eq 4 ];then
#if items ctr > number of array items
#starting with 0 item
let "ITEM_ARR=0"
fi
done
В рабочем цикле сначала выводим оставшееся время ожидания и текущий символ из массива псевдографических элементов, шаблон %3s
команды printf
означает, что если выводимая строка меньше 3 символов, недостающие с начала строки знаки заменяются пробелами, %s
, что просто выводим строку, как она есть. Далее указываются 2 переменных — оставшееся время ожидания и символ из массива.
Следующим шагом восстанавливаем позицию курсора (и все, что будет напечатано в следующей итерации цикла затрет предыдущие значения).
Далее ждем одну секунду и уменьшаем оставшееся время на 1, а счетчик текущего элемента массива увеличиваем и проверяем, не больше ли он, чем последний индекс в массиве. Если больше — присваиваем счетчику значение 0, в следующем цикле опять будет выведен нулевой элемент.
В завершении печатаем символ перехода на новую строку, чтобы следующие сообщения в следующих или в вызывающих этот скрипт скриптах начинались с новой строки
#next message starting with new string
printf '\n'
Как скопировать текст из другого файла в редакторе mc (mcedit)
Бывает mcedit капризничает и при нажатии [Ctrl]-[Ins] не помещает данные в cooledit.clip хотя с правами все в порядке и файл есть. Что делать в этом случае, открываем на правку файл, выделяем нужный текст [F3], жмем [F9] «файл» — «копировать в файл» или [Ctrl]-[f], открывается окно и путь до cooledit.clip жмем «далее», теперь содержимое выделенного текста записано в cooledit.clip. Чтобы вставить, открываем другой файл, жмем [F9] «файл» — «Вставить файл» или [F15] (но таких клавиатур давно нет ^_^).
Мне не пришлось шаманить с файлом буфера редактора mc, но вот [Shift]+[Ins] перехватывает putty, так что оставлю от склероза.
Остальное здесь
BASH: Как проверить, число или строка в переменной.
Переменные в BASH, как известно, типа не имеют (и как же это иной раз бесит). А проверить, что в переменной — число или строка иногда надо. На помощь придет grep
и регулярные выражения.
Команда grep -E -q regexp
проверит, соответствует ли переданная grep
строка, регулярному выражению regexp
Ключ -E
укажет команде grep
, что образец есть полное регулярное выражение (см. подробности здесь )
Ключ -q укажет, что в стандартный поток ввода-вывода отправятся соответствующие образцу строки, и если хоть одна из входных строк соответствует образцу, то код завершения команды будет 0, иначе 1.
Для простого примера больше одной строки и не надо.
Осталось составить регулярные выражения для нашего случая:
Целое положительное число: ^?[0-9]+$
Целое положительное, либо отрицательное число: ^-?[0-9]+$
Для примера проверим первый параметр скрипта, задаваемый из командной строки
1. положительные целые числа
#!/bin/bash if (echo "$1" | grep -E -q "^?[0-9]+$"); then echo "Number" else echo "Not Number" fi
2. положительные и отрицательные целые числа
#!/bin/bash if (echo "$1" | grep -E -q "^-?[0-9]+$"); then echo "Number" else echo "Not Number" fi
Отображение шорткодов в блоге WordPress, а точнее их синтаксиса, и как вредно не читать мануалы
ДОЧИТАЙТЕ ДО КОНЦА, КАК НЕЗНАНИЕ ИЛИ ПРЕНЕБРЕЖЕНИЕ К МАНУАЛАМ, ЗАСТАВЛЯЕТ ИЗОБРЕТАТЬ ВЕЛОСИПЕДЫ
Столкнулся я с проблемой, а как отобразить в посте не результат работы шорткода, а его вид в редакторе, т.е. его синтаксис. Для шорткодов, в том же самом блоге не используемых — все нормально. Но для тех шорткодов, которые в блоге используешь — возникает понятная проблема. Вставляешь шорткод в блог, и движок на место шорткода вставляет результат функции, его обрабатывающий. А задача стоит отобразить написание шорткода.
Отобразить синтаксис html-тегов проще, достаточно заменить угловые скобки «<» и «>» на эскейп-последовательности html. Для символов «[» и «]», заменяющих «<» и «>» для шорткода, я не нашел эксейп-последовательностей.
Звучит так же просто, как и делается.
Вставляем следующий php-код куда удобно, хоть в
functions.php
, хоть в отдельный плагин.Я сделал отдельный плагин, но можно и в файл функций, код небольшой:
<?php
/**
* Plugin Name: shortcodes display
*/
function display_shortcode($atts, $content=null)
{
$ret=$content;
return $ret;
}
add_shortcode ('shortcode','display_shortcode');
?>
ВНИМАНИЕ! Переменную $atts
нужно добавить обязательно, хотя она фактически не используется, т.к. у данного шорткода параметров нет, но так уж устроен движок WordPress, что без наличия первого параметра не обработается и параметр $content
Вставляете шорткод, синтаксис которого нужно отобразить, между открывающим и закрывающим псевдотегом shortcode.
Единственный минус — не работает для самих тегов для отображения синтаксиса шорткодов, посему ниже картинка с примером:
Результат работы:
Все делается гораздо проще, код шорткода заключается в дублирующиеся квадратные скобки, например [ljr user="hex_laden"], т.е. сам шорткод надо заключить не в одни скобки «[» и «]», а в дублирующие «[[» и «]]»
Благодарю злого анонимуса, который хотел постебаться, и случайно помог, хехе.
Плагин, отображающий пользователей ЖЖ/LJR в блоге WordPress в стиле ЖЖ/ЛЖР
Т.е. в виде ссылки с «головастиком», как в тестовом посте
Плюс добавим возможность открывать страницу пользователя ЖЖ/LJR в отдельном окне (вкладке)
При добавлении псевдотега
<ljr user="username">
или <lj user="username">
, данный псевдотег заменяется на ссылку с дополнительной картинкой-головастиком перед ней, клик по картинке ведет к открытию страницы userinfo пользователя ЖЖ и LJR, а клик по имени пользователя — к открытию главной страницы пользователя блогосервиса. Если вставить в пост на LJR псевдотег <lj user="username">
, то к имени пользователя будет добавлена дополнительная строка — username@lj, указывающая, что дневник пользователя находится в Живом Журнале.
[ljr user="username"] или [lj user="username"]
,— вставляет на их место в посте «головастика», пользователя того или иного сервиса, дописывая в конце имени префикс @lj или @ljr, и проставляет все нужные ссылки.
— Если указан параметр
blank=1
, например [ljr user="hex_laden" blank=1]
, то ссылки на userinfo (при клике по «головастику») или ссылка на главную страницу блога, откроются в новом окне/вкладке.
1. В
wp-content/plugins
, создаем отдельный каталог lj-ljr-users
, в нем подкаталог img
, и загружаем туда графические файлы «головастиков» http://lj.rossia.org/img/userinfo.gif и http://lj.rossia.org/img/userinfo-lj.gif 2. Создаем файл
lj-ljr-users.php
в каталоге wp-content/plugins/lj-ljr-users
и вставляем в него нижеследующий код.
Код плагина
— Css встроено сразу в плагин и заточено под тему оформления, которую юзаю я, по-хорошему, надо стилевые настройки из плагина вымести, и чтоб они прописывались в
styles.css
— не определяется, пользователь это или сообщество. Но с другой стороны, это чрезмерно бы усложнило код и стабильность, вызвав необходимость обращаться к серверам блогосервисов (и обрабатывать случаи, если сервера «лежат»).
— ну может еще какие мелкие недочеты, кому надо — берите и сами исправляйте.
PHP-код на pastebin
Готовый плагин с mega.nz
Пидронимус лютует
Заглянул в логи — 25 неудачных попыток подобрать пароль и логин к админке.
Смешно, логин, который нигде не отображается, 35+ символьный пароль от админки, и что самое смешное — ежедневный бэкап постов, высылаемый на e-mail (специально для этого заведенный, который никто не знает).
Про отправку бэкапов на мыло сделаю отдельный пост, таких плагинов нет, ЕМНИС, полезно будет.
Отображение пользователей или сообществ livejournal/ljr в стиле ЖЖ/ЛЖР
Правда мы не стали заморачиваться, сообщество это или пользователь, поэтому иконка и для того, и для другого одинакова, например:
Пользователи:
rutopist@lj
tiphareth@ljr
Сообщества:
potsreotizm@lj
durdom@ljr
Наш шорткод имеет замечательную возможность — открывать нужного юзера/сообщество в новой вкладке, например:
ketmar@ljr
veniamin1@lj
cat@ljr
brigada_hella@lj
Отображение опросов из LJR (ЛЖР, «Тифаретник», LJ.ROSSIA.ORG) и, возможно, ЖЖ (livejournal) в блоге WordPress
Заметка посвящается тем, кто хочет перенести свой блог из ЖЖ, ЛЖР или другого блогосервиса, работающего на движке ЖЖ (LJ) в блог на WordPress
В ЖЖ и сайтах, работающих на движке ЖЖ существует определенный тип поста — опрос. И переносящие свой блог пользователи сталкиваются с невозможностью стандартными средствами перенести опрос из ЖЖ или (в моем примере LJR) в свой блог на WordPress.
А мы и не будем переносить результаты опроса из (в нашем случае) LJR, а будем отображать сам опрос, беря его с сайта.
+ Результаты опроса будут отображаться онлайн в нашем блоге, так же, как они будут и в блоге LJR
+ Пользователи сайта могут проголосовать в опросе, только зарегистрировавшись на старом сайте. Что плюс, если вы просто хотите сохранить результаты опроса на новом сайте/не хотите суммировать результаты из двух опросов.
— При отображении поста необходима связь с сайтом, если ее не будет или опрос будет удален, то это приведет к возникновению ошибки
— В конкретном примере я использовал довольно старую версию движка ЖЖ, которая применяется на сайте LJ.ROSSIA.ORG, посему вам потребуется подкорректировать код, если вы переносите блог с ЖЖ или другого сайта, работающего на том же движке.
1. Получить ID опроса (пользователь должен задать его вручную)
2. Выделить из страницы опроса его результаты и ссылки на участие в опросе.
3. Встроить эту информацию в пост WordPress и отобразить ее.
Создан здесь: http://lj.rossia.org/users/hex_laden/348192.html
ID: 1307
Страница опроса: http://lj.rossia.org/poll/?id=1307&mode=results
Внешний html-парсер, я использовал этот готовый
simple_html_dom.php
Сначала создаем файл с функцией, непосредственно занимающейся парсингом страницы опроса:
Read more…
И создаем главный файл плагина с функцией обработки шорткода, который, будучи вставлен в пост отобразит наш опрос:
Read more…
Для того, чтобы вставить в свой блог на WordPress опрос с LJ.ROSSIA.ORG, останется добавить в пост следующий шорткод:
[ljrpoll id="<poll_id>"]
Где <poll_id>
идентификатор опроса, например 1307
Тестовый пост с отображенным опросом здесь:
http://tolik-punkoff.com/2016/07/26/opros-s-lj-rossia-org-otobrazhaemyj-v-wordpress/
Код плагина доступен на PasteBin:
getpoll.php
Основной файл плагина
Или можно скачать архив с плагином с mega.nz
Папку из архива надо поместить в директорию wp-content/plugins
вашего сайта, после чего зайти в консоль на страницу плагинов (или обновить ее) и активировать плагин LJR-pollDisplay
Опрос с LJ.ROSSIA.ORG, отображаемый в WordPress
Warning: file_get_contents(): stream does not support seeking in /home/punko102/domains/tolik-punkoff.com/public_html/wp-content/plugins/ljr-poll/simple_html_dom.php on line 75
Warning: file_get_contents(): Failed to seek to position -1 in the stream in /home/punko102/domains/tolik-punkoff.com/public_html/wp-content/plugins/ljr-poll/simple_html_dom.php on line 75
Позже напишу, как я такой финт ушами сделал (ну не совсем я, финны с китайцами, точнее с камбоджийцами даже, я только идею подал и над процессом руками водил, то бишь советовал):
ERROR: CONNECTION ERROR [http://lj.rossia.org/poll/?id=1307&mode=results]
Няня-анархия
via glebo@ljr
Ящеръ
Просматривая старые записи нашел еще Панкарем опубликованного Ингерманландского Ящера (после разгрома оным Московии, по всей вероятности XD)
Скрипт пакетного переименования файлов
Опять же, с графическим интерфейсом на GTK. Тестировался на Puppy Slacko и на «большой» Slackware 12 версии:
Мопед, опять же, не мой.
Что умеет:
0. Последовательно пронумеровать все файлы в директории.
1. Найти префикс, например вида SCNJ-число, как на цифровых фотоаппаратах, и переименовать во что-то заданное пользователем (например kotik-число).
2. Сохранить переименованные файлы в другом каталоге.
3. Найти некоторую последовательность символов в имени файла и заменить их на другую (если другая последовательность не введена, то найденная последовательность будет удалена из имени файла)
4. Удалять из имени файла специальные символы и пробелы.
5. Заменять пробелы на знак подчеркивания (_).
6. Преобразовывать символы в имени и расширении файла в нижний регистр.
7. Транслителировать имена файлов.
Скрипты, делающие скриншоты с видео
С графическим интерфейсом.
Сразу говорю, мопеды не мои, а хороший знакомый кодер к тем скриптам только что интерфейсы и дорисовал. Работает под GTK 3 в любых графических средах, где есть соответствующие библиотеки:
Вариант #1: делает несколько файлов со скриншотами. Вариант #2: делает несколько скриншотов (сколько задано) в одном графическом файле.
Скрипт #1 на PasteBin
Скрипт #2 на PasteBin
Скачать скрипт #1 на MEGA.NZ
Скачать скрипт #2 на MEGA.NZ