filin: (Default)
Friday, July 9th, 2021 07:14 pm
Это не заклинание из псевдонаучной фэнтэзи, а всего лишь натуральный сок. Но знание этого перевода некоторое представление о предмете физики и химии даёт.
filin: (Default)
Friday, May 8th, 2020 05:13 pm
Вечер. В соседней комнате дамы по зуму поют песни. Доносится:

— А если транспонировать в «ля» или «ми»?

Я:

— А если транспонировать в «ля-ля-ля»? Или в «ми-ми-ми»?

(И по некотором, гм, размышлении: а вот интонировать в «ля-ля-ля» или в «ми-ми-ми» — действие, имеющее смысл...)
filin: (Default)
Thursday, April 16th, 2020 11:04 am
Удивляет, что я не вижу сказанной в сети одну любопытную вещь.

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

Причем достаточно было всего лишь отдать распоряжение не о тотальной, а о выборочной проверке пропусков, если уж хотелось контроля.
filin: (Default)
Tuesday, April 14th, 2020 12:16 pm
Работает.

Для пропуска в медучреждение даже удаётся уложиться в одну SMS. Благо для SMS там ни фио, ни адреса не нужны. Паспорт, дата рождения, краткое название учреждения (в свободной форме).

Как я и предполагал, если поля для госномера, Тройки и Стрелки не заполнять, то их надо просто не заполнять. Оставлять пустыми. Никаких дополнительных звёздочек туда писать не надо.

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

Как и вчера, пропуск выдали на 15 апреля.

Текст запроса пропуска не зависит от текущей даты. Т.е. один и тот же текст можно слать и в другие дни. Для регулярных походов (в моём случае они как раз регулярные) удобно.

У меня ответная SMS приезжала в считанные секунды, но дело было до 8 утра. В SMS содержится цифробуквенный код и текст на русском, что пропуск действителен на 15.04. Никаких ссылок.

Если системе не нравится формат, она присылает сообщение, что формат не нравится, со ссылкой, где искать описание формата. Что именно ей не понравилось, не пишет. Это я пытался для начала латиницей послать.

YMMV.
filin: (Default)
Monday, April 13th, 2020 09:18 am
Сабж.

Система выдаёт пропуск в медицинское учреждение. На 15 апреля. ТОЛЬКО на 15 апреля. Ни раньше, ни позже. Сегодня, напомню, 13-е.

У меня есть основания предполагать, что 15 апреля (в первый день, когда пропуска будут обязательны) ещё можно будет получить пропуск на оное 15 апреля. У меня НЕТ оснований предполагать, что 16 апреля можно будет получить пропуск на 16 апреля.

Отправить багрепорт в техподдержку пока не удаётся.

Ну вы поняли.
filin: (Default)
Friday, February 21st, 2020 04:03 pm
По итогам обсуждения у Витуса (1 серия, 2 серия) собрал и причесал:

source_ssh_auth:
fix_ssh_auth_sock () {
    if [ -e "$HOME/bin/fixssh" ]; then /bin/rm -f "$HOME/bin/fixssh"; fi
    if [ -S "$SSH_AUTH_SOCK" -a ! -L "$SSH_AUTH_SOCK" ]; then
        local new_ssh_auth_sock_dir
        new_ssh_auth_sock_dir="$HOME/.ssh/auth_sock"
        local new_ssh_auth_sock
        new_ssh_auth_sock="$new_ssh_auth_sock_dir/auth_sock.$(hostname)"
        if [ ! -d "$new_ssh_auth_sock_dir" ]; then
            mkdir -p "$new_ssh_auth_sock_dir" || return
        fi
        ln -sf "$SSH_AUTH_SOCK" "$new_ssh_auth_sock" || return
        SSH_AUTH_SOCK="$new_ssh_auth_sock"
        export SSH_AUTH_SOCK
    fi
}

case "$DISPLAY" in
    # don't run fix_ssh_auth_sock if logged in locally in X
    # because otherwise you'll lose connection to local ssh agent
    # after first remote or terminal login to this host
    :*) ;;
    *) fix_ssh_auth_sock ;;
esac


Что делает. Если видит в переменной SSH_AUTH_SOCK сокет ssh-агента (но не симлинк на него — поэтому ! -L), делает на него симлинк с well-known именем. После чего переставляет переменную SSH_AUTH_SOCK.

Единственная переменная часть в имени — hostname. Защита от проблем, возникающих в случае с NFS-mounted home.

Что позволяет. Типичная ситуация: с хоста A, где агент, идем с форвардом агента на хост B, запускаем там screen или tmux, и оттуда ходим на хосты C, D и т.д. Если не выполнить fix_ssh_auth_sock, то после первого detach, по любой причине, $SSH_AUTH_SOCK внутри screen останется негодным навсегда. А он случайный. А если выполнить, то после перелогина и подсоединения к сессии он снова станет годным. Будет через симлинк указывать на новый сокет.

Запускается... Во-первых, не запускается, а читается. "." (source), в смысле. Потому что надо переставить переменную. У меня из .zprofile, а остальным рекомендуется .profile или .bash_profile. Синтаксис намеренно выдержан таким, чтобы можно было запускать даже из dash.

Не надо запускать это из НЕинтерактивного шелла — агент отвалится после завершения команды. Честно говоря, маны на bash и dash мутны в части того, выполняется ли .profile из логинного, но неинтерактивного шелла. Подозреваю, что нет, но экспериментируйте себе сами.

.zlogin:
if [ -n "$SSH_CONNECTION" ]; then exec screen -xRR; fi


Что делает. При интерактивном логине по ssh молча запускает screen в режиме «если есть запущенная сессия, подцепиться к ней (к самой свежей по времени создания, если их несколько), НЕ отцепляя других возможных клиентов той же сессии; если ее нет, создать и подцепиться». Согласно man screen, именно с этими ключами screen запускается, если указать его в качестве логинного шелла.

Что позволяет. Не попадать в ситуации, когда надо бы отцепиться от сервера (положить спать ноутбук, с которого зашли), а команда на сервере оказалась слишком долгоиграющей, и прерывать ее не хочется. Или в ситуации, когда и не стал бы отключаться, да канал упал, не спросив. Общий принцип: зашел на удаленную машину — запусти screen.

Запускать. У меня из вышеуказанного .zlogin. У кого .profile или .bash_profile, оттуда последней командой.
Tags:
filin: (Default)
Thursday, May 23rd, 2019 12:02 pm
Антисимит — это слойка с сыром и ветчиной: квадратная, без дырки, с начинкой, причем религиозно недопустимой. Неудивительно, что сильно уступает симиту по вкусу.

Рыдательный падеж.

«Нашла опечатку в древнеиндийской философии».
filin: (Default)
Friday, August 24th, 2018 06:10 pm
В Исландии пришлось купить новый (надувной) коврик на замену старому Thermarest, у которого прогнили и одна за другой начали рваться внутренние перегородки (которые делают его горизонтальным). 4 года.

Купленный в Акурейри Exped шел в комплекте с pump sack — (слегка гермо) мешком, который используется для накачивания (теоретически его же можно использовать как одежную герму, но практически уж очень он тонкий, стремно, да и размер великоват). У Exped прямо в инструкции пишут, что надувать его ртом не стоит — портится он от такого содержания влаги. У Thermarest типа пишут, что можно, но практика показывает, что тоже лучше не надо (у той модели, это первый вариант NeoAir, не только у нас были такие проблемы). Их же у нас и надувные подушки, тот же формат.

Ну, я и задумался, что второй Thermarest, который еще не сдох, тоже стоило бы надувать забортным воздухом. У Exped другой формат входного отверстия, с прижимным клапаном. У Thermarest — закручивающаяся "пробка" со входом через торец (если ртом надувать, то она берется в рот, тогда как у Exped вы будете прижимать отверстие к губам снаружи). Заглянул в гугл — да, существует. Thermarest Pump Sack. В Спортмарафоне 2350 р. Судя по фотке, просто надевается манжета. А клапан там по принципу "если начать дуть, то давлением оттолкнет коврик, и зажмет выходную щель".

Тут-то Галенэль и выступила в качестве народного умельца, найдя в Fitzman силиконовую пробку с крышкой для бутылки за 109 р. Толстый (выходной) конец которой имеет подходящий диаметр, чтобы надеться на выход Exped'овского pump sack (21 мм), а тонкий (вставляющийся в бутылку) — подходящий внутренний, чтобы надеться на Thermarest'овскую пробку (она 17 мм, он 16, но это силикон, он слегка тянется).

Такой вот pump hack.
filin: (Default)
Tuesday, July 10th, 2018 05:20 pm
Из комментов к чужому посту. Дословно (прямо вместе с опечаткой):

"ответил, но на ссылки на источники пост забанили за спам."

И это, если вдуматься, нельзя считать случайным эффектом. Он закономерный, и чем дальше, тем закономернее. Ссылка на источник начала считаться неприличным поведением не только в тупых спамодавках.

Нет, я не считаю, хотя такой вариант тоже есть, что нынче цензура информационно гигиеничного поведения сознательно прикидывается спамодавками (т.е. своей противоположностью). Я считаю это побочным эффектом тупых спамодавок. И даже то, что никто не будет это чинить, тоже не следует считать сознательным поведением. Однако, закономерность отчетливо присутствует, и это очень огорчает.
filin: (Default)
Wednesday, March 7th, 2018 03:37 pm
На правах потока сознания.

СННЯУ (с неделю назад я узнал), что на современном HTML + CSS (БЕЗ JavaScript), оказывается, можно сделать модальный диалог подтверждения. Минут 5 я разбирался, как это устроено (надо было найти релевантный код в полном дизайне страницы), а потом за пару секунд встроенный параноик нашел, как легким изящным неосторожным движением посадить в этой программе багу, которую потом только искать придется с полгода... А тем временем данные из базы на сервере будут пропадать... Подтверждение было у кнопки удаления, ага. Все мои читатели знают, за что я нынче люблю языки с богатой системой типов и строгой типизацией времени компиляции?

Полученный инсайт я вторую неделю перевариваю.

Инсайт начался с того, что HTML даже изначально, до CSS — язык программирования. Да, domain-specific. Да, с весьма ограниченной функциональностью. Да, для своеобразного типа процессора. Но программирования. Декларативный, если я правильно соображаю, как принято называть этот класс языков. В смысле, программист на нем излагает, что должно быть показано Ю. Конечному и как оно должно выглядеть, а не как именно это рисовать. Современный CSS добавляет к арсеналу программиста дополнительные возможности, но не меняет ситуацию кардинально. Однако, с дополнительными возможностями появляются и дополнительные возможности их использования как бы не вполне по назначению.

Помимо разметки страницы, в HTML есть одна инструкция совершенно другого типа. Ключевая, без которой он бы не состоялся. Переход по ссылке. На ее абьюзе, собственно, и построен вышеупомянутый трюк. А вот возможность посадить там очень незаметную багу — это уже дополнение от CSS. На чистом HTML то же действие вызвало бы явный переход на другую страницу, заметный для Ю. Конечного.

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

Ошарашенный изяществом придуманной баги, инсайт на сем не остановился, а двинулся дальше.

Следующий шаг сформулировался так: поведение программы на декларативномм языке, даже простой, плохо предсказуемо для программиста. Не заточен под это человеческий мозг. Про Пролог я такое читал, про Моделику краем уха слышал от коллег (слышал о фактах, вывод мой), а HTML + CSS даны в ощущениях.

Причем в простых случаях, на уровне Hello World, оно как раз обманчиво хорошо предсказуемо. Лучше, чем с процедурным или функциональным. Но как только скомбинировались несколько посылок декларативных инструкций (а в реальных задачах будет именно так) — комбинаторный взрыв разносит вдребезги систему ассоциативных связей.

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

Следствие-сюрприз: система наследования в объектно-ориентированных языках — элемент декларативного программирования. И как только она становится развесистой (наследственный полиморфизм, в противовес параметрическому, плюс множественное наследование, как бы оно ни выглядело) — это минное поле.

Подробно проверено на ruby, чей фреймворк rails построен на наследовании там, где следовало бы на делегировании. Чуть что не работает из коробки — хвостов не найдешь, а стек трейс через цепочку наследований и миксинов на ровном месте оказывается глубиной в полсотни слоев там, где по уму их должно быть три. И бага (которую авторы могут считать фичей, и даже позаботились об отключении) может быть на любом.

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

Инсайт, впрочем, не остановился и здесь. Следующим шагом оказалось то, что любой язык, включая естественные и даже язык жестов — тоже, в частности, такой язык программирования. Как правило, хренового. Человеческие языки (вернее, это скорее свойство процессора) обычно здорово выигрывают по скорости программирования и порой даже по предсказуемости. От машины, однако, можно добиться уровня предсказуемости, с человеком недостижимого. Но дорого. Между процессорами есть и еще ряд различий, но к языкам они уже не относятся :)

Кот Камышовый, услышав эту мысль еще в сыром виде, произносил словосочетание «однозначность понимания». Я же хочу сделать акцент на предсказуемости результата. Однозначность понимания — не цель, а средство, причем одно из. И как мы видим на примере машинных языков, далеко не всегда достаточное.
filin: (Default)
Monday, November 27th, 2017 08:20 pm
Где в Британии правостороннее движение?

Вопрос, возможно, не вполне корректно сформулирован юридически. Но с точки зрения Ю. Конечного (©Витус) корректно.

До неполного ответа можно догадаться исходя из того, что его задаю я (нет, я знаю его не из Интернета). Полный ответ я вычитал уже в Интернете.

В Интернете ответ найти несложно, так что предлагаю все же построить своих догадок. Ну или если кто и так уже знает...

UPD: Поскольку имевшихся в виду ответов уже больше одного, а правильных и того больше, комменты открыты.
filin: (Default)
Wednesday, November 15th, 2017 11:49 am
Граждане, а не подскажете, кто из производителей смартфонов (ОС - Андроид) сейчас делает приличные машинки?

В смысле минимума глюков и желательно беспроблемной разлочки бутлоадера (подразумевается замена родной ОС на Lineage).

Вообще требований довольно длинный список, начиная с водозащищенности, но это я уже сам буду копаться.

Я так понимаю, что вроде бы пока Sony на уровне (чьей Xperia Z я был вполне доволен, но наконец она решила сдохнуть). А еще?
Tags:
filin: (Default)
Tuesday, October 31st, 2017 10:08 am
Уважаемые технически эрудированные френды!

Объясните, если кто знает, какие сейчас существуют "сторонние" прошивки Андроида со штатным рутом в комплекте.

Некоторое время я пользовался cyanogenmod, но недавно зашел и выяснил, что оно discontinued, и на его месте теперь LineageOS.

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

Второй вопрос - что у нас сейчас с версиями Андроида. У LineageOS для моей Xperia Z поддерживается только 14.1, Андроид 7.1. Есть опыт с андроидом 4 и 5, но не то чтобы очень продвинутый. Так, проблемы с записью на SD без рута я так и не сумел решить, ни в четверке, ни в пятерке.
Tags:
filin: (Default)
Wednesday, July 26th, 2017 10:13 pm
Купил на днях новые кроксы. Потому что у старых подстерлась подошва, и они скользят, когда не надо, и потому что тогда они были великоваты (в сложной обстановке нога в нем подворачивается).

Когда я спросил про размеры, девушка честно сказала: «бывает по-разному, надо мерить». Exactly. Принес домой, сравнил. Номинально тот же размер, но новые на сантиметр короче!

Beware. Надо мерить каждый раз.
filin: (filin)
Monday, December 26th, 2016 08:49 pm
Уважаемые фотолюбители уровня выше среднего и фотопрофессионалы!

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

Текущий комплект — Canon EOS 500D с объективом Tamron 18-270mm. 18 критично, 270 не очень, при хорошем качестве можно ограничиться и сотней. Оный тамрон внезапно перестал выдвигаться (похоже, что-то механически сдохло внутри). В остальном всё работает.

Аппарат бывает в условиях «очень сыро» и «изрядно холодно». Кэноновская приличная мыльница не выдерживала, отсыревала и что-то коротило внутри, очень быстро сдыхали батарейки. Зеркалка сделана получше, выдерживала. Параметр критичный.

Можно просто поменять объектив, но вдруг за прошедшие 6 лет жизнь продвинулась вперед? Слышал, что сейчас беззеркалки уже вполне доросли до качества зеркалок. Ну, режим для съемки закатов у мыльниц и раньше был лучше, чем я сейчас могу снять зеркалкой... Бюджет, гм, полупрофессиональный. И по весу тоже. Больше килограмма в сборе тяжело носить.
filin: (Default)
Thursday, March 10th, 2016 03:12 pm
[personal profile] knjazna, тебе может быть интересно в качестве препарата. Если интересно, я с удовольствием прочту твой комментарий.

Так получилось, что, оказавшись перед надобностью дойти до гастроэнтеролога, я сначала записался на прием в свою поликлинику по ОМС (ну, как теперь это модно, мимо терапевта можно записаться только к ЛОРу и еще одному-двум, так что записался еще только к терапевту), и только потом дошел до поликлиники по ДМС. Я не буду распространяться на тему "по ДМС я прошел весь цикл до того, как по ОМС у меня подошло время визита к терапевту" - есть опыт записи в той же поликлинике и на через 10 минут. Скажу, что у меня было достаточно времени, и я решил сходить и сюда тоже. Вот, сходил...

Дальше постараюсь привести диалог по возможности близко к тексту. Извините, на диктофон не записывал. Комментарии мои.

Прихожу, собственно, с жалобой на то, что проснулась пищеварительная хронь. Симптомы описываю.

- Какие диагнозы были?
- Гастрит, гастродуоденит, холецистит в разное время.
- Ну, это как у всех.

Гм... Ну, ладно.

- А таблетки какие-то принимаете?
- Нет пока.
- А почему?

Чо? Ну, ладно.

- Ну, я в принципе представляю себе, что принимать, но предпочел бы, чтобы мне это доктор сказал.
- А сейчас вы вроде как не к доктору пришли...

Сказано тоном, как будто это я ему сказал, что он не доктор, а не он сам проговорился. С этого момента мне, в общем, уже все стало понятно. Дальше он рассказал анекдот на тему "ну, это вам к гинекологу - а вы кто? - а я маляр".

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

Я вообще-то не со срочными проблемами к нему пришел. Или "сейчас" - это в ближайшие полгода?

Осмотр свелся к "покажите язык", выписал три таблетки и три направления на анализы - ожидаемое УЗИ брюшной полости, ожидаемая биохимия крови, и почему-то сифилис. Про гастроскопию спросил, но не направил. И...

- Этот анализ будет делаться 10 дней (я так понимаю, это как раз про сифилис, но видно не было), к этому времени боли, может быть, уйдут.

Нет, про повторный прием ни слова. Типа, сделай анализы и засунь их себе куда хочешь.

На этом мы попрощались и разошлись.
filin: (Default)
Saturday, January 16th, 2016 08:55 pm
Обнаружил, что сегодня за полдня проели на двоих почти ровно миллион. Не сказать, чтоб сильно объелись.
Tags:
filin: (Default)
Thursday, February 19th, 2015 08:49 pm
Прочитал интересную серию статей Paul Callaghan в PragPub (https://pragprog.com/magazines, выпуски с 38 по 49, кроме 44, а существенная для этого текста часть — с 45-го), и сделал для себя некий существенный вывод, к которому эта серия — прекрасная иллюстрация. Оным выводом и хочу поделиться )

Сразу озвучу совсем уж сухой остаток. На данный момент развитие средств программирования таково, что оптимум называется Haskell. Может быть, еще какие-то сходные языки, не уверен. Ключевые моменты: богатая система типов и статическая их проверка. Только вместе. Но. Более богатые, чем хаскель, средства (зависимые типы) пока оказываются намного ниже оптимума. Подробно - много букв )
OSZAR »