Добил наконец-то плагин для anki, о котором писал выше - https://github.com/vpoltora/lexiforge Страница плагина в хабе - https://ankiweb.net/shared/info/1830356451 Плагин максимально простой - добавил в него только то, что использую сам: - по кнопке (или сочетанию клавиш) генерируется описание слова на выбранном языке (или на английском, если не настроено; при этом если не выбран язык самого слова - он будет определен автоматически) и простой пример с использованием этого слова - добавляет озвуч...
dev notes
Пишу про Go, Vim, и про то, как я медленно ползу в сторону FAANG. Веду @digest_golang С предложениями: @junsenpub
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20Нерегулярная рубрика - плагины для neovim. Когда нужно посмотреть текущие изменения в ветке перед тем, как коммитить их - раньше я пользовался плагином https://github.com/sindrets/diffview.nvim, и он неплохо работает - слева дерево файлов, для которых были изменения, справа показывает два окна - с твоими правками и с состоянием ветки без последних изменений. Из минусов - не самый очевидный diff: подсветка не всегда показывает что ты удалил, а что добавил - часто и слева и справа измененные строк...
В большинстве проектов, с которыми я работал, обычно используют "дефолтный" тип для uuid-идентификаторов - UUIDv4. UUIDv4 - это 122 бита чистого рандома, отличный тип для уникального идентификатора. Но, обычно мы работаем с этим типом в базах, часто поле с этим типом помечается как primary key, и минус его в том, что он, при вставке в базу в индексируемом поле, дает хаотичный порядок. Простыми словами: при вставке в базу UUIDv4 попадает в случайное место индекса, из-за чего таблица постоянно раз...
В Cursor недавно завезли тему - cursor light, и на мой взгляд это лучшая светая тема для редактора, которую я видел. Очень приятное сочетание цветов, нет сверх-контрастов, нет перебора с кислотностью - все как надо. И она мне настолько понравилась, что я решил скопировать эти цвета и запилить на их основе тему для neovim - https://github.com/vpoltora/cursor-light.nvim (отсыпьте звездочек, мои чуваки 🙏) Все основные цвета спарсил LLM (спасибо vscode за json-конфиги), и затем они вручную попиксел...
Antigravity, который я хвалил выше, конечно крут, но будьте острожней: тут на реддите появился интересный пост - https://www.reddit.com/r/google_antigravity/comments/1p82or6/google_antigravity_just_deleted_the_contents_of/, где автор пишет как агент в процессе работы решил дропнуть файлы на локальном диске, и успешно это сделал, без запроса разрешения на это. При этом, модель заметила: Нет, вы совершенно не давали мне разрешения на это. Я просматриваю журналы с предыдущего шага и с ужасом вижу, ...
К предыдущей теме про Go, аллокации и сбощик мусора. Go дает нам легкость написания кода - нам не нужно думать о том, где будет лежать переменная - на стеке или на куче. Как я писал выше, тут есть очевидный минус - процессорное время. Чем сложнее структура данных, тем больше вероятность ее размещения на куче, и тем больше работы будет у garbage collector по сборке мусора. Тут как раз вышла небольшая заметка от honeycomb по этой теме - https://www.honeycomb.io/blog/how-we-saved-70-cpu-60-memory-r...
Пока копался во внутренностях Go и сравнивал его с Rust, нашел полезное. Как известно, в Go фаза escape analysis решает, кто и куда будет аллоцирован - в кучу или на стек. Базовое правило простое: живешь в пределах функции - на стек, живешь дольше - на кучу. И Go, как язык самостоятельный, иногда может решить аллоцировать на кучу то, что мы ожидали на стеке. Плюс в том, что Go сам умеет объяснять, почему он это сделал. Достаточно запустить build с флагом -m: go build -gcflags='-m' ./... И компил...
С начала года ничего не писал, потому что активно ходил по собесам и сильно зашивался по времени. Выборка у меня - валютные удаленки, сходил в 7 компаний разной степени известности, дойдя до разных этапов собеседования. В итоге с конца декабря по сегодняшний день - 7 собесов со следующим результатом: - 3 раза дошел до финала (4-ый пока под вопросом) - из 3-х финалов - 1 потенциальный оффер Так что там у нас с рынком? Во-первых, сотни постов в linkedin и x.com о том, что рынку плохо - в целом не ...
В go-блоге вышел очень подробный разбор работы нового garbage collector в Go - Green Tea, который завезли в Go 1.25 - https://go.dev/blog/greenteagc По утверждениям разрабочиков - оптимизация позволяет выполнять сборку мусора быстрее на 10-40 процентов (правда, не всегда). В целом - отличная статья с иллюстрациями и объяснением что такое GC в целом и как он работает, а так же за счет чего достигнута опимизация. Правда, ребята из dolthub недавно попробовали его запустить у себя на проде, и получи...
По итогам 3-х последних сообщений выше и моих разбирательств с тем, как Rust работает с памятью и чем это отличается от работы с памятью в Go - набросал небольшую статью. Внутри разбор семплов процессора, анализ дампов программы на Go, сравнение ее с дампами программы на Rust и вывод, что работает быстрее, что надежнее, а что удобнее. Велкоме - https://poltora.dev/rust-vs-go-memory-ru/ dev notes | golang digest