Подписаться на блог

Фрирайтинг, заметки, шитпостинг и все подряд (18+)

Позднее Ctrl + ↑

Перепрошивки прошивками

Недавно неожиданно узнал, что загрузчик на моем стареньком Xiaomi разблокирован. Недолго думая, решил поиграться с прошивками, так как последний раз занимался этим несколько лет назад, да и то с iOS устройствами.

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

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

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

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

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

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

Лучше накатить какой-то чистый Android.

Обновление блога

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

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

Почему WordPress до сих пор торт?

С WordPress’ом я познакомился году в 2009, тогда он мне казался люто крутой штукой, и казался такой штукой еще много времени после. Потом прошло много времени, я искренне думал, что о WordPress все забыли, и скоро он канет в лету, но не тут-то было. Довелось мне поработать с WordPress, и я понял, что он все еще очень даже гуд.

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

Во-вторых, он написан на PHP, причем, как я давно много где говорил, он стал своего рода фреймворком, на основе которого можно сделать все, ведь есть куча плагинов и тем. Хотите интернет-магазин? Ставим плагин. Должно быть модно и молодежно с react’ом и другими фронтенд-плюхами? Ствим пару плагинов и дергаем API, все работает. Причем, сейчас все это можно сделать просто через админку двумя кликами, сделать это, вроде бы, можно уже давно, но тем не менее.

В-третьих, для WordPress есть готовая куча тулзов, редакторы, конфиги серверов, сервисы, обвесы и т. п. Для какой еще CMS есть с десяток приложений под самые разные платформы (в том числе и под Symbian, да), с помощью которых можно легко постить с телефона?

В общем, если кому-то нужен блог, важно удобство использования, а заниматься конфигами и всяким таким лень, то я теперь опять буду советовать таким людям WordPress.

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

Вывод, WordPress — до сих пор торт.

Лучший сервис заметок

Увлекся self-hosting’ом, решил запустить у себя кучу всего, в первую очередь — сервис для заметок различных размеров. В заметки я обычно пишу лекции, описываю какие-то идеи и графоманией “в стол” занимаюсь.

Почему не красивые общедоступные сервисы? Потому что следят, закрываются и вот это все. Потому, что из таких сервисов мне зашли только Notion и OneNote. Но Notion платный, если заметок много и платить надо каждый месяц, а я пишу их относительно редко, но в больших объемах. А OneNote в клиенте под Mac умеет работать только с одним аккаунтом, а у меня их минимум 3, переключаться между ними по пути “выйти-вбить креды-подтвердить авторизацию-подождать подгрузки” меня не очень устраивает.

Ну так вот, начал копать в сторону заметочных решений и… все они работают либо непонятно как, либо не имеют клиента под определенные платформы/нормальных интерфейсов, либо платные, но еще и работают непонятно как, так еще и поддерживаться — почти не поддерживаются.

В общем потратил я на изучение области полдня и пришел к выводу, что лучшим сервисом заметок, также как и 5 лет назад, остается MD + Git, вообще отлично, либо в том же GitLab в закрытый репозиторий можно Issue закидывать, там всё красиво и удобно. Хотя, на самом деле, заметки вообще удобнее всего вести в блокноте из бумаги, но лениво и копипаста нет.

Docker + Nginx + Env

Иногда бывают ситуации, когда внутри nginx-конфига надо сделать что-то в зависимости от переменной окружения, которая прокинется откуда-то извне (или не прокинется), так помимо этого это всё ещё и в Docker крутится, в который окружение прокидывается от compose или k8s.

С выше изложенными условиями выполнить эту задачу по-простому не получится (ну или я не нашёл как). Решение, представленное ниже, не особо-то и сложное, но, на мой взгляд, несколько нетривиально, ну и, если б я нашёл другой способ, то такой огород городить точно не стал бы.

Итак, ближе к делу, берём и переписываем наш Dockerfile следующим образом.

FROM # какой-то образ

WORKDIR /usr/src/app
COPY . /usr/src/app

ENTRYPOINT ["/usr/src/app/start.sh"]

EXPOSE 80

Ключевой момент здесь — ENTRYPOINT, им является какой-то sh-файл (не забудьте ему права на выполнение дать). Этот файл будет преобразовывать наш nginx-конфиг и запускать nginx.

#!/bin/sh

export SEARCH="${SEARCH_FROM_ENV:-google}"

envsubst '${SEARCH}' < /etc/nginx/nginx.conf > /etc/nginx/nginx.conf

nginx -g 'daemon off;'

В строчке экспорта мы “отдаём” переменную SEARCH, которую читаем из переменной окружения “SEARCHFROMENV”.
В случае, если переменная окружения не задана, присваиваем стандартное значение “google”.
После чего обращаемся к системной утилите envsubst, которой конкретно указываем, какие переменные менять, передаём в неё наш конфиг, а результат выполнения пишем в этот же конфиг.
Наконец, запускаем nginx.
В конфиге nginx изначально указываем где-то выражение следующего вида.

if (${SEARCH} = "google") {
  # что-то делаем
}

После обработки envsubst без передачи каких-либо переменных окружения переменная SEARCH заменится на “google”.

if ("google" = "google") {
  # что-то делаем
}

Таким образом мы прокидываем какую-то env-переменную в nginx-конфиг, а так же, в случае неопределённого окружения, имеем значение по-умолчанию.

GitHub Activity Overview

GitHub дали возможность показать в профиле большее подробную статистику активности. Выглядит интересно, но хотелось бы ещё что-нибудь про языки/фреймворки, может быть область деятельности: web, ml, etc, — хотя это пока лишь бета, дальше, думаю, добавят что-то более глобальное.

Ранее Ctrl + ↓