NewsПроба gRPC

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

И вот внезапно пришла идея сделать серверную часть моего "автоблокнота", долгостроя, который четыре года лежит в задумке, именно как gRPC-сервис, а не привычным REST API. Придётся и приложение заодно писать, которое будет стучаться к сервису, про авторизацию не забывать и т.п.

А автоблокнот выполняет функции обычного блокнота, бумажного, куда я записывал по своей машине когда запчасти/расходники покупал да менял масло и прочие технические жидкости. Заправки топлива туда же, гаражи, парковки и другие траты деняк. После блокнота записи перекочевали в гугл-таблицы. И совсем недавно импортировал данные из гугл-таблиц в БД, бекенда только никакого ещё нет, как и фронтенда. Но будет 😎

P.S.: Работа уже идёт → вот репозиторий

NewsРебрендинг

Был morontt.info, стал xelbot.com 😁 Разницы особой нет, потому что и нет тут никого, кроме меня. Произвожу оптимизацию, чтобы не платить просто так за разные домены. А xelbot получился много лет назад, как напечатал "чудище" в английской раскладке.

NewsНовая старая админка

Решил, раз уж активно работаю и с админкой этого блога, освежить и её. Внешне не должно ничего поменяться, а вот под капотом изменения предстоят. Как уже писал тут в 2016-м, сделана она на Ember.js с Symfony. Вот с JS-частью и затеял обновление. Изначально и довольно давно задумал удалить SPA (single page application), переделать на обычный серверный рендеринг и избавиться от геморроя, связанного с быстрым устареванием фронтендовой инфраструктуры.

Но прошло уже 7 лет, а админка продолжает работать, bower не исчез, а всё так же скачивает пакеты, хоть и предупреждает уже несколько лет, что пора мигрировать на Yarn и Vite (что это, кстати?), крутится в докере 8-я версия Node.js, а выше не поднимешь, так как собираться код уже не будет...

Показатели GTmetrix 2023

NewsЗамеры на будущее, 2-я часть

Ну вот это самое будущее и наступило, даже существенно раньше, чем предполагал :) Показатели на свежевыложенной новой версии. Хоть инструменты для измерений и претерпели изменения и сравнивать напрямую нельзя, но приблизительно оценивать можно. Стало хуже, но впереди будут оптимизации, пока было не до них, нужно было публиковать уже то, что есть, а то, что есть, активно доделывается и обрастает новыми задачами и задумками. Главное, чтобы не отпустило, а то неизвестно на сколько меня ещё хватит, опять заброшу этот блог.

GTmetrix и аудит Lighthouse из гугл-хрома:

слиплись картинки

NewsГотово, вроде...

Переключил на новую гошную версию движка на ночь глядя. Утром посмотрю, не завалилось ли приложение и сколько навалило 500-х и прочих ошибок в логи 😁
в процессе

NewsРождение в муках

С переменным успехом и крайне редкими набегами, но всё таки движется разработка третьей версии движка этого заброшенного блога. Запись про новую админку была аж в 2016-м 😅 В данный момент нахожусь почти на финишной прямой, заканчиваю с комментариями. Наконец-то реализовал Nested set для двевовидных комментариев и категорий.

Ну и скриншот, типа работа полным ходом 😁

Бух

NewsВойна на Украине. 24.02.2022

Каждое поколение должно поучаствовать в войне.
- Адольф Гитлер

За несколько недель (если не месяцев) до описываемых событий началось массовое нагнетание. И подобные новости я получал от подруги тревожницы, сам же не относился к этому серьёзно, потому что мантра "Путiн приде, Путiн нападе" за много лет уже порядком надоела, считал, что украинские правители имеют крохи разума и инстинкт самосохранения, будут и дальше зарабатывать на войне, на закупках у самих себя для армии топлива, продовольствия по несколько завышенным ценам, военный сбор опять же, который вычитается у каждого украинца из зарплаты, если эти зарплаты не в конверте. Ну и в целом, поддерживать этим запугиванием внешним врагом в тонусе свидомых украинцев. Впервые же заметил, что происходит неладное, когда увидел в TikTok короткие видео с военной техникой, находящейся у украинских границ над Харьковом и этой техники было много. А то, что война будет, осознал 23-го числа вечером, после видео с Путиным, где он говорил, что ЛДНР будут признаны в границах их областей.

Показатели GTmetrix

NewsЗамеры на будущее

Работы над новым бложиком идут полным ходом. Позавчера вот первый запрос к БД выполнил, например 😏. Такими темпами до конца семилетнего карантина движок и будет как раз закончен. Ну а пока оставлю тут пару скриншотов пиписькомеров, чтобы было куда равняться, потому как показатели новой версии должны быть, как минимум, не хуже.

GTmetrix раз:

И аудит из Chrome DevTools два:
Аудит Chrome DevTools

Всё зелёненькое и хорошо. На этом пока всё.

NewsНазад дороги нет

Всё. Даже куплена новая тема на themeforest.net. Периодически происходят набеги к новому движку этого блога, который пишется на Golang (с марта 😅).

А вообще, в разные периоды времени, я переделывал свой блог на Python (Django), Phalcon Framework, Clojure (Luminus), Java (Ninja Framework и Spark),Common Lisp (Hunchentoot), Elixir (Phoenix). Но так ни разу и не довёл дело до конца, максимум добирался до пажинатора страниц. Да и на Golang это уже не первая попытка. Но будет последняя. Или сейчас, или уже никогда 💩 Всё равно не веду эти страницы, только за VPS плачу.

NewsПереехал в контейнер :)

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

Пришлось немного подумать кроне. Варианта виделось три:

  1. Залепить крон в тот же контейнер, где крутится веб-приложение. А вебсервер и процесс крона запускать через supervisord, как делают некоторые (раз и два). Но это как-то не docker way, поэтому не захотелось :)
  2. Отдельный контейнер, где бы жил и крутился крон. Этот вариант делать не стал из-за перерасхода ресурсов, пусть и минимального.
  3. И третий вариант, который прижился. Просто запускаю docker run из хост-системы её же кроном. Прекрасно работает :)

Вроде такого:

1
/usr/local/bin/docker-compose -f /path/to/docker-compose.yml run --rm myweb /path/to/cronscript