Софт
ihrkampfное
02.10.24 16:30 // оригинал
В Tailscale перестали пилить хвост по частям, и если раньше с российских адресов не работало только скачивание клиентов, а чуть позже проверка обновлений, то с 1 октября отвалились и запуск клиентов, и админка. Перешел на ZeroTier, он такими вывихами пока не страдает.
синхронное
13.06.24 18:07 // оригинал
После одного из недавних обновлений floccus научился работать с git, что окончательно сделало его лучшим синхронизатором закладок.
автоматизаторское
16.05.24 18:12 // оригинал
Фокусирование в iOS — хоть и не идеальная, но очень удобная штука. Можно привязать ко сну, к занятиям спортом, ограничить при этом, от кого принимать звонки, от каких приложений запретить извещения и т.п. Только вот вроде бы довольно очевидную вещь — возможность привязать к событиям в календаре — сюда из коробки не завезли. Например, в начале каждого семестра я скидываю в календарь расписание всех своих лекций — и очень бы пригодилось автомическое включение режима "Не беспокоить" без дополнительных действий с моей стороны.
И тут вроде бы должна помочь автоматизация, но проблемка в том, что там нет возможности установить обработку календарного события. Можно привязаться ко времени, к локации, к точке доступа, к будильнику, ко всякой экзотике типа распознавания звука дверного замка, а к календарю — облом. На этом мои предыдущие подходы к снаряду и заканчивались.
А на днях нагуглился забавный хак. Да, к календарю нельзя привязаться, но можно раз в сутки запускать команду с перебором всех событий текущего дня, которая будет создавать для каждого из них будильник с каким-то особым именем (например, DND). А дальше можно повесить на срабатывание будильника другую команду, которая будет удалять уже ненужный будильник и включить желаемую фокусировку, причем вытаскивая время ее завершения из календарного события, начало которого совпало со временем срабатывания будильника. Все это происходит так быстро, что будильник и мяукнуть не успевает.
Готовая пара команд по ссылке есть, нужно только уточнить в них, какой календарь использовать, создать пару автоматизаций и разрешить в настройках команд удаление объектов.
макоудаленное
29.01.24 23:10 // оригинал
Довольно долго и очень сильно в макбуке раздражала ситуация с удаленным подключением. Пользуюсь-то я им в основном для лекций и на собрать/потестировать пару проектов, ну и очень иногда в поездках, при этом дома все-таки гораздо комфортней работать с привычной клавиатурой и большим монитором. Логитековская мышка и клавиатура, конечно, умеют быстро переключаться, и второй вход монитора не проблема подключить, но хотелось просто иметь перед глазами окно с удаленным доступом.
С любыми домашними и рабочими машинами это прекрасно работает через родной RDP без всяких дополнительных подпорок, тут же из штатных решений предлагался либо безобразно тормозящий даже в локалке вариант с подключением через VNC, либо Apple Remote Desktop с клиентом только под Mac.
Но не прошло и пяти лет, как совершенно случайно наткнулся на совершенно прекрасный Remote Desktop Manager, даже бесплатная версия которого понимает кучу протоколов, включая тот самый ARD. Никаких тормозов даже на максимальном качестве, заодно и старые RDP-сессии можно загнать в соседние табы, по вкусу подцепить SSH-сессии, идеальный центр управления вселенной. И ведь почти ни в одном бесполезном обзоре "надцать лучших удаленных решений для Mac" его не найти.
разнонедельное
07.12.23 15:09 // оригинал
Еще во времена WinMobile был такой замечательный будильник G-Alarm, в котором можно было назначить повторяющиеся будильники на разные недели — очень удобно, например, когда по средам верхней недели стоит первая пара, по средам нижней — вторая. Потом случился переход на iOS, и c тех пор всё тянутся передо мною кривые, глухие окольные тропы не встречал такой возможности ни в одном будильнике, каким бы умным он себя ни считал. Не сказать, что такое очень критично, но ведь как удобно один раз выставить будильники на весь семестр (студенты и преподаватели оценят).
Решение же оказалось до смешного простым (хотя и очень запоздалым), на помощь пришли Shortcuts, они же Команды. Сначала расставляем будильники, включая в их имена ВН либо НН, после чего добавляем команду, которая получает номер текущей недели (текущая дата по формату "w"), берёт остаток от его деления на 2, затем перебирает все будильники с ВН/НН и в зависимости от результата предыдущего шага выключает одни и включает другие. Устанавливаем команду на выполнение в 0:05 понедельника, наслаждаемся результатом.
тейлскейлное
18.04.23 20:43 // оригинал
Tailscale устроила аттракцион невиданной щедрости, выкатив обновленную линейку тарифов с аж тремя разными аккаунтами в бесплатном тарифе вместо одного-единственного, как было раньше. Причем возможностей в бесплатном тарифе даже больше, чем в стартовом платном. Для семейного использования — практически идеальный вариант.
ютубноподкастное
15.10.22 22:07 // оригинал
Внезапно открыл для себя podsync. Ещё в прошлом году пристрастился слушать по дороге с работы всякие ютубные говорящие головы, но после прикрытия в России YouTube Premium это стало слегка мучительно. Часть материала, конечно, дублируется авторами в подкастах, но далеко не всё. В какой-то момент это надоело и стал смотреть, как скрестить с подкастами youtube-каналы.
Сначала попробовал несколько онлайн-сервисов, но работают они как-то криво и через раз, а вот podsync оказался ровно тем, что нужно. Легко ставится в докер на NAS, в конфиге задаются хоть каналы, хоть отдельные плейлисты для слежения. Документация, правда, минимальная, но из примера конфига всё понятно. Зато и догадаться, что в какой-то момент настройка data_dir почему-то переехала из секции [storage] в [server], было совершенно невозможно, помог только поиск по выдаваемой ошибке.
Но после того, как взлетел, работает прекрасно — сам всё скачивает, конвертирует в mp3, делает rss-фид. Всяким продвинутым подкаст-приложениям типа Overcast или Pocket Casts, правда, нужен внешний url, чтобы они сами его проиндексировали, зато простые родные подкасты из iOS прекрасно подхватили и локальный адрес. С учётом того, что они и на часах лучше работают, на этом варианте и остановился.
дваждыодиннадцатое
22.06.22 03:30 // оригинал
Если бы Windows 11 22H2 сразу вышла год назад, тогда на неё плевались бы гораздо меньше. Самое заметное изменение — в меню Start появились папки (не совсем, как в десятке, больше похоже на iOS/macOS), плюс там же теперь можно настраивать количество рядов иконок, от 2 до 4. В причёсанном Task Manager теперь можно задавать раздел по умолчанию. Панель Snap Assist теперь вылезает не только на кнопке максимизации (о чём многие и не знали), но и при перетескивании окна к верхней части экрана, причём начинает появлятся заранее, так что игнорировать её уже гораздо сложней.
Какие-то мелочи поменялись и под капотом. Во-первых, при установке на старое железо перестал работать трюк с удалением C:\$WINDOWS.~BT\Sources\appraiserres.dll, хотя его замена на версию от Windows 10 по-прежнему спасает.
Неприятное, но легко преодолимое — установленные с помощью какой-то матери и "bcdedit /set testsigning on" неподписанные драйверы (есть у меня один такой для отечественного RFID-считывателя) теперь ломают обновление, приходится либо их временно сносить, либо отключать устройство.
Из более неприятного для меня — отвалился ASUS'овский AI Suite 3, версия которого от десятки раньше более-менее работала, а теперь его инсталлятор просто тихо уходит в себя при запуске. Неприятно, потому что на моей материнской плате только его Fan Xpert 2 мог определять минимальную частоту вращения корпусного вентилятора, без чего BIOS и другие утилиты ставили ему минимум 60%, а это 792 rpm против 466 при 30%. И ушам эти лишние три сотни оборотов очень заметны. Тут спасло то, что хоть ASUS и не предлагает новые версии AI Suite для старых плат, он же от любой новой с поддержкой Windows 11 прекрасно работает и с моей древней Z87.
Самый простой способ установить на старое железо, не дожидаясь осени — собрать iso с помощью UUP dump, выбрав там Windows 11 22H2, редакцию и билд посвежее (сейчас это 22621.105 из канала Release Preview либо 22621.160 из Beta Channel). И да, на российских ip скачивание без VPN не пройдёт.
безоблачнопарольное
22.03.22 23:05 // оригинал
Выпиливание 1Password из российского App Store стало очередным звоночком и прекрасным поводом оглядеться в поисках замены менеджера паролей. Через несколько дней приложение вернулось, но осадочек остался, усугубившись объявлением CEO компании о прекращении регистрации новых российских пользователей и приёма платежей у старых. Естественно, с переводом их облачных аккаунтов в read-only режим по окончании оплаченной подписки. Впрочем, это уже было немного предсказуемо.
Строго говоря, последний шаг лично меня затрагивает минимально, поскольку для всех своих платформ я в своё время брал standalone-лицензии — во-первых, я терпеть не могу подписки, во-вторых, доверять свои пароли ну очень удобному чужому сервису, несмотря на все его заверения о надёжности и безопасности — большое спасибо. Собственно, возможность автономной работы была основным критерием при выборе между 1Password и LastPass.
Но 1Password уже давно пошёл по пути постепенного выдавливания пользователей на работу с облачной подпиской, о чём представители компании открыто говорили на форумах — разумеется, оправдываясь заботой о безопасности и удобстве пользователей, а не желанием их постоянно доить, как вы могли такое подумать. Добраться до возможности купить standalone-лицензию и раньше было нетривиальным квестом, а в последнее время её совсем убрали, пообещав выпилить поддержку безоблачной работы из следующего крупного обновления. Первым шагом на этом пути стало требование работы через облачный аккаунт при использовании расширения для iOS-версии Safari, хорошо хоть пока можно обходиться без него. Особо упёртым нелюбителям облаков обещана возможность работать со старой версией, развитие которой будет остановлено (хотя с учётом того, что новую версию для маков пилят на Electron, есть шанс, что консерваторам ещё повезло).
Так что последние миротворческие метания руководства компании стали просто вишенкой на торте, которая в сочетании с и без того туманными перспективами использования 1Password практически перевела его в разряд «пора валить».
Требования к кандидатам на замену понятны: поддержка основных используемых платформ (win/mac/linux/ios), плагины для основных браузеров, отсутствие облачных аккаунтов, синхронизация. Последние два пункта выглядят взаимоисключающе, но вполне устраивает синхронизация зашифрованного хранилища через стороннее облако или вообще через локалку. Опенсорсность необязательна, но приветствуется. Совсем хорошо, если есть возможность делиться подмножеством паролем.
Очевидный и в первую очередь приходящий в голову вариант с KeePass, как и прежде, остаётся для сильных духом, особенно если держать в голове перевод на эту платформу и всех домашних. Причём его выбор — только первый шаг, дальше нужно разобраться в зоопарке реализаций под разные платформы, в котором универсального решения до сих пор нет. Если дальше копать в эту сторону, для десктопа/браузеров самым приличным вариантом выглядит KeeWeb, для macOS/iOS — Strongbox, только для iOS — KeePassium. Формат хранилища совместим, синхронизация через облака есть, выглядит работоспособно. Оба iOS-приложения фримиумные, Strongbox через 90 дней пробного использования нужно разблокировать через встроенные покупки, что для семейного использования выглядит так себе, ну и стоит это либо $14.99 в год, либо $59.99 lifetime. Полный KeePassium Pro предлагается за $49.99. И тут пока последнее слово остаётся за внутренней жабой, поскольку при пока устраивающей работе 1Password влезать в платный переезд без уверенности, что результат понравится — ну такое, как говорят братья наши меньшие.
Поэтому гораздо более симпатичным показался вариант с Bitwarden. На первый взгляд выглядит тем же 1Password'ом, только в профиль. Версии для всех интересующих платформ, для работы нужен облачный аккаунт, бесплатной версии достаточно для работы, хотя вкусности типа создания организаций для совместного использования части паролей требуют платной лицензии. Импорт из 1Password присутствует.
Естественно, первая реакция на облако — нафиг, нафиг, но самое интересное начинается с возможности разворачивания своего сервера. Ставится в докер под linux/win/mac, в клиентах указывается адрес развёрнутого сервера, и начиная с этого момента в этой гостинице я директор (с). Не всем, конечно, подойдёт необходимость разворачивать и держать доступным свой сервер, но как счастливый владелец Synology DS916+ я такое очень люблю.
Дальше, конечно, не без нюансов. Докер докером, но docker-compose.yml последней вышедшей версии 1.47.1 включает аж 11 (прописью: одиннадцать) сервисов, живущих в отдельных контейнерах, в том числе всякая пузатая мелочь типа mssql и nginx. И когда всё это счастье взлетает, памяти на него уходит гигабайт-другой, что для домашнего NAS как-то перебор. Плюс эта установка всё равно требует лицензию, и для включения всех возможностей — естественно, всё ту же платную.
Разумеется, нашлись умельцы, сочинившие генератор самопальных лицензий и патч родного сервера, чтобы он эти лицензии проглатывал — даже забавно, как всё это уживается рядом на одном гитхабе, зато могу с чистой совестью поставить ссылку, оперсорс такой опенсорс. Хотя основная проблема всё-таки не в лицензии, а в ресурсах, ну странно же поднимать такую помойку для в общем-то тривиальной базы.
И радикальным решением становится vaultwarden, в девичестве Bitwarden_RS, представлющий собой независимую реализацию сервера с тем же API, что у сервера Bitwarden (не полностью, но большая часть самых полезных функций доступна, причём без-воз-мезд-но, т.е. даром). Причём в отличие от написанного на C# и заточенного под MS SQL Bitwarden, vaultwarden написан на Rust, живёт в одном-единственном контейнере, по умолчанию хранит парольную базу в SQLite (если очень хочется, можно прикрутить и к MySQL, и к PostreSQL), для работы требует жалкие десятки мегабайт.
Установка под DSM с поднятым докером предельно проста. Если включён доступ по SSH, то делается одной командой:
docker run -d --name=bitwarden -p 8080:80 -v /volume1/docker/bitwarden:/data --restart always vaultwarden/server:latest
Если SSH пугает, того же эффекта можно добиться, вогнав эту же строку через web-интерфейс в Task Scheduler.
Здесь предполагается, что докер был установлен на первый диск (как обычно и бывает), а в его стандартном каталоге /volume1/docker создан подкаталог bitwarden, в котором и будет храниться SQLite-база с паролями. Естественно, очень желательно настроить бэкап этого каталога. 8080 — порт для доступа к контейнеру снаружи, можно выбрать любой свободный по своему вкусу.
В расплодившихся по сети примерах ещё можно встретить -p 3012:3012, но тогда уж нужно указывать этот параметр в сочетании с -e WEBSOCKET_ENABLED=true, иначе смысла в нём никакого. 3012 порт используется для постоянного WebSocket-соединения, чтобы веб/десктоп-клиенты могли получать извещения об изменениях в парольной базе. Мобильным клиентам это не поможет, для них нужны push-извещения, которые vaultwarden не поддерживает.
В принципе, после этого уже можно указать адрес/порт своего сервера в bitwarden-клиенте и начать работать. Ну или открыть его в любом браузере. Но и тут есть нюанс. Далеко не все браузеры допускают работу с Web Crypto API по незащищённому соединению (например, Vivaldi такое проглатывает, Chrome наотрез отказывается), что действительно было бы очень так себе идеей при работе снаружи. Поэтому всё это хозяйство нужно завернуть в HTTPS. Простейший способ этого добиться в DSM — использовать штатные средства и включить обратный прокси (Control Panel -> Login Portal -> Advanced -> Reverse Proxy -> Create), где в качестве Source указать HTTPS/*/8443 (или любой другой порт по вкусу), в качестве Destination — HTTP/localhost/8080 (тот порт, который был указан при запуске контейнера).
Кстати, обратный прокси потребуется и для настройки вебсокетов, на 3012 порт нужно пробрасывать /notifications/hub, без этого его открывать бессмысленно. Такая кривоватая заглушка пока сделана из-за очень ограниченной поддержки вебсокетов в Rust'овском фреймворке Rocket.
Дальше нужно решить вопрос с сертификатами, иначе при обращении по HTTPS любой современный браузер очень сильно обидится. Если хочется спокойно ходить к своему серверу снаружи, проще всего получить честный сертификат от Let's Encrypt (Control Panel -> Security -> Certificate -> Add), привязав его к обслуживанию заданного порта (8443 в моём примере). Естественно, в типовой домашней сети с роутером этот порт ещё потребуется пробросить снаружи. Если не нравится каждый раз указывать порт, можно завести с помощью DDNS отдельный хост (Control Panel -> External Access -> DDNS -> Add), и в этом случае в обратном прокси привязать к 8080 порту 443 порт этого хоста, стандартный для HTTPS. Мне это не подходит, как раз на 443 у меня живёт домашний OpenVPN.
Кстати о VPN: как раз исключительно через них (одна поднята на роутере, резервная на самом NAS) я и захожу в домашнюю сеть, после чего работаю с локальными адресами. В такой конфигурации честный сертификат не имеет смысла, приходится обходиться самоподписанным (опять же делается в DSM в несколько кликов). В Chrome его, конечно, пришлось добавлять явно, но это было сделано давно, ещё для веб-интерфейса DSM.
Переползаю постепенно, результатом пока доволен. Разумеется, в нынешних турбулентных условиях нет никакой гарантии, что разработчики Bitwarden или vaultwarden не взбрыкнут так же, как 1Password, опенсорс от этого вовсе не страхует. Но они хотя бы пока в этом не замечены.
стартофинишное
24.10.21 03:59 // оригинал
Кто б мне сказал раньше, что в 2021 году придется скучать по стартовому меню десятки, на которое я в свое время плевался и обвешивал всякими TrueLaunchBar'ами, но в итоге смирился и даже как-то обустроил.
Но то, что MS сотворила в Win11, это уже какой-то финиш, рассчитанный на людей с предельно ограниченным объёмом внимания. Если им сказали, что так сделано в macOS, то это был жестокий обман, даже в её хипстерском ланчпаде давно можно делать папки.
Да, и эти закругленные углы — убожество.