creator cover ELJORIKO
ELJORIKO

ELJORIKO 

Джавист, линуксоид-красноглазник, душнила

0subscribers

4posts

goals1
0 of 100 paid subscribers
Когда здесь будет 100 подписчиков, тогда здесь будет 100 подписчиков

About

Привет!
Я - разработчик-автоматизатор-джавист, которому недостаточно просто использовать готовый метод из библиотеки, а обязательно нужно разобраться, как оно работает "под капотом".

Всё началось в детстве из-за жгучего желания понять, как всё устроено изнутри. И я начал изучать всё, что было вокруг меня (Сначала методом сломал -> посмотрел, потом стал действовать аккуратнее). Всю полученную информацию я старательно собирал и систематизировал.

В блоге будут:
- Заметки исследования java core и прикладных библиотек
- Заметки по работе с linux
- Опыт автоматизации всего и вся
- Списки
Ссылки:

Sqlite WITH (CTE)

Режисcёрская версия распологается на сайте: 
https://gubaidulin-ks.ru/2026/01/10/SertInvalidDate/
(Там есть пример использования и сравнение скорости выполнения на разных объёмах данных)

Введение

Во время написания использовалась Sqlite 3.45.1
Заметка конкретно про WITH CTE основана на моём опыте. Я мог что то упустить, или забыть.
Чтобы получить полную информацию про эту конструкцию, рекомендую изучить официальную документацию:
sqlite.org
WITH - это конструкция для создания временного набора данных, существующих только для этого sql запроса.

Базовый синтаксис

WITH cte_name (column1, column2, ...) AS (
   sub_query
) SELECT * FROM cte_name;
Компоненты:
  • WITH: Ключевое слово для инициализации CTE
  • cte_name: Имя временной таблицы, на которую можно ссылаться
  • (column1, column2, ...): Название столбцов для CTE (Опционально)
  • AS (sub_query): Подзапрос, определяющий содержимое CTE
Можно определять несколько CTE в одном WITH, разделяя их запятыми:
WITH cte1_name AS (
   SELECT A, B FROM Table
),
cte2_name AS (
    SELECT C FROM Table2
) SELECT * FROM cte1_name, cte2_name;

Просроченный сертификат из-за DNS

Режисcёрская версия распологается на сайте: 
https://gubaidulin-ks.ru/2026/01/10/SertInvalidDate/

Узнавание о проблеме

При попытке залить новый пост на сайт неожиданно выяснилось, что сам сайт перестал открываться: браузер показывал ошибку NET::ERR_CERT_DATE_INVALID и жаловался на неправильные дату или время.

Убеждаемся, что сертификат действительно просрочен

Сообщение намекало либо на неверно настроенные системные часы, либо на проблемы с SSL‑сертификатом, но время на сервере и на клиенте было выставлено корректно, так что подозрение сразу пало на сертификат. Проверка через браузер подтвердила догадку: в деталях соединения в поле «действителен до» было видно, что сертификат для gubaidulin-ks.ru истёк 3 января 2026 года. То же самое показал и certbot: в его выводе статус сертификата числился как EXPIRED, с датой окончания в начале января.

Пытаемся обновить сертификат вручную

Следующий логичный шаг — попробовать обновить сертификат вручную и понять, что мешает автопродлению. При запуске команды вида sudo certbot certificates стало видно, что нужный сертификат найден, но уже недействителен, а система явно не смогла продлить его вовремя.
Попытка аккуратно проверить процесс через sudo certbot renew --dry-run закончилась неудачей: вместо успешной симуляции обновления появилась ошибка Temporary failure in name resolution. Это звучит уже не как проблема Let’s Encrypt или самого certbot, а как невозможность вообще достучаться до нужных серверов по имени. Если утилита не может даже разрешить домен ACME‑серверов, нормального обновления сертификата она провести не сможет.
Дальше началась проверка сетевого уровня.

Возможно проблемы с доступом к серверам

Первым делом был сделан запрос curl к адресу ACME‑серверов Let’s Encrypt, но команда сразу вернулась с ошибкой Could not resolve host, что подтвердило проблемы с DNS‑резолвингом. Для чистоты эксперимента аналогичный запрос был отправлен к чему‑то попроще, вроде ya.ru, и результат оказался таким же: имена не резолвятся вообще. В качестве варианта рассматривались проблемы с DNS‑сервисом или влияние WireGuard‑туннеля, поэтому интерфейс wg0 был временно отключён, но это не помогло — доменные имена всё так же не переводились в IP‑адреса. При этом простой ping по IP‑адресу 8.8.8.8 успешно проходил с нормальным временем отклика, что показало: интернет‑доступ есть, маршрутизация работает, а вот DNS‑часть сломана.

Сайт

Теперь есть сайт, где будут публиковаться посты и статьи: https://gubaidulin-ks.ru
Здесь (бусти) будут так же публиковаться посты и статьи, если позволит форматирование. В противном случае, будет ссылка на странцу блога, где всё будет выглядеть именно так, как задумывалось.

Зачем

После анализа примерно 20 бусти блогов я пришёл к следующему выводу:
Все блоги начинают свой рассказ либо с того, что они будут выкладывать на бусти, либо (Если канал создан известным стримером, например) что все его уже знают и знают зачем они здесь.
Я начну блог с поста с ответом на вопрос зачем этот блог:
1. Я по ходу работы или исследований часто сталкиваюсь с тем, что на мои вопросы нет прямого ответа или ответ сильно глубоко спрятан. По этому мне приходится долго и упорно копать в поисках ответа. Иногда, на некоторые вопросы, я нахожу ответ в блоге у другого человека, но чаще всего приходится читать доку к коду, изучать исходники (Если они есть) или дизасемблить приложение. А после нахождения ответа, или решения я его использую и всё. Я знаю что не я один с таким сталкиваюсь, и что могу помочь кому-то, кто начнёт искать решение той же проблемы, с которой столкнулся я. Но если я не опишу решение, то и помочь не смогу.
2. Я делаю какую то настройку на сервере, на рабочем месте, или оптимизирую какую то рутину, но это остаётся где-то. Но уже потрачено несколько часов на изучение как это работает, и почему лучше делать так, а не иначе. А эта информация может быть полезна другому человеку (или даже мне в будущем).
3. Я люблю заметки. Заметки формата "Проблема" -> "решение". И я регулярно веду такие заметки. Вот только пользы от них только мне.
4. Часто во время поиска ответа я нахожу много интересной информации, которая просто исчезает не сформировавшись в готовую статью.
Таким образом через меня проходит какое-то кол-во информации, она обрабатывается и далее она просто теряется. Хотя она может быть полезна тем, кто столкнулся с подобной проблемой. Либо находится что то интересное и необычное, что можно оформить в статью, но некуда публиковать.
Написал столько букв, а на вопрос не ответил. Чтож, исправляюсь: в блоге будет выжимка из той информации, что я нашёл. Это может быть по поводу как устроена java, или как настроить прокси между двумя виртуальными машинами, или, даже, про то как правильно управлять картингом.
Здесь не будет одной определённой направленности. Но здесь будет интересно
Subscription levels1

Подписка

$0.15 per month
//TODO добавить описание подписки, и что пользователь получит
Go up