vitus_wagner: My photo 2005 (Default)
Тут вот [personal profile] nataraj рассказывает о своем опыте приобретения коммерческих сертификатов для https сайтов.

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

Поэтому я использую letsencrypt. В качестве клиента я использую acme-tiny, которую обвязал своими скриптами с тем, чтобы процесс был полностью автоматизирован и сертификаты перевыпускались автоматически.

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

Второй - от специального непривилегированного юзера и выполняет собственно взаимодействие с letsencrypt.
Можно было бы в контейнер какой засунутЬ, но я счел это лишним. acme-tiny я доверяю, потому что я ее читал. (там всего 200 строк на питоне).

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

Скрипты можно посмотреть здесь.
vitus_wagner: My photo 2005 (Default)
https://eprint.iacr.org/2017/351.pdf

Я конечно, считаю что все изделья Бернштейна относятся к категории "может это не практично, согласитесь - эстетично" и не понимаю тех, кто держит qmail в продакшне, да и основная претензия к tox у меня такова - почему они DJB-шную криптобиблиотеку используют, но тем не менее штука забаваная.
vitus_wagner: My photo 2005 (Default)
Написать на питноновском unittest такие тесты, чтобы в их код было страшно заглядывать, это надо постараться.
Но некоторым товарищам это удается.

Например, вместо

with self.assertRaisesRegexp(SomeException,'сообщение об ошибке'):
    do_something()


пишут:

try:
   do_something()
   # we need to die here because exception is what we expect
   exit(1)
except SomeException as e:
   self.assertEqual(True,'сообщение об ошибке' in e.message)



При этом это те же самые люди которые громко кричали что использовать перловый unit-test фреймворк Test::More (и его постгресовые расширения) это некошерно потому что перл это бяка и вообще. Ну если вы настаиваете на использовании какого-нибудь инструмента, так хоть выучите его!
vitus_wagner: My photo 2005 (Default)
Тут Шнайер пишет, что появилась технология. котрпя позволяет по примерно минуте звучания определить ключевые характеристики голоса человека и его успешно имитировать.

Его, конечно, волнуют security implication, описанные еще в русских сказках, где кузнец выковывал (forge) волку тоненький голосок, чтобы пройти аутентификацию при входе в домик козы.

А меня больше волнуют художественные приложения. Этак если это дело пойдет, следующее поколение TTS плагинов будет пьесы в лицах зачитывать.
vitus_wagner: My photo 2005 (Default)
Еще прошлой осенью, когда я разорвал контракт с "Мегафоном", симка которого у меня использовалась в деревенском модеме, я решил что попробую Tele-2. Потому что представление о том, как работают в нашей местности Билайн и МТС у меня есть по телефонам. Хреново работают, могли бы лучше.

В отпуск я приехал с билайновской симкой, которая была куплена для Бужаниново. Но утверждается что работает по всей России. Правда, я ее втыкал не в родной модем. Разбираться как работает в дополопной точке доступа WL500Gold новомодный 4G модем в котором если не памяти, то флэш-диска точно больше, чем в той точке доступа, мне было лень. Тем более что 4G покрытия вроде ни у кого из операторов нет все равно, а мегафоновсий модем я давно разлочил.

Эксперимент в течение трех дней подтвердил что билайн в качестве интернет-провайдера в этих краях не пригоден. Коннект постоянно терял даже скайп. Ну нет так нет, В конце концов эта симка не для этой местности покупалась.

Сегодня поехали в Селижарово и я стал пытаться купить симку Теле2. Оказалось, что это не так просто. Офиса Теле2 на том месте, где я привык его видеть, и где его показывают до сих пор Яндекс-Карты (Карла Маркса 14) уже нет.

Глазастый ребенок разглядел рекламу Теле-2 на одном магазине, мимо которого мы проезжали на машине (торговый дом на углу центральной площади). Мы остановились и туда зашли. Нам сказали что здесь больше не продают теле-2, идите в кафе "Молодежное". Пошли в кафе. Там тоже реклама висит чин по чину и даже корытце для денег с логотипом Теле-2. Но контракты не продают, говоярт "запретили это нам". Кто и зачем - не уточняют.

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

Теперь вот сижу в интернете через нее. Вроде ничего работает. Яндексовский тест показывает 2 мегабита в секунду входящих и 100кбит/c исходящих. Хотя для скайпа 100кбит исходящих пожалуй мало.
vitus_wagner: My photo 2005 (Default)
https://www.debian.org/News/2017/20170425

Ранние IP-протоколы, возникшие с интернетом, отличались избыточной сложностью.
Недаром в названии протокола SMTP, фактически первого из следующей генерации, буква S означает Simple. Кроме того они предназначены для сети, где нет никого злонамеренного.
Интернет 80-х был "сетью друзей" в куда большей степени, чем позднейшее Фидо.

В принципе, большая часть тех протоколов уже мертвы. Часть - потому что нет таких задач, никто сейчас и не в курсе про то, что такое протокол ident или файл .plan, используемый в протоколе finger.

Фактически мертв и telnet. Хотя я еще помню времена, когда клиент telnet использовался как универсальный тестовый клиент для всех текстовых протоколов, его уже давно вытеснил netcat.

Только ftp еще хоть как-то шевелился. Несмотря на безумно замороченную конструкцию с двумя сокетами, путаницу ascii/binary active/passive он как-то по инерции продолжал сущестовать.

Но видимо его время наконец пришло. Если уж весьма консервативный проект Debian отключает доступ к своим ресурсам по ftp, оставляя только http.
vitus_wagner: My photo 2005 (Default)


Или еще о кофе и клавиатуре.
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)
Не успели Ирин ноутбук починить, как мой сдох. Блин, только-только успел привести в порядок смартфон.
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)
Мы строили, строили и наконец построили
Мультимастер-кластер, адаптивное планирование запросов, нормальный декларативный синтаксис партиционирования.
vitus_wagner: My photo 2005 (Default)
Подумавши некоторое время над концепцией семантической локальности я пришел к в некотором смысле противоположной концепции "общего контекста коммуникации".

То есть меня в общем довольно давно волновал вопрос, почему за 40 лет не появилось языка программирования, который был бы shell лучше чем unix shell. То есть более высокоуровневый, с меньшим порогом вхождения. позволяющий легко формулировать сложные концепции.

Почему-то все попытки "улучшить" shell вели в строго противоположном направлении "давайте напихаем туда более низкоуровневых конструкций, массивов, объектов с методами, типизации". Да, эти конструкции, которые вполне себе высокоуровневы если смотреть с уровня ассемблера, даже портабельного, на уровне шелла - глубокие потроха, которые не надо выворачивать наружу.

Подумав, я пришел к выводу что

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

2. Должна быть некая система умолчаний. Сейчас в шелле контекст выполнения состоит пожалуй, из имени текущей директории (и. соответственно относительных путей). Ну с некоторой натяжкой - еще и списка фоновых задач из него запущенных - %1 меняет свое значение по ходу выполнения.

В более низкоуровневых языках программирования, которые являются аналогом письменной речи, система контекстов куда более развита. Начиная с let в Lisp-е и with в Pascal, и кончая развесистыми системами алиасов при импорте модулей в Python и Go. Где-то в промежутке namespaces в C++ и присваивание glob references в Perl. В общем придумано много способов сказать "сегодня это слово у нас значит то-то". Но это именно способы, характерные для письменной речи, причем даже скорее для научных и юридических текстов, а не для художественных и не для частной переписки.

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

(три дня эту мысль думал, а все равно непричесанная какая-то. Или я поторопился и надо было еще сутки подумать?)
vitus_wagner: My photo 2005 (Default)
http://esr.ibiblio.org/?p=7421

Раймонд умный пост написал по поводу концепций, которые лежат под Unix way. Я эту мысль про семантическую локальность три дня думать буду.
vitus_wagner: My photo 2005 (Default)
Про то как сделать, чтобы начинающие программисты лучше работали:

https://ask.slashdot.org/story/17/03/11/197257/ask-slashdot-how-do-you-make-novice-programmers-more-professional



Один из комментариев из этой дискуссии был даже вынесен в отдельный пост что для /. нехарактерно:

The problem is that our industry, unlike every other single industry except acting and modeling (and note neither are known for "intelligence") worship at the altar of youth. I don't know the number of people I've encountered who tell me that by being older, my experience is worthless since all the stuff I've learned has become obsolete. This, despite the fact that the dominant operating systems used in most systems is based on an operating system that is nearly 50 years old, the "new" features being added to many "modern" languages are really concepts from languages that are between 50 and 60 years old or older, and most of the concepts we bandy about as cutting edge were developed from 20 to 50 years ago. It also doesn't help that the youth whose accomplishments we worship usually get concepts wrong. I don't know the number of times I've seen someone claim code was refactored along some new-fangled "improvement" over an "outdated" design pattern who wrote objects that bare no resemblance to the pattern they claim to be following. And when I indicate that the "massive view controller" problem often represents a misunderstanding as to what constitutes a model and what constitutes a view, I'm told that I have no idea what I'm talking aboutâ"despite having more experience than the critic has been alive, and despite graduating from Caltechâ"meaning I'm probably not a complete idiot.) Our industry is rife with arrogance, and often the arrogance of the young and inexperienced. Our industry seems to value "cowboys" despite doing everything it can (with the management technique "flavor of the month") to stop "cowboys." Our industry is agist, sexist, one where the blind leads the blind, and seminal works attempting to understand the problem of development go ignored.


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

E-Ink

Mar. 6th, 2017 10:42 am
vitus_wagner: My photo 2005 (Default)
Задумался вот, а не обзавестись ли мне по причине кончины смартфона книгочиталкой на электронных чернилах.

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

Правда, беглый обзор того что предлагают на рынке читалок привел к каким-то неутешительынм выводам.
В основном 6" модели предлагают разрешение 800x600. Причем за такие деньги, за какие можно купить 7" планшет с 1280x800 (правда, с богомерзким андроидом, на который непонятно как библиотеку синхронизировать)

Кстати, читалки уже научились работать с fb2.zip? А то какой-то древний lbook, которым уже лет пять пользуется моя мама, требует чтобы ему fb2 распаковывали прежде чем туда заливать.

То есть требования к читалке у меня такие

1. Wi-Fi не нужен. Синхронизировать библиотеку можно и по usb. Хотя, конечно если там будет из коробки ssh и rsync, то можно и wifi.
2. Разрешение экрана побольше, побольше. От 300dpi бы не отказался.
3. Качественная поддержка fb2 и epub.
4. Не более 8"
5. Платить много денег не согласен.

Про Go

Mar. 1st, 2017 05:58 pm
vitus_wagner: My photo 2005 (Default)
Go похож на C, который укусил Python. А свечку им при этом держал Tcl, иначе откуда там открывающая фигурная скобка обязательно на той же строке что и for или if,

Но вообще ряд идей при прочтении мне понравился.
Особенно его relaxed типизация. Которая достаточно строга почти всегда, кроме тех случаев, когда это неудобно.


Хотя, конечно, если этот язык распространится, словосочетание panic attack будет в IT-шных кругах значит совсем другое.

И конечно, блин, стали дизайнить язык, заточенный под обработку событий, и имеющий прямую и красивую объектную модель, а GUI-тулкит к нему забыли придумать.
В результате народ делает биндинги для кривых тулкитов, разработанных для языков у которых объектная модель основана на наследовании, а не на композиции.

Вообще удивительно, насколько хорошие программисты не любят GUI, и пытаются свалить его программирование на каких-то чайников, не умеющих ясно мыслить (в результате чего рождаются всякие Gtk и прочие WX).
vitus_wagner: My photo 2005 (Default)
На ЛОР рекламируют краудфундинг на семидюймовый ноутбук с убунтой.

Судя по картинкам, это примерно половинка от по размерам EeePC, при этом по возможностям - вполне приличная машинка.

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

Очевидно, что в спокойной обстановке читать с 7" экрана гораздо удобнее, чем с 4". Пожалуй уже и djvu и отсканированные pdf, тем более при разрешении 1920x1024 будут вполне читаемы.

Правда, ноутбучный форм-фактор это практически 100% работа в альбомной, а не портретной ориентации.

В неспокойной обстановке, например в метро или в очереди в поликлинике, читать с 7" планшета наверное, куда более удобно чем с 10" планшета, не говоря уж о EeePC. АSUS Transformer у меня как-то в такой ситуации поплатился экраном - я его запихнул в сумку, не присоединив к клавиатуре, которая в закрытом состоянии там экран защищает. Но вообще у меня как-то трансформер проигрывал конкуренцию смартфону на предмет чтения в транспорте. Дело дошло до того что я даже полученный от редактора вычитанный текст "Детей Пространства" пытался вычитывать на телефоне, а не на планшете.

Таскать собой постоянно устройство размером 18x10x2cм и весом полкило - это уже как-то на верхнем пределе. Во внутренний карман пиджака, пожалуй, еще влезет, в нагрудный карман рубашки - явно уже нет. Туда и Nokia N800 не очень лезла.

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

Идеально, конечно было бы взять 7" планшет из современных с USB-клавиатурой - там будет и GSM-тракт и GPS, но где же взять такой планшет, чтобы его железо полностью поддерживалость открытым ПО. Потому что чем дальше, тем меньше мне нравится то, как ограничивает возможности пользователя по контролю над устройством, андроид.
vitus_wagner: My photo 2005 (Default)
Традиционная задача - как попасть по ssh на хост, не имеющий достижимого извне IP.
В данном случае в варианте "как мне попасть с работы домой".

У домашней машины есть VPN в которую включен хостинговый сервер.

Поэтому в принципе годится любой вариант ssh-через-прокси.

На эту тему теперь есть большой и толстый cookbook.

Начинаем применять рецепты оттуда по очереди

1. ssh -J www.wagner.pp.ru wagner

Увы, у меня на рабочей машине jessie. В нем openssh 6.7, он -J еще не умеет. С виртуалок со stretch и FreeBSD 11 попробовал, работает. Но dist-upgrade на stretch говорить рано. И уж точно не для этой фичи.

2. ssh -o "ProxyCommand ssh -W %h:22 www.wagner.pp.ru" wagner

Это мой openssh умеет. И, в принципе это у меня сейчас штатный способ

3. ssh -o 'ProxyCommand ssh www.wagner.pp.ru nc %h 22' wagner

Это умели и версии openssh, существовавшие десять лет назад. Сейчас я этого даже пробовать не стал. Зачем, если -W есть?

Далее вот такой интересный вопрос - в .xsessionrc на работе у меня все равно прописано открытие ssh-сессии на мою vds с -D 4080. Чтобы использовать этот порт в качестве web-прокси. Потому что не хочу я ошибку 451 видеть.

А может этой самой socks прокси можно еще воспользоваться для хождения по ssh?
Увы, openssh хорошо умеет быть socks-сервером, но не обучен быть socks-клиентом.

В вышеприведенном cookbook рекомендуют использовать netcat в качестве ProxyCommand.

ssh -o "ProxyCommand nc -X 5 -x localhost:4080 %h %p" wagner

Полез смотреть, а-а-а, netcat в jessie не понимает ни -X ни -x. Посмотрел повнимательнее, все гораздо хитрее - в jessie есть четыре разных нетката. И netcat-openbsd все что надо понимает. А у меня почему-то стоял netcat-traditional.

Остался нерассмотренным вопрос использования опции -w в ssh для организации полноценного VPN средствами самого ssh. Но об этом как-нибудь в следующий раз.
vitus_wagner: My photo 2005 (Default)
Тут Стас Келвич подсказал, что в наше время надо слать нотификации о завершении всяких длительных процессов через мессенджеры.

Мне эта идея понравилась и я поменял нотификацию об окончании бэкапа с десктопного notify-send на sendxmpp.

А то меня все время доставало что эта нотификация испаряется с экрана быстрее, чем я успеваю её заметить. Особенно если я, запустив бэкап, от машины ухожу (что правильно, так как иначе есть шанс что rsnapshot заметит что по ходу бэкапа файлы какие-то менялись. Не в ЖЖ же втыкать на протяжении всего бэкапа).

Джабберное сообщение от юзера backup никуда с экрана не пропадает, пока сам его не закрою.

Недостатком этого решения является то, что в процедуре нотификации задействован не только локальный комптютер, но и джаббер-сервер (А соответственно и канал от одного к другому). Сервер, конечно тоже мой. Но тем не менее.
vitus_wagner: My photo 2005 (Default)
Люди, которые удивляются что я перетащил серверную функциональность из дома на хостинговую площадку, не понимают одной простой вещи:

Сервер, расположенный в квартире, где ты не живешь, объединяет худшие недостатки хостингового сервера с худшими недостатками домашнего.

То есть в случае любой проблемы туда надо ехать. А не просто дождаться конца рабочего дня, когда ты туда так и так попадешь. Хотя для почты и downtime в 8 часов может быть слишком большим.

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

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

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2017

S M T W T F S
     123
4 5 6 7 89 10
1112 1314 15 1617
18 19 20 2122 2324
252627282930 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 26th, 2017 08:43 am
Powered by Dreamwidth Studios