Навеяно gitsh, который я когда-то активно использовал,
но у него были проблемы с русской локалью, новыми версиями Git и так далее. При этом, на мой взгляд, gitsh сильно переусложнен,
да и использование Ruby, при всей моей любви к этому языку, тут лишнее. Посему я решил сделать что-то подобное, но попроще,
на чистом bash, и более универсальное.
Что делает?
Итак, что этот скрипт (набор скриптов) делает?
Позволяет использовать субкоманды того же git, как непосредственные команды. Помимо git, так же можно коротким образом вводить
субкоманды cargo1.
Отображает в приглашении командной строки репозиторий, ветку, путь внутри репозитория и значок статуса (звездочка разных цветов
на данный момент). Кроме того, вместо имени локального пользователя показывается e-mail пользователя, под которым идет запись
в репозиторий2.
Другие системы управления версиями, сборки и управления зависимостями могут быть добавлены просто и единообразно. Для Mercurial
и Rubygems планирую сделать, как только руки дойдут.
Если кто не знает, cargo — это система сборки и управления зависимостями языка Rust. ↩
Для меня отображение именно пользователя репозитория, а не локального, довольно существенно, поскольку на данный момент я работаю из дома и у меня имеются как личные, так и рабочие проекты, которые нужно вести под разными аккаунтами. ↩
Фотокамера у меня недорогая, и GPS в ней, конечно, нет. Зато есть в телефоне. Поэтому треки я записываю приложением
Locus Map Free (не Pro) — большую часть его возможностей (даже бесплатной
версии) я не использую, но треки пишет хорошо, меня устраивает. И, кстати, весьма скромно использует батарею.
Перед выходом, сразу после проверки заряда во всех устройствах и места на флешке, крайне желательно убедиться, что время
на телефоне и в камере — одинаковое. Конечно, при пешем передвижении минутная разница не так существенна, но однажды у меня
камера отстала на пять минут, и результаты были для меня несколько внезапны.
Что еще важно для записи трека: дать приложению нужные разрешения для всех режимов — не ходить же с постоянно включенным
экраном, на котором оно распахнуто. То есть, доступ к местоположению должен быть «Разрешить в любом режиме», и «Контроль
активности» — «Нет ограничений», при рекомендованном «Умном режиме» нормального трека получить не удастся. Что хорошо —
Locus Map проверяет эти разрешения и выдает подсказку, если они не установлены, не исключено, что именно отсутствие такой
подсказки и не позволило мне подружиться с другими приложениями для записи треков.
Трек пишется в GPX-файл, и это хорошо, поскольку данный формат понимают если не все, то очень многие программы, с которыми
нужно взаимодействовать. Я его отправляю прямо из приложения кнопкой шаринга «»,
из предлагаемых вариантов выбирая KDE Connect — архиполезная вещь, хоть
и глючная (впрочем, каким путем передать файл на компьютер — непринципиально).
Итак, я таки отрефакторил и обновил данный сайт. Почему нельзя было сразу делать правильно? Ну, в основном потому,
что я впервые имел дело с Jekyll, изрядно подзабыл (а что-то и не знал) базовые приемы верстки… И так далее,
и тому подобное.
Вторая (в моем случае) причина — это то, что, как это часто бывает, представление о желаемом результате уточнялось
и формировалось в процессе достижения результата просто работающего. Соответственно, решение «исторически сложилось»,
если вы понимаете, о чем я. Любой проект ставит разработчика перед выбором: или бесконечное (и потому бесплодное)
делание «как надо», или движение к идеалу через неидеальные, зато рабочие, варианты, которые, впрочем, без регулярного
рефакторинга быстро становятся неулучшаемым и иногда не совсем рабочим болотом.
Но на самом деле этот пост не только, и не столько о рефакторинге как таковом, сколько о технической стороне этого
сайта в целом. Благо, сразу после выкатки первого варианта я так технический пост и не написал, желая сначала получше
разобраться. Вот, сейчас и пишу о том, с чем разобрался, и о процессе этого разбирательства.
Ну, что ж. Общее представление, как должен выглядеть этот сайт у меня сложилось (внешне — примерно как и сейчас).
Есть большое желание привести в порядок внутреннее устройство и исправить ряд недочетов, видимых снаружи.
Самое время попросить фидбек: ежели кто видит недочеты, неудобства, баги какие-то… или имеет конструктивные
предложения — welcome комментировать, здесь или в соцсетях.
Я в принципе в курсе о проблемах на мобильных, но детали не помешают.
Еще могут быть косяки на старых браузерах… Вот только новая версия скорее всего с ними будет еще менее совместима —
думаю на grid’ах сверстать. Кто-то сейчас пользуется старыми браузерами? И если пользуется, то обращает ли внимание
на верстку вообще?
Нужно ли что-то менять в рубрикации? Адреса контента от нее не зависят, так что могу себе позволить…
Визуальный дизайн тоже можно попинать, желательно с конкретикой.
Недавно начал наблюдать пренеприятную штуку: при закрытии одновременно нескольких вкладок Firefox
начинает тормозить и жрать память, как не в себя. Уже на десятке-другом вкладок тормоза становятся
заметы, а сотня-другая просто отправляет систему в нокдаун на несколько минут. Именно при закрытии,
в процессе работы никаких проблем со множеством открытых вкладок у меня так и не возникло.
Я уже было начал задумываться о переходе на Chromium, но заметил, что тормозить начинает не только
Firefox, но и графическое окружение DE, то есть KDE Plasma… Итог — отключение расширения Plasma
Integration спасло ситуацию. Что там такое между ними происходит, я не очень понимаю.
Надо бы, конечно, поразбираться и написать им баг-репорт, но пока руки не доходят.
PS. При этом я понятия не имею, что вообще это расширение делает. Уведомления в трей Firefox пересылает
и без него.
График подписавших письма за и против Столлмана на момент написания этого поста
Сообщается, что GNOME Foundation, KDE e.v, Tor Project, the EFF, OBS Foundation, Red Hat, SUSE, Mozilla и X.org
Foundation опубликовали заявление, в котором выразили благодарность всем, кто принял участие в проведённой ими
кампании по травле 68-летнего человека с синдромом Аспергера, которая довела бы большинство других людей до самоубийства.
В заявлении также выражается благодарность всем принявшим участие в распространении культуры отмены, кампании по травле
и самосуде.
Происходящее сейчас с Ричардом Столлманом и Фондом свободного ПО (Free Software Foundation — далее FSF) не слишком
заметно людям, далеким от этого самого свободного ПО, точнее далеким от его разработки, поскольку пользуются им
на данный момент так или иначе почти все. И те перемены, которые сейчас происходят, или хотят произойти, коснутся
так или иначе почти всех. О серьезности ситуации позволю себе процитировать себя же2:
Можно возразить, что уж кто-кто, а FSF свободу ПО ущемлять не будет, но не всё так просто.
Во-первых, где гарантия, что вместо фанатичных, но всё же вменяемых, гиков к руководству
фондом не придут какие-нибудь упоротые и не забабахают неприемлемую для зависимых проектов,
а главное — несовместимую с приемлемыми, новую лицензию? Во-вторых, где гарантия, что по глупости,
или злому умыслу, FSF внезапно не случится банкротом, и его «интеллектуальная собственность»
не пойдет с молотка?
И вот теперь мы наблюдаем смену руководства Фонда СПО (это уже кроме собственно Столлмана): сначала ушел исполнительный
директор John Sullivan3, затем заместитель директора John Hsieh и технический директор Ruben Rodriguez4.
Каким будет новое руководство, какие цели оно будет ставить, и во что превратится Фонд, имеющий возможность единым махом
сменить лицензии на весь софт проекта GNU, — все это сейчас неизвестно. Понятно, что ничто не вечно под луной, но тут мы
наблюдаем не естественную эволюцию, а переворот (если не рейдерский захват, о чем далее), и с преемственностью политики
Фонда могут быть проблемы.
Ниже я попробую описать ситуацию достаточно подробно для тех, кому аббревиатуры RMS, FSF и GNU ничего не говорят.
Оригинал этого поста в «Технобложике» оказался самым популярным материалом — на него заходят и заходят
из поисковиков, ссылаются на форумах и так далее. Поэтому к его переносу я подошел максимально ответственно,
перепроверив все рекомендации в современных дистрибутивах и внеся дополнения. Таким образом, этот пост
получил некоторую добавочную ценность к оригиналу. Особенно совершенно новый раздел о том, как можно добавить
свои собственные символы в раскладку.
На эту тему в интернетах написано немало. Я лишь хочу в этом посте собрать и обобщить некоторую часть информации,
чтобы рекомендовать друзьям – новичкам в Linux. Итак, этот пост для тех, кто работает с текстом в Linux, дабы они
поняли свое счастье.
Вообще говоря, ввод каких бы то ни было символов с клавиатуры можно организовать разными путями, некоторые
из которых (например, определение собственной раскладки) доступны и в оффтопичной системе от MS. Однако, удобных
способов существенно меньше. Собственно, я буду говорить о двух, простых как в использовании, так и в настройке:
«третий уровень» и Compose Key.
Обнаружил тут некоторый подводный камень в стандартной библиотеке Rust. Багом это назвать, конечно, нельзя,
просто такой момент, где можно по собственной невнимательности наступить на грабли и не сразу это заметить, что
нехарактерно для Rust.
Опасность подстерегает нас, когда мы читаем данные из файла посредством std::fs::File.read()1, не используя
при этом std::io::BufReader2, а самостоятельно выделяя блок памяти и читая в него.
Подводный камень тут вот в чем, цитирую документацию:
if n is 0, then it can indicate one of two scenarios:
This reader has reached its “end of file” and will likely no longer be able to produce bytes. Note that this
does not mean that the reader will always no longer be able to produce bytes.
The buffer specified was 0 bytes in length.
Подчеркивание мое. Итак, если мы передаем методу read() буфер нулевой длины, то результат будет ровно тот же самый,
что и если мы достигли конца файла, т.е. Ok(0).
В общих чертах настроил систему комментариев, можно пользоваться.
Работает это все через Staticman, что означает коммит комментариев в репозиторий на GitHub
с последующим рендерингом на стороне Pages… Ну, то есть, небыстро это работает. От отправки
комментария до его появления на странице может пройти пара минут. Подгрузка комментариев на уже открытой
странице тоже есть, но функционирует не всегда… В общем, иногда лучше подождать и понажимать F5.
С другой стороны — есть время подумать, а чятики никто и не обещал.
Принципиальных изменений в этой части, пожалуй, не будет, а вот отрефакторить бы не мешало. Хотя бы чтоб
не краснея написать об этом технический пост.
upd: Редактирования комментариев, конечно, нет (потому что нет никаких логинов и регистраций), имейте
в виду.
upd2:1 Обнаружился невезучий спам-бот, который спокойно прошел капчу, но не заметил автозаполнения
скрытого поля посредством JS…
Пока перенос со старых площадок не завершен, но уже как-то дублированием заниматься не хочется.
Собственно, из ЖЖ я перенес все, что планировал, а вот с Технобложика еще есть,
чего утащить… Но новые посты будут появляться уже здесь. И они скоро будут.
Чего не будет: поскольку я использую бесплатные возможности хоститься, не будет фотографий,
по крайней мере, в количествах. Не будет мелких записей с актуальностью в один день, поскольку
для них имеются социальные сети.
Система комментариев здесь рабочая, но пока не отлажена — могут быть косяки, особенно в части капчи…
Ну, на персональной страничке можно и на проде поотлаживать. Вообще, какие-то вещи будут в ближайшее
время дорабатываться и меняться, но, очень надеюсь, не будут меняться адреса страниц, т.е. уже можно
ссылаться.