Общая

Кодить каждую неделю 8 часов

Цель: кодить каждую неделю 8 часов.

В конце каждой недели писать отчёт. В отчёте писать сколько из запланированных восьми часов потратил за неделю. Можно писать о том, что именно я кодил и что нового узнал.

Кодинг на основной работе в эти 8 часов не входит, а учитываются только лишь мои личные проекты которые я пишу для себя.

 Критерий завершения

План выполнен, отчёты написаны

  • 5290
  • 11 февраля 2017, 12:37

Дневник цели

2971день
Александр Савинов31 мар. 2025, 22:24

Всем здравствуйте. Пришло время показать мой новый персональный веб-сайт: https://hinst.github.io На прошлой неделе я потратил 8 часов на создание веб-сайта, а в общей сложности я уже потратил на него 50 часов.

Вот что есть в моём сайте:

  • Мои блог посты на трёх языках: русский - оригинал, немецкий и английский - перевод с помощью LLM 🇷🇺 🇩🇪 🇬🇧
    • Перевод делается автоматически с помощью программки LM Studio и модели Aya Expanse 8B
    • Каждый день в полночь моя программка Orange Pi посылает запрос на мой настольный компьютер с просьбой перевести текст. Сделать такое пришлось потому, что Orange Pi имеет слишком мало памяти, чтобы запустить LLM. Нужно 8 GB, а в Orange есть только 4 гигабайта. Если мой настольный компьютер был выключен в нужный момент, то перевод откладывается на следующий день по расписанию
    • Первоначально я планировал делать перевод текста с помощью сервиса Google Translate, но оказалось что их API платный, а вот бесплатной версии официально не существует... Наверное, можно было попытаться сделать, чтобы запросы шли по тому же протоколу, который использует браузерный веб-переводчик, но в итоге я решил с этим не возиться
  • Два варианта показа блога с календарём: для широких экранов и для узких смартфонов 💻📱

Вот что планируется в будущем:

  • Комментарии
  • Полный переход на SQLite
    • Сейчас большая часть информации хранится в текстовых файлах, и лишь некоторая информация хранится в SQLite

Пока я работал над новым сайтом, то заметил дыру в безопасности в моём старом сайте 🤔 там можно было ввести ../ в параметры URL, а проверки на это у меня не было... Так что, в теории можно было выйти из папки с блог-постами в любую другую папку на сервере. Впрочем, сайт работал в Docker, так что ничего особо интересного там найти было нельзя 😴 Или можно? Дыру я уже починил https://github.com/hinst/SmartProgress-or/commit/b... 👌.

Загрузить 1 комментарий

если найдёте дыру в безопасности в моём сайтике, то сообщайте 🥺 награда за находку = один лайк на СмартПрогрессе

ФедорВчера, в 9:54

Александр, у меня сайт показывается сразу на трёх языках. Тайтл блога на русском, календарь на украинском и всё остальное на английском 🥲

логично 👌 я и сам это замечал, но буду ли я это чинить - не известно, ибо для устранения проблемы придётся сильно запариться, а проект и так уже получился очень запарный 🥵 проблема по идее возникает только у тех пользователей, у которых в браузере несколько языков настроено

2964день
Александр Савинов24 мар. 2025, 20:45

Всем здравствуйте. Пришло время написать отчёт про мои приключения в коде.

⚠️ Но сначала: в Next.js обнаружили большую дыру в безопасности. И в отличии от большинства дыр, про которые я читаю, но не понимаю, как их вообще использовать 🤔💭 ...эта дыра простая и понятная: в Header записываем "пропустить авторизацию", и она пропускается 🫡👌. Библиотека Next.js популярная, и многие ею пользуются. Статистика на скриншоте. Тем, кто пользуется Next.js, нужно срочно установить обновление.

На прошлой неделе я потратил 18 часов на разные программные проекты в свободное время

  • 14 часов 🌐 персональный веб-сайт, про который я писал в предыдущем посте. Разработка затянулась дольше, чем я первоначально предполагал. Стараюсь делать без спешки.
    • В персональном веб-сайте я сейчас настраиваю SQLite для хранения данных. Дело идёт медленно. И, честно говоря, нет уверенности, что SQLite там точно нужен. Но раз уж мне так захотелось, то нужно доделывать 🐞
  • 2 часа 🍊 настройка Orange Pi. Здесь опять поломалась файловая система ext4 после отключения электричества в моей квартире
    • Тут нужно заставить систему самостоятельно чинить файлы после поломки, но как это сделать - вопрос. Предыдущие мои попытки настроить авто-коррекцию не увенчались успехом. В этот раз использовал другой подход. Надеюсь, теперь-то сработало - узнаем после следующего отключения электричества 💭
  • 2 часа 🔙 потратил на изучение программ для создания резервных копий. Программки называются rclone и rustic. Обе из них написаны на Go, и обе показались мне сложными и странными. Rclone не умеет нормально синхронизировать между NTFS и exFAT, а rustic сохраняет полный путь к файлу каждый раз. А что если я переложил мои файлы в другую папку? 🤔💭😔 не понятно.
2957день
Александр Савинов17 мар. 2025, 11:56

Всем здравствуйте. Пришло время еженедельного отчёта

  • Создание моего нового веб-сайта 🌐 8 часов
  • Собирание статистики LeetCode 🖥️ 2 часа

Новый веб-сайт

Мой новый веб-сайт уже доступен здесь: https://orangepizero2w.tail46746a.ts.net/hinst-we...

  • Адрес на GitHub.io я пока ещё не сделал, но скоро сделаю. Увидел, что на https://hinst.github.io/ у меня сейчас находится мой Бложик из 2018 года, с всего лишь одним постом. Пока ещё не решил, сохранить ли его куда-нибудь, или удалить совсем
  • Автоматический перевод на английский и немецкий языки я уже частично сделал, но фоновое создание переводов для новых постов ещё не готово, поэтому переводы сейчас доступны только для постов от февраля и раньше
    • Показываемый язык зависит он настроек браузера у пользователя. Отдельного переключателя языка на самой странице у меня пока нету.
    • Переводчик работает с помощью программки LM Studio. Тут были свои сложности, про которые расскажу наверное в следующий раз
  • Светлая и тёмная тема - уже сделано, и тоже зависит от настроек браузера у пользователя. Отдельного переключателя на самой странице нет.

LeetCode статистика

Статистика LeetCode получилась такая:

  • Затраты времени:
    • ⌛ На прохождение 100 задач ушло 129 часов.
    • 🐌 Самая долгая задачка: Scramble String. На прохождение этой задачки у меня ушло 11 часов.
  • Языки программирования
    • 📘 TypeScript: 80 задачек
    • 🦀 Rust: 19 задачек
    • 🦫 Go: 1 задачка
  • Для некоторых задачек мне приходилось искать подсказки онлайн, потому что я не знал алгоритм нужный для их решения.
    • 👌Прошёл самостоятельно: 87 задачек
    • 💭 Прошёл с подсказкой: 13 задачек

Первоначально я собирался пройти все задачки на языке программирования Rust, но позже перешёл на TypeScript, ибо учить новый язык и новые алгоритмы одновременно было сложно.

Проходить ещё больше задач на LeetCode.com я пока не планирую. Так что, это было подведение итогов только для тех задачек, которые я уже прошёл раньше.

2950день
Александр Савинов10 мар. 2025, 11:35

Всем здравствуйте. Пришло время еженедельного отчёта

  • Я потратил 18 часов на кодинг за 9 дней

Делаю новый персональный веб-сайтик. План такой:

  • В качестве контента возьму все мои посты с SmartProgress из моих двух целей: кодинг и велосипед
  • Все посты пройдут автоматический перевод через Google Translate API. Будет переключатель языка, чтобы мои посты можно было читать на русском и на английском языках 🇷🇺 🇬🇧
    • Переведённый текст будет кэшироваться с помощью специального скрипта, чтобы переводить текст только один раз, а не при каждом показе
  • Планирую добавить этот персональный сайтик в мой профиль Linkedin, для этого и решил сделать перевод на англ. яызк
  • Ещё будет полноценный URL засчёт хостинга Github Pages на github.io
  • Frontend UI: React.js
  • Backend: Golang

В общем, это будет улучшенная версия моего старого сайтика с постами, который доступен здесь: https://orangepizero2w.tail46746a.ts.net/smartPro... На первом скриншоте: новый дизайн; он ещё не готов, но уже примерно понятно, как он будет выглядеть.

React.js на мой взгляд всё ещё лучший фрэймворк для UI, несмотря на усердные попытки его усложнить

2940день
Александр Савинов28 февр. 2025, 19:03

Всем здравствуйте. На этой неделе я потратил 10 часов на кодинг в свободное время, и доделал мою программу для сравнения SQLite и MongoDB

SQLite vs MongoDB ⚔️ https://github.com/hinst/mongodb-sqlite-versus

  • SQLite примерно в семь раз быстрее, чем MongoDB
    • SQLite работает с файлом напрямую, без HTTP, а в MongoDB клиент и сервер должны общаться между собой
  • MongoDB файлы занимают примерно в два раза меньше места на диске, чем SQLite
    • MongoDB поддерживает встроенное сжатие zstd

Сжатие можно принудительно отключить в MongoDB, но по скорости это почти никак не влияет.

Думаю, SQLite лучше подходит для микро-проектов на Orange Pi. У меня карта памяти на 256 гигабайт, и её должно по-идее хватить даже на довольно большие базы. Правда, 40 гигабайт уже сожрали Debian, Docker и Kubernetes 😤. К тому же, MongoDB имеет проблемы на Orange Pi: официальная версия не запускается вовсе из-за проблем с совместимостью. Мне удалось запустить MongoDB на Orange только с помощью танцев с бубном. А вот SQLite запускается сразу из коробки.

Ещё пробовал тестировать libSQL от Turso, но там сразу полезли баги и недоделки, поэтому желание продолжать быстро пропало. Думаю скоро начать делать мини-проект сайтик на Orange Pi, но сначала нужно нормально поспать 😴

2936день
Александр Савинов24 февр. 2025, 17:32

Всем здравствуйте. Пришло время написать мини-отчёт за прошедшую неделю

  • Кодинг 💻 10 часов
  • Копание Orange Pi 🍊 3 часа
  • Иностранный язык 🇩🇪 4 часа

Я собирался сделать небольшой веб-сайтик. Задумался, какую базу данных использовать: MongoDB или SQLite. Долго думал, и решил написать прогу для сравнительного тестирования: MongoDB vs SQLite benchmark. Потратил на это 10 часов. Прога ещё не готова, но скоро будет готова... Узнаем, что быстрее: MongoDB или SQLite. Будет два теста: первый тест на моём "большом" компьютере, а второй тест на маленьком Orange Pi.

Некоторые промежуточные выводы я уже собрал. SQLite легко сломать: один раз забыл (или "не смог") вызвать query.Close() - и всё, ты "обосрался". Данные зависнут в промежуточном журнале навсегда. Даже запросы на чтение нужно обязательно всегда закрывать, иначе база может затупить. Вот ссылка на статью: https://turso.tech/blog/something-you-probably-wan...

А вот MongoDB - надёжная база, по моим ощущениям 🤔💭 Ощущения эти идут от того, что по работе её используем уже много лет, и база работает как часы. Запросы от проги заказчика идут весьма тяжёлые и постоянные. При этом, как-то поломать или замедлить базу - очень сложно. Но и "жрёт" эта база больше CPU, чем SQLite. Насколько именно больше - выложу результаты в конце недели

🍊

Копание в Orange Pi: обновил Docker и Kubernetes -> сломались подключения к Service ClusterIP. Три часа искал причину поломки. Оказалось, формат имени сервиса внезапно поменялся...

  • Было: my.app.svc.cluster.local
  • Стало: my.app.svc

Откуда взялось изменение - я не понял. Подключения починились, когда я убрал .cluster.local из моих конфигов...

2931день
Александр Савинов19 февр. 2025, 09:15

Пришло время написать мини-отчёт. Кодить хочется, но не получается из-за постоянной усталости

  1. Иностранный язык 🇩🇪 5 часов
    1. Моя подготовка к сертификату наконец-то закончилась, теперь
  2. AI рисование 🖼️ много часов
    1. Установил самые тяжёлые из доступных "простым смертным" модели: Flux и Stable Diffusion 3.5
      1. Оказалось, что запустить их на видеокарте с 16 ГБ памяти можно, если использовать fp8 версию. Эта версия доступна только в проге ComfyUI, а вот для Amuse её не скомпилировали 😤
    2. Настраивал конвейеры из прямоугольников и верёвок. Это похоже на "визуальное программирование"
2923день
Александр Савинов11 февр. 2025, 11:58

Пришло время написать еженедельный мини-отчёт. На прошлой неделе не было времени на кодинг😴

  • Иностранный язык 🇩🇪 13 часов
    • Готовился получить новый сертификат. Это было долго и напряжно
  • Цифровое рисование 🖼️
    • Установил новую прогу для AI-рисования: ComfyUI-Zluda. Эта прога намного сложнее предыдущей проги, которой я пользовался. Старая прога называлась AMD Amuse
      • Цензуры здесь нет вовсе, а вот в Amuse надо было убирать цензуру. К тому же, в новой версии Amuse цензуру усилили 🤬
      • Можно собирать "конвейер" для рисования из строительных блоков и соединять эти блоки верёвками. Интерфейс Amuse проще, а в ComfyUI большой конвейер превращается в месиво из макаронин 🍝
      • Можно настроить автоматическое исправление для лица персонажей. Для этого надо скачать пять разных пакетов с различных страниц и связать их макаронами. Настраивать всё это - настоящий отвал башки. Сильно ли это нужно - вопрос. 🤔 Лица я мог исправлять и раньше вручную. А теперь - да, чуть быстрее. За то же время можно наштамповать больше рисунков - но честно говоря, качество важнее количества, в этом случае. Лучше уж сделать один мöщный рисунок, чем десять средненьких.
      • Можно использовать модели в формате safetensors с помоечки CivitAI. Это пожалуй самое большое достоинство, ибо для Amuse набор моделей был ограничен, и автор не торопился компилировать новые модели. А вот на Civit можно получить самые новые модели из кучи. Я уже скачал несколько штук новых моделей. Чувствую, скоро место на диске закончится
    • Рисовать руками (без AI) хочется, но не можется. Время что-то не находится, а когда найдётся - буду рисовать карандашом. Когда-нибудь
2917день
Александр Савинов5 февр. 2025, 17:23

Пришло время написать еженедельный отчёт

  • Иностранный язык 🇩🇪 6 часов 53 минуты
    • Готовлюсь к получению нового сертификата. Требуется тонна времени на это
  • LeetCode 💻 3 часа
    • Прошёл три задачки
      • 97. Interleaving String ⌚ потратил 49 минут 📊 скорость 94% ✈️
      • 98. Validate Binary Search Tree ⌚ потратил 40 минут 📊 скорость 75%
      • 99. Recover Binary Search Tree ⌚ потратил 1 час 33 минуты 📊 скорость 5% 🐌
    • Все задачи прошёл самостоятельно, без подсказок

В этот раз рассуждений насчёт того, когда я наконец начну большой проект - не будет, потому что семья и работодатель съели всё моё свободное время, а я устал что-то выдумывать

2908день
Александр Савинов27 янв. 2025, 18:38

Добрый вечер. Пришло время написать еженедельный отчёт. На прошлой неделе я делал такие дела в свободное время:

  • Задачи LeetCode 🖥️ 9 часов
  • Иностранный язык 🇩🇪 8 часов

Прошёл такие задачи LeetCode:

  • 89. Gray Code ⌚ сидел 46 минут 📊 скорость 55%
  • 90. Subsets II ⌚ сидел 32 минуты 📊 скорость 67%
  • 91. Decode Ways ⌚ сидел 44 минуты 📊 скорость 70%
  • 92. Reverse Linked List II ⌚ сидел 1ч 53м 📊 скорость 100%
  • 93. Restore IP Addresses ⌚ сидел 33 минуты 📊 скорость 71%
  • 94. Binary Tree Inorder Traversal ⌚ сидел 28 минут 📊 скорость 64%
  • 95. Unique Binary Search Trees II ⌚ сидел 2ч 46м 📊 скорость 37%
  • 96. Unique Binary Search Trees ⌚ сидел 1ч 21м 📊 скорость 100%

Итого прошёл 8 задач:

  • Самостоятельно без подсказок 🟢 5 задач
  • Прошёл с подсказкой 🟡 3 задачи. Это были раздражающие задачи

Планирую дойти до задачи номер 100 и после этого переключиться на какой-нибудь другой мини-проект.

Узнал про изменение в правилах Яндекс.Диска: теперь безлимитное хранилище фото отменяется, и все фотографии переехали в лимитный сегмент диска... После этого мой диск сразу заполнился более 100%. Теперь нужно думать, куда девать мои файлы. Думаю организовать домашнее хранилище, без помощи "облаков"

Вы тоже можете
опубликовать свою
цель здесь

Мы поможем вам ее достичь!

310 000

единомышленников

инструменты

для увлекательного достижения

Присоединиться
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?
Tudumch
fl4k
Татьяна
Сергей
resignedangel
Tudumch
Oleg
Сергей
Time4changes
Федор
Федор
Andres
Александр Савинов
Федор
Tudumch
Федор
Ekaterina Rudopas
dariana
Sid Vicious
Tudumch
AiS
Time4changes
Федор
Ekaterina Rudopas
Tudumch
Time4changes
Федор
Sid Vicious
Nika Sidorova
Tudumch
Федор
Ekaterina Rudopas
dariana
Sid Vicious
Tudumch
Михаил
Федор
Ekaterina Rudopas
Sid Vicious
Tudumch
Time4changes
Федор
Ekaterina Rudopas
Sid Vicious
Tudumch
Федор
Andres
Kate
KsArT
Tudumch
Федор
Ekaterina Rudopas
Sid Vicious
Andres
Tudumch
Наталья
Федор
Ekaterina Rudopas
silva05