vitus_wagner: My photo 2005 (Default)
Вот тут: https://github.com/citp/ad-blocking
лежат proof of concept расширения к браузерам, демонстрирующие что можно написать абсолютно недетектируемый скриптами блокировщик рекламы.

А также еще и расширение (только для chrome) которое распознает sponsored content в фейсбуке.
vitus_wagner: My photo 2005 (Default)
Задумался над идеей назначать клиентам OpenVPN ip-адреса по значению поля subjectAltName в их сертификатах.
RFC 5280 предусматривает тип поля IP в SubjectAltName, и OpenSSL его вполне поддерживает.

Идея хороша тем, что при подключении нового клиента не нужно вообще ничего делать на сервере. Удостоверяющий центр, выписывая клиенту сертификат (что все равно надо сделать) выделяет ему IP и DNS-имя и прописывает иъ в этот сертификат. А задача сервера - просто согласиться с тем что подписано удостоверяющим центром.

Правда, похоже просто так не получится. Что-то я не вижу там, чтобы client-connect скрипто получил доступ ко всему сертификату или хотя бы к subjectAltName.

Upd Благодаря [personal profile] dzz родилось более простое решение:
Сейчас у меня в скрипте client-connect соответствие CN сертификата клиента и выданного ему IP записывается в динамическую зону DNS. Чтобы на того клиента логиниться по имени.

Так вот - сначала надо в DNS посмотреть, и если там это CN есть, то сказать openvpn-у "этому дай вот этот адрес". А вот уж если адреса такого в DNS нет - назначать первый свободный.
Это, конечно, не гарантирует от того что адрес будет переисиользован пока клиент будет в оффлайне. но все же.
vitus_wagner: My photo 2005 (Default)
Почему-то злые дуровцы в очередном релизе Telegram Desktop поменяли раскладку файлов, в которые оно пишет.

Раньше у меня телеграм пускался

firejail --profile /etc/firejail/telegram.profile --private-home=.TelegramDesktop  /usr/local/lib/Telgram/Telegram


и все работало. Потому что не дам я некту, своих файлов из ${HOME}, хоть он дерись.

После апгрейда - работать перестало - при каждом запуске заново просит ввести код из SMS-ки.

Создал каталог .telegram-home, передвинул ~/.TelgramDesktop туда, запустил

firejail --profile /etc/firejail/telegram.profile --private-=.telegram-home  /usr/local/lib/Telgram/Telegram


Заработало. Но выяснилось что в .telegram-home оно создало не только .TelgramDesktop

Оно теперь еще .local/share/TelegramDesktop создает, и, похоже, в нем все и держит.

Но вообще, похоже, надо сильнее эту гадость от системы изолировать. Примерно как я skype изолирую.
vitus_wagner: My photo 2005 (Default)
https://www.theregister.co.uk/2017/04/06/canonical_cuts_jobs_with_unity_bullet/

https://www.theregister.co.uk/2017/04/05/ubuntu_euthanizes_unity/

Unity отменили, Ubuntu phone отменили, сокращают от 30 до 60 процентов сотрудников, причем в первую очередь режут отделы разработки продукты, инвестиции в них медленнее окупаются, а сохраняют поддержку и сейлзов - то что приносит в компанию быстрые деньги.

Интересно, дистрибутивы-то они по прежнему раз в полгода клепать будут или как?

А то убунта замечательно держала нашу релизную группу в тонусе - каждые полгода нужно по всей цепочке от pgbuildfarm до выходного тестирования заводить новые виртуалки, править spec-и, но самое главное - не забывать ВЫКИДЫВАТЬ из всего этого хозяйства снятые с поддержки релизы.

И сисадмины у нас в компании очень Trusty Tahr любят. Что, теперь их всех на Stretch переучивать?

В общем, мучивший всех вопрос "Как будет называть убунта свои дистрибутивы, когда латинский алфавит кончится (а кончится он уже с тем релизом, который в этом месяце)" похоже, разрешится несколько неожиданным образом.

Тэг rip пока не ставлю, может еще побарахтается.
vitus_wagner: My photo 2005 (Default)
http://esr.ibiblio.org/?p=7421

Раймонд умный пост написал по поводу концепций, которые лежат под Unix way. Я эту мысль про семантическую локальность три дня думать буду.

Oh, yes!

Mar. 11th, 2017 11:17 pm
vitus_wagner: My photo 2005 (Default)
Том Лейн закоммитил мой патч!

Правда это был не какой-то большой и серьезный патч, разработанный в рамках служебных обязанностей, а небольшой хоббиистский патч, который я написал на новогодних каникулах исключительно потому что заметил некую неполноту морфологического ящика.

Вот в PL/Python был контекст-менеджер, позволявший выполнять кусок кода в субтранзацкции, а в PL/Tcl почему-то нет. Хотя создавать собственные управляющие конструкции в Tcl гораздо проще, чем контекст-менеджеры в python (особенно если речь идет о Postgres. где python поддерживатеся начиная с 2.3 и до 3.6)

TTS

Mar. 8th, 2017 06:25 pm
vitus_wagner: My photo 2005 (Default)
Попробовал тут tts на десктопе. Тупо и в лоб

apt-get install festival festvox-ru
festival --tts somefile.txt

Вроде работает не хуже, чем это делает андродиный svox.
Правда, обнаружилось что оно ломется на m-тире и кавычках-ёлочках. Пришлось немножко попатчить файл msu_ru_nsh_lexicon.scm из пакета festvox-ru.

В итоге, правда, маркдауновские файлы все равно приходится проигрывать посредством

pandoc -t plain -o - filename.mkd|festival --tts

А то на звездочках, использованных для выделения курсивом, оно ломается.

Теперь осталось придумать какую-нибудь обертку вокруг FB2ToTxt.xslt чтоб можно было вперед-назад абзацы проматывать.
vitus_wagner: My photo 2005 (Default)
https://www.technologyreview.com/s/603637/how-a-college-kid-made-his-honda-civic-self-driving-for-700/

Студент сделал себе автопилот для машины из смартфона и свободного ПО.

Оно правда только для поездок по трассе (но это самое нудное и клонящее в сон). И HCL пока не впечатляет.
vitus_wagner: My photo 2005 (Default)
Наткнулся на ЛОРе на забавный проект:
http://unde.sourceforge.net/ru/

Чем-то это перекликается с некоторыми моими идеями изложенными под тэгом UNG. Ну то есть Раскина человек прочитал, понял, и местами (как и я) не согласился. Например, я полностью с ним согласен в том, что борьба с режимами должна иметь границы.

У него есть вполне разделяемая мной идея, что интерфейс должен быть самообучающим. В том смысле что активно подсказывать более эффективные способы работы с ним. Заткнуть gap между пользованием GUI и командной строкой - это очень важно. Потому что между командной строкой и скриптингом барьер уже отсутствует.

С идеей "все есть директория" вместо "все есть файл" я игрался году в 93-94, когда еще не знал что на свете существуют не то что Mind Maps, но и файловые системы со множественными hard и sym-линками.

А вот идея мир есть текст все есть документ, и любая активность пользователся сводится к его редактированию, мне активно не нравилась уже тогда. Эппловская какая-то идея. Сводит использование компьютеров исключительно к офисной деятельности. В то время как надо опираться на управление процессами, идущими частично независимо от данного компьютера и его пользователя - групповая работа, управление всякими роботами и серверами и т.д. Документ - это частный случай процесса, отличающийся тем, что в нем никогда ничего не происходит без явного действия одного из имеющих право его модифицировать пользователей.

Очень интересной показалась идея двумерного расположения объектов в контейнере. В смысле "ты всегда найдешь файл там, куда ты его положил". Помнится в Communiware мы тоже были вынуждены вводить "человеческий" порядок сортировки. Поскольку критерии сортировки, которыми пользователю удобно пользоваться. неформализуемы.А использование двумерного порядка вместо одномерного существенно расширяет возможности удобозапоминаемого хранения.
vitus_wagner: My photo 2005 (Default)
Один нехороший человек использует в тестах алиасы таблиц на японском:
EXPLAIN (COSTS false) SELECT * FROM s1.t1 あいう WHERE あいう.c1 = 1;

Причем, похоже. делает это специально, дабы убедитсья что его код корректно работает с
не-ASCII-символами в алиасах таблиц.

А я потом беру и запускаю эти тесты мало того, что на десятом Солярисе, так еще и с LC_ALL=C.
В результате на сервер pgbuildfarm прилетает лог, который является чем угодно, но только не valid UTF-8.

При попытке запихнуть его в постгресовую же базу, но уже в нормальной старенькой убунте с нормальной юникодной локалью, сервер говорит клиенту "что за пакость ты мне прислал, пошел вон".

Пришлось пропускать ввод в порядке санитизации через Encode::decode('UTF-8',$data,Encode::FB_PERLQQ).
Теперь хоть видно что там не так. (нет, я не буду вспоминать как оно пыталось на json Storable::thaw делать)..
vitus_wagner: My photo 2005 (Default)
Превратил жуткую свалку fb2 и epub-файлов, в которой мог разобраться только FBReader, да и то не сразу, в более-менее структуруированное хранилище,
вида перваябуква/автор/название

Была еще идея насоздавать симлинков для книг с более чем одним автором, но решил пока не связываться.

Большую часть работы проделал вот такой скрипт )
Скрипт, конечно наколеночный и кривой. Поддержки epub пока нет, хотя смысл там примерно тот же самый ).
Ну и еще файл сканируется дважды. Но я решил что проще это делать дважды, чем
разгребаться с эскейпингом средствами xslt.

О, кстати придумал как обойтись без искейпинга. Вывод xmlstarlet который пишет автора на первой строчке, а title во второй, перенаправляем в
(read author
read title
# do what we need with author and title
)
. В результате внутри xmlstarlet нужно заэскейпить только ньюлайны.

P.S. А если для фотографий аналогичный скрипт сделать? Чтобы валить их все в кучу, чуть ли не rsync-ом, а скрипт пусть потом разгребает по датам и местам.
vitus_wagner: My photo 2005 (Default)
Выяснил, в чем причина того, что хецнеровская виртуалка была не доступна по IPv6:

Оказывается, я там что-то лишнее перекрыл на файрволле, и поэтому оно и не работало.
Файрвол был более-менее прямолинейно скопирован с IPv4 конфигурации и выглядел вот так:

правила ip6tables )

Вопрос в том, что я забыл там разрешить, что в итоке отвалилось всё?

vws 0.5

Jan. 14th, 2017 10:12 pm
vitus_wagner: My photo 2005 (Default)
В связи с необходимостью сетапит новый билд-сервер, выпустил очередную версию vws. На самом деле у нас vws уже почти год в production работает. Т.е. в итоге задача "сделать простые вещи удобнее, чем в virsh" вполне решена.

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

Буду теперь его везде ставить из deb-пакета.
vitus_wagner: My photo 2005 (Default)
Как траффикт-то в debian-russian упал. За весть 2016 год меньше полутора тысяч писем. А раньше по пять тысяч в год было.

Кстати, в прошлом году я чуть ли не в первый раз в жизни получил в этом списке осмысленный совет на тему как решить мою проблему. До того я там советы в основном давал.
vitus_wagner: My photo 2005 (Default)
Международная конференция PgConf.Russia 2017 | 15–17 марта, Москва, Digital October

А вот такая эмблема будет у нашей следующей конференции
vitus_wagner: My photo 2005 (Default)
От разработчиков Python.

Интересно, что монотонные и ограниченные мысли сходятся, и у них теперь тоже в виндовой консоли (правда еще и в файловой системе) юникод по умолчанию. Как у нас в PostgresPro-шном psql.

Собраться, что ли, наконец оформить этот патч для пропихивания в community. Или сначала все файловые операции на *W перевести, как питонисты.
vitus_wagner: My photo 2005 (Default)
Выкатили наконец, "закрытую" версию нашего продукта.

С 64-битными transaction id, автономными транзакциями (это такая субтранзакция, которую можно закоммитить раньше объемлющей), встроенным планировщиком и хинтами. Ну и еще с пачкой менее значительных фич. (ну и со всеми фичами Pgpro standard - pathman, arman pg_probackup, covering indexes и прочая, и прочая).

Еще там есть scram authentication - этот не наша фича, патч к 10-ке by Michael Paquier лежит на коммитфесте.
Для параноиков, которых md5 и sha1 в качестве метода хэширвоания паролей не устраивают.

В общем читайте и облизывайтесь.

Впрочем, в стандартной версии тоже уже много чего хорошего. В частности, 1С-патчи уже там. Чтобы не искать - ссылка на страничку даунлоада.
vitus_wagner: My photo 2005 (Default)
Продолжаю разбираться с letsencrypt. Понятно что это гадость. вроде systemd, но деваться некуда. Все альтернативные бесплатые CA за этот год были успешно уничтожены.

Обнаружил, что автор acme-tiny рекомендует по крону повторно выписывать сертификат на тот же самый ключ.

По-моему, в этом вопросе он глубоко неправ. Плтому что с точки зрения пользователя сайта смена сертификата и смена ключа полностью эквивалентны. Браузер не смотрит на ключ, браузер смотрит на то, что ключ соответствует указанному в сертификате.

И если уж мы напрягаемся на предмет того, чтобы менять сертификат раз в три месяца, или раз в месяц, то надо менять и ключ. Потому что это позволяет ограничить риски от утаскивания ключа. Ежели кто попятит закрытый ключ с вашего сервера, то черед весьма недолгое время вы его перегенерируете, а сертификат на старый перестанет действовать. Если же вы выпишите на старый ключ новый сертификат, то тем самым предоставите злоумышленнику возможность пользоваться старым ключом еще три месяца.

Правда, как обычно, идея перегенерации ключа по крону несет свои собственные риски.
В текущем виде acme-tiny требует доступа только к ключу аккаунта на letsencrypt и к CSR. То есть скрипт, активно работающий с сетью и теоретически могущий быть проэксплойченным через дырки в стандартной библиотеке питона, самом питоне и libc, не имеет доступа к вашему закрытому ключу.

Если же мы генерируем ключ, то какие-то части того задания, которое отвественно за перевыпуск сертификата, должны работать с повышенными правами.

То есть нужно аккуратно поделить задачу на три части

1. Сгенерировать новый закрытый ключ и CSR. В принципе, для этого никаких прав не нужно. Нужно только не пересекаться по правам с шагом 2, чтобы у того доступа к закрытому ключу не было. С другой стороны, поскольку эта операция ничего особо принципиального не делает, только пишет в файлики в формате pem, то не жалко и от рута запускать.

2. Посредством acme-tiny или еще какого auditable клиента к letsencrypt получить сертификат.

3. Убедиться в соответствии сертификата ключу и домену, и положить новый ключ и новый сертификат куда надо. Единственная операция, которая требует повышенных привилегий.

Обдумывал мысль, как бы запихнуть операцию 2 в chroot но решил что для acme-tiny это явно не вариант - в chroot придется тащить всю питоновскую инфраструктуру. Пожалуй, с dehydrated это бы лучше получилось.

Идея, естественно в том, чтобы создавать дерево с бинарниками для chroot непосредственно перед запуском скрипта, копируя бинарники из основной системы, а потом уничтожать, откопировав оттуда только полученный сертификат.
vitus_wagner: My photo 2005 (Default)
По совету Михаила Касаджикова в debian-russian пробовал поставить offroadosm. Это порт OsmAnd на JavaSE, т.е. работать будет в любой десктопной системе.
Как оно работает с GPS и строит маршруты еще не проверял, но карту рендерит правильно. И управление визуализацией сделано правильно, в десктопном стиле.

Правда вот быстрый поиск (не)работает почему-то через запросы к внешнему сайту, что меня категорически не устраивает. Мне-то нужно полностью оффлайновое решение.

Но "медленный" поиск по адресу вполне работает, так же как и в OsmAnd.
vitus_wagner: My photo 2005 (Default)
Приходи ко мне начальник,
Я намаялся один
Тут звонит в поддержку чайник
Мы вдвоем его съедим.

Очень хочется посоветовать человеку, который не понимает почему пакет libicu57 не удовлеторяет зависимость от libicu52:

Если ты мужик, этого не понимаешь без подсказок, тебе не стоит ставить Debian stretch раньше февраля следующего года.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

April 2017

S M T W T F S
       1
2 3 4 5 6 7 8
91011 12 13 14 15
16 17 18 19 2021 22
23 24 25 26 27 2829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 29th, 2017 07:25 am
Powered by Dreamwidth Studios