JSONPatch
Частый спор про изменение объекта по API — это как передавать данные. Я встерчал 3 подхода:
• передавать полностью весь объект
• передавать только поля, которые нужно изменить
• отдельные API для изменения конкретных полей объекта
Кто напишет про GraphQL, gRPC и др., тот хрюшка.
Для варианта передачи только полей, которые изменились, нужна какая-то обвязка. В Python сейчас стандарт — Pydantic. Раньше мы мучались с тем, как обрабаывать
Оказывается, есть стандарт — https://jsonpatch.com/. Но и в нём есть, к чему придраться — это то, как указывается путь до ключа
• JSONPath (самый очевидный)
• jq (самый хипстерский)
• JSON Path Expressions в SQL (самый занудный)
• JSONata (не то, чтобы стиль, но заслуживает внимания)
Короче, я хочу JSONPatch, который использует JSONPath для путей.
С другой стороны это мелочи по сравнению с тем, что операции в JSONPatch — это по сути история изменений объекта, которую можно хранить, не храня снапшоты объектов. (вспоминаю django-reversion)
Частый спор про изменение объекта по API — это как передавать данные. Я встерчал 3 подхода:
• передавать полностью весь объект
• передавать только поля, которые нужно изменить
• отдельные API для изменения конкретных полей объекта
Кто напишет про GraphQL, gRPC и др., тот хрюшка.
Для варианта передачи только полей, которые изменились, нужна какая-то обвязка. В Python сейчас стандарт — Pydantic. Раньше мы мучались с тем, как обрабаывать
None, а сейчас есть foo.model_dump(exclude_unset=True). И вроде как всё ок, но это только Python.Оказывается, есть стандарт — https://jsonpatch.com/. Но и в нём есть, к чему придраться — это то, как указывается путь до ключа
path, который напоминает unix-овые пути. А ведь уже есть несколько других стилей:• JSONPath (самый очевидный)
• jq (самый хипстерский)
• JSON Path Expressions в SQL (самый занудный)
• JSONata (не то, чтобы стиль, но заслуживает внимания)
Короче, я хочу JSONPatch, который использует JSONPath для путей.
С другой стороны это мелочи по сравнению с тем, что операции в JSONPatch — это по сути история изменений объекта, которую можно хранить, не храня снапшоты объектов. (вспоминаю django-reversion)
Obsidian Publisher United
Запилил плагин для Obsidian — Publisher United. https://github.com/biozz/obsidian-publisher-united
Сделал свой, потому что не понравились flowershow (https://github.com/datopian/flowershow) и enveloppe (https://github.com/Enveloppe/obsidian-enveloppe).
У меня ещё и киллер-фича есть — публикация в Телегу из Обсидиана. Настраивается через front-matter:
После публикации добавляются ещё два поля для редактирования поста и быстрого перехода, если что:
Аналогично и для публикации в GitHub репозиторий:
Последние 5 постов я уже публикую только с помощью плагина. А первый релиз
Любые идеи и предложения по доработке плагина приветствуются!
Запилил плагин для Obsidian — Publisher United. https://github.com/biozz/obsidian-publisher-united
Сделал свой, потому что не понравились flowershow (https://github.com/datopian/flowershow) и enveloppe (https://github.com/Enveloppe/obsidian-enveloppe).
У меня ещё и киллер-фича есть — публикация в Телегу из Обсидиана. Настраивается через front-matter:
telegram_channel: @biozz_dev
После публикации добавляются ещё два поля для редактирования поста и быстрого перехода, если что:
telegram_message_id: 123
telegram_url: https://news.1rj.ru/str/biozz_dev/123
Аналогично и для публикации в GitHub репозиторий:
github_repo: biozz/test
repo_path: content/blog
Последние 5 постов я уже публикую только с помощью плагина. А первый релиз
v0.0.1 назван в честь первого менеджера Manchester United F.C. — https://en.wikipedia.org/wiki/A._H._Albut.Любые идеи и предложения по доработке плагина приветствуются!
GitHub
GitHub - biozz/obsidian-publisher-united: Obsidian.md plugin to publish notes to various targets
Obsidian.md plugin to publish notes to various targets - biozz/obsidian-publisher-united
🔥1👏1
Про ЯП. Rust такой «— Вам какие скобки? — Да.»
Посмотрите на этот код:
В первой строке все виды скобочек! И читать сложновато.
Лично для меня эталон по читаемости — Go, а по экспрессивности — TypeScript. В Rust будто взяли худшие из этих миров.
А вы когда-нибудь задумывались, почему в английском скобки называются brackets, braces и parenthesis? Заходите за ответом к лингвисту-программисту @lingua_programma. (кстати, канал ведёт кое-кто из Островка, угадайте кто)
Посмотрите на этот код:
fn example_function<T: Fn(i32) -> i32>(arr: &[i32], func: T) -> Vec<i32> {
let mut result = vec![];
for i in 0..arr.len() {
if arr[i] % 2 == 0 {
result.push(func(arr[i]));
}
}
result
}
В первой строке все виды скобочек! И читать сложновато.
Лично для меня эталон по читаемости — Go, а по экспрессивности — TypeScript. В Rust будто взяли худшие из этих миров.
А вы когда-нибудь задумывались, почему в английском скобки называются brackets, braces и parenthesis? Заходите за ответом к лингвисту-программисту @lingua_programma. (кстати, канал ведёт кое-кто из Островка, угадайте кто)
1👾3
Про двух Иванов. Ещё раз про качество звука в подкастах
Всё максимально просто: дрочево с правильным помещением и обработкой — пустая трата времени. Купите микрофон за 30-50к руб., любительско-полупрофессиональный, типа Shure MV7 и не парьтесь. Хватит на несколько лет точно. Или вообще записывайтесь на студии, которая вам потом и отредачит выпуск.
Всё максимально просто: дрочево с правильным помещением и обработкой — пустая трата времени. Купите микрофон за 30-50к руб., любительско-полупрофессиональный, типа Shure MV7 и не парьтесь. Хватит на несколько лет точно. Или вообще записывайтесь на студии, которая вам потом и отредачит выпуск.
👾2👌1
Сейчас будем стримить запись нового выпуска подкаста «Два Ивана (название обсуждается)».
С 13:00 до 14:30 (Мск).
Заходите послушать!
p.s.: в следующий раз пораньше заанонсю!
https://riverside.fm/studio/-s-studio-7iNaa
С 13:00 до 14:30 (Мск).
Заходите послушать!
p.s.: в следующий раз пораньше заанонсю!
https://riverside.fm/studio/-s-studio-7iNaa
Julia Evans
Я подписан по RSS на Julia Evans. Та простота и дотошность с которой она пишет — неповторимы. Стиль уникальный и, на мой взгляд, похож на то, как учатся дети: наивно, но пытливо и с интересом. А в конце всегда по-взрослому — даже если что-то не получилось, есть какой-то понятный вывод.
И зацените её зины про Git, SQL, CSS и много других.
https://jvns.ca/
https://wizardzines.com/
Я подписан по RSS на Julia Evans. Та простота и дотошность с которой она пишет — неповторимы. Стиль уникальный и, на мой взгляд, похож на то, как учатся дети: наивно, но пытливо и с интересом. А в конце всегда по-взрослому — даже если что-то не получилось, есть какой-то понятный вывод.
И зацените её зины про Git, SQL, CSS и много других.
https://jvns.ca/
https://wizardzines.com/
👍2❤1👾1
Маленький редактор и большие файлы
Несмотря на то, что NeoVim позиционируется как маленький и быстрый редактор, всё равно после добавления N плагинов на больших файлах или проектах появляются тормоза.
У меня два примера из практики:
- telescope и rg тормозили на Go проекте с большим vendor-ом
- treesitter медленно красит большие файлы
Проблему с rg получилось решить правильно настройкой
А со второй я сталкиваюсь реже, но сейчас есть плагины, которые вырубают часть фичей, если файл большой:
- https://github.com/LunarVim/bigfile.nvim
- https://github.com/pteroctopus/faster.nvim
Или можно написать свою автокоманду, которая делает тоже самое:
Или вообще запускать NeoVim без плагинов, но я всегда забываю про это —
Несмотря на то, что NeoVim позиционируется как маленький и быстрый редактор, всё равно после добавления N плагинов на больших файлах или проектах появляются тормоза.
У меня два примера из практики:
- telescope и rg тормозили на Go проекте с большим vendor-ом
- treesitter медленно красит большие файлы
Проблему с rg получилось решить правильно настройкой
.rgignore. И дело было, по сути, не в неовиме. https://biozz.dev/blog/neovim-telescope-lag/А со второй я сталкиваюсь реже, но сейчас есть плагины, которые вырубают часть фичей, если файл большой:
- https://github.com/LunarVim/bigfile.nvim
- https://github.com/pteroctopus/faster.nvim
Или можно написать свою автокоманду, которая делает тоже самое:
local function disable_some_features()
vim.cmd('TSBufDisable highlight')
vim.opt.foldmethod = 'manual'
vim.cmd('syntax off')
vim.cmd('filetype off')
vim.opt.undofile = false
vim.opt.swapfile = false
vim.opt.loadplugins = false
end
vim.api.nvim_create_autocmd({"BufReadPre", "FileReadPre"}, {
pattern = "*",
callback = function()
local file_size = vim.fn.getfsize(vim.fn.expand("%"))
if file_size > 512 * 1024 then
disable_some_features()
end
end
})
Или вообще запускать NeoVim без плагинов, но я всегда забываю про это —
nvim --clean.👍2👾1
Need for Speed™ NeoVim. Переключение между файлами
Тру вимеры не пользуются вкладками и держат в голове список открытых буферов, переключаясь между ними через
Нам до тру вимеров далеко и часто бывает так, что нужно сфокусироваться на паре-тройке файлов и не искать их в списке открытых буферов. Есть несколько вариантов, как это сделать.
Как обычно, первый — не париться и замапить
Дальше по уровню нативности — marks. Отметил несколько файлов, потом по ним прыгаешь. Я так и не пристрастился, даже с плагинами, которые делают сами ответки более визуальными, а список — красивым.
Потом пришёл Primagen и придумал Harpoon. А потом переписал его и сделал Harpoon 2. Суть одна — помечаешь файлы, потом хоткеями прыгаешь между ними. Получается как
Кто-то не оценил гарпун и сделал свой вариант — arrow.nvim. А кто-то хотел ещё и красивый интерфейс. Так появились snipe.nvim и tide.nvim. Но олды помнят, что открытые буферы сбоку умел показывать neo-tree.
А вы чем пользуетесь?
Тру вимеры не пользуются вкладками и держат в голове список открытых буферов, переключаясь между ними через
:bn, :ls, :b <n>.Нам до тру вимеров далеко и часто бывает так, что нужно сфокусироваться на паре-тройке файлов и не искать их в списке открытых буферов. Есть несколько вариантов, как это сделать.
Как обычно, первый — не париться и замапить
TAB на следующий буфер, а S-TAB на предыдущий.Дальше по уровню нативности — marks. Отметил несколько файлов, потом по ним прыгаешь. Я так и не пристрастился, даже с плагинами, которые делают сами ответки более визуальными, а список — красивым.
Потом пришёл Primagen и придумал Harpoon. А потом переписал его и сделал Harpoon 2. Суть одна — помечаешь файлы, потом хоткеями прыгаешь между ними. Получается как
:bn и :bp, но только по отмеченным файлам. Don't worry about it © Primagen.Кто-то не оценил гарпун и сделал свой вариант — arrow.nvim. А кто-то хотел ещё и красивый интерфейс. Так появились snipe.nvim и tide.nvim. Но олды помнят, что открытые буферы сбоку умел показывать neo-tree.
А вы чем пользуетесь?
👾2
Need for Speed™ NeoVim. Скорость запуска
Какое время запуска редактора приемлемо?
У меня уже где-то полгода вот так:
До этого примерно год не парился, когда было ~150 мс.
А время сократилось вдвое вот почему:
• убрал примерно ~30 плагинов
• добавил lazy loading ко многим оставшимся
• закопался в исходники некоторых плагинов
Оказывается нет какого-то канонического способа посмотреть частоту использования плагина. Только если не добавлять в каждый стандартную телеметрию. Но такое вряд ли поддержат в сообществе. Поэтому я просто перечитывал конфиг и, если не вспомнил, что делает плагин, удалял его.
Интересно, что некоторые плагины перестают работать с переходом на lazy loading. И я уверен, что это чисто моя история. Например, nvim-lspconfig не может, да и зачем ему? Если пользуетесь lazy.nvim, то у вас такие варианты:
Самый наглядный пример того, как оптимизировать время запуска плагина в исходниках — xkbswitch.nvim. Это плагин, который использует внешнюю утилиту для запоминания текущей раскладки, а потом переключает раскладку на английскую в normal режиме и обратно в последнюю выбранную в insert режиме. Утилита может "долго" (15-30 мс на моём М1 Pro 16 Gb) отрабатывать, так как при первом запуске пытается понять, какую конкретно утилиту использовать и получает из системы список доступных раскладок. По сути это и есть два изменения, которые я сделал — два новых параметра, которые можно указать в конфиге плагина, и небольшой рефакторинг, чтобы не сломалось старое поведение.
В общем, я считаю, что 70-100 мс для редактора — это приемлемо. А сколько нынче запускаются всякие там пайчармы, голэнды и вскоды?
Какое время запуска редактора приемлемо?
У меня уже где-то полгода вот так:
Startuptime: 75.59 ms
Plugins: 54 loaded / 69 installed
До этого примерно год не парился, когда было ~150 мс.
А время сократилось вдвое вот почему:
• убрал примерно ~30 плагинов
• добавил lazy loading ко многим оставшимся
• закопался в исходники некоторых плагинов
Оказывается нет какого-то канонического способа посмотреть частоту использования плагина. Только если не добавлять в каждый стандартную телеметрию. Но такое вряд ли поддержат в сообществе. Поэтому я просто перечитывал конфиг и, если не вспомнил, что делает плагин, удалял его.
Интересно, что некоторые плагины перестают работать с переходом на lazy loading. И я уверен, что это чисто моя история. Например, nvim-lspconfig не может, да и зачем ему? Если пользуетесь lazy.nvim, то у вас такие варианты:
event, cmd, ft, keys и магический lazy = true. Your mileage may vary ©, поэтому пробуйте.Самый наглядный пример того, как оптимизировать время запуска плагина в исходниках — xkbswitch.nvim. Это плагин, который использует внешнюю утилиту для запоминания текущей раскладки, а потом переключает раскладку на английскую в normal режиме и обратно в последнюю выбранную в insert режиме. Утилита может "долго" (15-30 мс на моём М1 Pro 16 Gb) отрабатывать, так как при первом запуске пытается понять, какую конкретно утилиту использовать и получает из системы список доступных раскладок. По сути это и есть два изменения, которые я сделал — два новых параметра, которые можно указать в конфиге плагина, и небольшой рефакторинг, чтобы не сломалось старое поведение.
В общем, я считаю, что 70-100 мс для редактора — это приемлемо. А сколько нынче запускаются всякие там пайчармы, голэнды и вскоды?
The Everything App
AnyType в бете и такое чувство, что эта тулза сможет заменить мне Obsidian.
Где-то месяц назад я пробовал Outline, AFFiNE и другие альтернативы Notion, но в каждой не хватало dataview или какой-то мелкой фичи. Но ЭниТайп теперь умеет делать страницы, набор страниц, коллекцию наборов страниц, наборы коллекций наборов страниц, ну вы поняли. Может быть это качели в сторону «дать больше свободы» и к v1 они снова сделают что-то менее рекурсивное.
Весь контент шифруется и синкается между устройствами p2p. Но всё-таки импорт из моего Обсидиана пока что крашит ЭниТайп.
Если у меня получится вести в ЭниТайпе дневник, список покупок и сделать более-менее удобный трекер сериалов и аниме, то можно переезжать.
Они оупен-сорс, кста.
AnyType в бете и такое чувство, что эта тулза сможет заменить мне Obsidian.
Где-то месяц назад я пробовал Outline, AFFiNE и другие альтернативы Notion, но в каждой не хватало dataview или какой-то мелкой фичи. Но ЭниТайп теперь умеет делать страницы, набор страниц, коллекцию наборов страниц, наборы коллекций наборов страниц, ну вы поняли. Может быть это качели в сторону «дать больше свободы» и к v1 они снова сделают что-то менее рекурсивное.
Весь контент шифруется и синкается между устройствами p2p. Но всё-таки импорт из моего Обсидиана пока что крашит ЭниТайп.
Если у меня получится вести в ЭниТайпе дневник, список покупок и сделать более-менее удобный трекер сериалов и аниме, то можно переезжать.
Они оупен-сорс, кста.
anytype.io
Anytype — A safe haven for digital collaboration
Create notes, tasks, databases, and chats that only you can access. Your data stays on your device — fully owned, secure, and private. Free to start.
🤔1
У меня теперь модный эмоджи на канале, в который новости по RSS из Miniflux падают.
Кстати, если бы не подписки на всякие MyAnimeList и GitHub знакомых, то можно было бы и публичным этот канал сделать.🤔
Кстати, если бы не подписки на всякие MyAnimeList и GitHub знакомых, то можно было бы и публичным этот канал сделать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👾1
Разработка по SSH
В блоге моего сикретли любимого редактора Zed появилась статья про удалённую разработку —
https://zed.dev/blog/remote-development.
Похоже, что разработка по SSH сейчас де-факто в редакторах. И тут надо делить фичу на две: просто править файлики и запускать часть редактора на сервере.
NeoVim SSH-agnostic. Хотя и тут тоже были попытки сделать его похожим на VSCode с его devcontainers — https://github.com/amitds1997/remote-nvim.nvim. Про Emacs промолчу, не знаю ничего, но уверен, что там даже имплементация SSH есть на лиспе.
В VSCode уже давно из коробки и то и другое.
Для Sublime Text знаю только SFTP. Я даже в своё время покупал лицензию на этот плагин.
У JetBrains редактирование по SSH давно встроено, а с запуском на сервере настоящая шиза. Сначала был Projector, который стал JetBrains Gateway. Потом эксперименты с Fleet. Но в итоге всё какое-то костыльное и недоделанное. Хотя я знаю пару человек, кто норм живёт с проджектором.
Финальная форма разработки по SSH — это не использовать SSH напрямую, а подключаться к удалённому рабочему столу, и там уже использовать SSH (Xzibit расплывается в улыбке). Кстати, недавно наткнулся на селф-хостед утилиту, аналог TeamViewer — RustDesk.
В блоге моего сикретли любимого редактора Zed появилась статья про удалённую разработку —
https://zed.dev/blog/remote-development.
Похоже, что разработка по SSH сейчас де-факто в редакторах. И тут надо делить фичу на две: просто править файлики и запускать часть редактора на сервере.
NeoVim SSH-agnostic. Хотя и тут тоже были попытки сделать его похожим на VSCode с его devcontainers — https://github.com/amitds1997/remote-nvim.nvim. Про Emacs промолчу, не знаю ничего, но уверен, что там даже имплементация SSH есть на лиспе.
В VSCode уже давно из коробки и то и другое.
Для Sublime Text знаю только SFTP. Я даже в своё время покупал лицензию на этот плагин.
У JetBrains редактирование по SSH давно встроено, а с запуском на сервере настоящая шиза. Сначала был Projector, который стал JetBrains Gateway. Потом эксперименты с Fleet. Но в итоге всё какое-то костыльное и недоделанное. Хотя я знаю пару человек, кто норм живёт с проджектором.
Финальная форма разработки по SSH — это не использовать SSH напрямую, а подключаться к удалённому рабочему столу, и там уже использовать SSH (Xzibit расплывается в улыбке). Кстати, недавно наткнулся на селф-хостед утилиту, аналог TeamViewer — RustDesk.
Audio
Тизер выпуска Два Ивана №34
Только что отслушал выпуск 34 после обработки и так понравилось, что даже захотелось поделиться цитатками оттуда.
Вообще выпуск про пет-проджекты, но вот так нас снова закрутило с Ваней, что поговорили обо всём вокруг.
А релиз, думаю, уже в следующую пятницу. И дальше постараемся постабильнее выпускать. Там уже 4 выпуска записано.
Только что отслушал выпуск 34 после обработки и так понравилось, что даже захотелось поделиться цитатками оттуда.
Вообще выпуск про пет-проджекты, но вот так нас снова закрутило с Ваней, что поговорили обо всём вокруг.
А релиз, думаю, уже в следующую пятницу. И дальше постараемся постабильнее выпускать. Там уже 4 выпуска записано.
🔥2
Пока, Островок!
Была давно статья про гуглера, который уволился и в цифрах описал весь свой путь. Статью не нашёл, зато сделал свои заметки про Островок:
• 2285 дней
• 6 месяцев бекендером
• 5 лет тимлидом
• 6 месяцев деврелом
• 2000+ созданных задачек, из них ~1700 закрытых (примерно)
• 3 офиса (включая удалёнку)
• 6 рабочих мест
• 3 руководителя
• 20+ человек в команде (в отдельные периоды, а так 10 большу часть времени)
• 57к+ сообщений в слаке
• 1 CEO
• 3 CTO
• 5 проектов с открытым исходным кодом
• 3 статьи на Хабре
• 8000+ коммитов в разные репозитории
• 4 ноутбука
• 5 внутренних хакатонов, как участник, в 2 победил
• 1 внешний хакатон помогал организовывать
• 2 внутренних разработческих ивента помогал организовывать
Есть ещё неподтверждённые чиселки, чисто из ощущений:
• поучаствовал в 200+ проектах (учитывая, что за последний год только около 50)
• провёл ~300 собесов (в 2023 точно 100, остальное округлил)
• нарисовал 200+ диаграм (170 только в Excalidraw с середины 2022 по 2024)
А вот на эти вопросы хотел бы получить ответы, но уже, наверное, никак:
• сколько проведено встреч по количеству?
• сколько часов проведено на встречах?
• сколько сделал релизов разных сервисов?
• какая общая сумма денежных потерь по инцидентам моей команды?
Может вам ещё что-то интересно было бы узнать?
Была давно статья про гуглера, который уволился и в цифрах описал весь свой путь. Статью не нашёл, зато сделал свои заметки про Островок:
• 2285 дней
• 6 месяцев бекендером
• 5 лет тимлидом
• 6 месяцев деврелом
• 2000+ созданных задачек, из них ~1700 закрытых (примерно)
• 3 офиса (включая удалёнку)
• 6 рабочих мест
• 3 руководителя
• 20+ человек в команде (в отдельные периоды, а так 10 большу часть времени)
• 57к+ сообщений в слаке
• 1 CEO
• 3 CTO
• 5 проектов с открытым исходным кодом
• 3 статьи на Хабре
• 8000+ коммитов в разные репозитории
• 4 ноутбука
• 5 внутренних хакатонов, как участник, в 2 победил
• 1 внешний хакатон помогал организовывать
• 2 внутренних разработческих ивента помогал организовывать
Есть ещё неподтверждённые чиселки, чисто из ощущений:
• поучаствовал в 200+ проектах (учитывая, что за последний год только около 50)
• провёл ~300 собесов (в 2023 точно 100, остальное округлил)
• нарисовал 200+ диаграм (170 только в Excalidraw с середины 2022 по 2024)
А вот на эти вопросы хотел бы получить ответы, но уже, наверное, никак:
• сколько проведено встреч по количеству?
• сколько часов проведено на встречах?
• сколько сделал релизов разных сервисов?
• какая общая сумма денежных потерь по инцидентам моей команды?
Может вам ещё что-то интересно было бы узнать?
👍7😢2
Audio
Пропеть ритм
Чтобы научиться выстукивать новый ритм на дарбуке, нужно его пропеть. Вот пример:
Этот ритм называется «максум» и звучит он как «дум-тэк тэк-дум тэк».
Включаешь метроном на 60-70 ударов или выстукиваешь ногой комфортный ритм и начинаешь напевать, попадая в сильные и слабые доли. Обычно слабые доли многих ломают. Но тогда можно упростить задачу, убрать их временно и пропеть «дум дум тэк» с паузами.
Когда начинаешь выходить на новые скорости и дробность ритмов, забываешь про эту технику. Врубаешь метроном на 100-120, пытаешься что-то сыграть. Получается так себе. Пробуешь спеть и понимаешь, что язык не успевает на таких скоростях. Приходится сидеть и доводить "песню" до осознанного состояния. А потом чудо — сыграть тоже получается!
Каждый раз удивляюсь, как это работает.
Чтобы научиться выстукивать новый ритм на дарбуке, нужно его пропеть. Вот пример:
1---2---3---4---:
D-T---T-D---T---:
Этот ритм называется «максум» и звучит он как «дум-тэк тэк-дум тэк».
Включаешь метроном на 60-70 ударов или выстукиваешь ногой комфортный ритм и начинаешь напевать, попадая в сильные и слабые доли. Обычно слабые доли многих ломают. Но тогда можно упростить задачу, убрать их временно и пропеть «дум дум тэк» с паузами.
Когда начинаешь выходить на новые скорости и дробность ритмов, забываешь про эту технику. Врубаешь метроном на 100-120, пытаешься что-то сыграть. Получается так себе. Пробуешь спеть и понимаешь, что язык не успевает на таких скоростях. Приходится сидеть и доводить "песню" до осознанного состояния. А потом чудо — сыграть тоже получается!
Каждый раз удивляюсь, как это работает.
❤2
Тирлист терминалов для MacOS
Почему-то думал, что я использовал сильно блольше терминалов на маке. А если хотите сделать свой тирлист или докинуть терминалов, то пожалуйста.
Ответы на самые частые вопросы и комментарии:
- да, ghostty ещё не вышел, но это же МИТЧЕЛ ХАШИМОТО!
- нет, терминалы на ноде никогда не поднимутся выше D-tier
- потому что терминал, в который нужно логиниться, никогда не поднимается выше D-tier
- потому что даже дефолтный терминал на маке лучше, чем терминалы на ноде
Почему-то думал, что я использовал сильно блольше терминалов на маке. А если хотите сделать свой тирлист или докинуть терминалов, то пожалуйста.
Ответы на самые частые вопросы и комментарии:
- да, ghostty ещё не вышел, но это же МИТЧЕЛ ХАШИМОТО!
- нет, терминалы на ноде никогда не поднимутся выше D-tier
- потому что терминал, в который нужно логиниться, никогда не поднимается выше D-tier
- потому что даже дефолтный терминал на маке лучше, чем терминалы на ноде
Notes as code (NaC)
Я случайно обнаружил, что с помощью Zed могу задавать вопросы своим заметкам.
Наверное, я не должен так удивляться, потому веду заметки также, как программирую. Вот, что я имею в виду:
- код в Markdown
- fuzzy-автодоплнение для ссылок на файлы, тегов и других символов
- линтер для заполнения и обновления frontmatter при сохранении
- полнотекстовый поиск
- структура файлов и папок (по большей части PARA)
А если это фактически кодовая база, то почему бы не заюзать AI ассистента для кода, чтобы синтезировать новую информацию или идеи?
В Zed есть AI ассистент. В нём можно добавлять контексты. Есть контекст
На скрине то, как я добавил
Причём для обсидиана уже есть куча плагинов AI ассистентов. Мне же плагины не нужны и достаточно современного редактора кода, потому что живу в концепции Notes as code (NaC).
Я случайно обнаружил, что с помощью Zed могу задавать вопросы своим заметкам.
Наверное, я не должен так удивляться, потому веду заметки также, как программирую. Вот, что я имею в виду:
- код в Markdown
- fuzzy-автодоплнение для ссылок на файлы, тегов и других символов
- линтер для заполнения и обновления frontmatter при сохранении
- полнотекстовый поиск
- структура файлов и папок (по большей части PARA)
А если это фактически кодовая база, то почему бы не заюзать AI ассистента для кода, чтобы синтезировать новую информацию или идеи?
В Zed есть AI ассистент. В нём можно добавлять контексты. Есть контекст
/file и, оказывается, в него можно подставлять не только файлы, но и папки с файлами рекурсивно.На скрине то, как я добавил
/file biozz_dev_tg, а Zed подставил контекст всех файликов из папки. Затем я спрашиваю о чём ещё написать.Причём для обсидиана уже есть куча плагинов AI ассистентов. Мне же плагины не нужны и достаточно современного редактора кода, потому что живу в концепции Notes as code (NaC).
💅1
TIL.
Сегодня узнал про встроенную утилиту на маке
caffeinateСегодня узнал про встроенную утилиту на маке
caffeinate которая не даёт компу засыпать. Полезная штука, так как другого способа ssh-иться на закрытый макбук я не нашёл.Z1ON0101Во второй части Матрицы (Перезагрузка) Тринити взламывает электростанцию и это то, как изображён процесс.
Здесь несколько интересных наблюдений:
- печально, что SSH висит на дефолтном порту
- примерно так и ищут открытые порты с помощью
nmap- прикольное название утилиты
sshnuke- SSHv1 CRC32 — это реальная уязвимость
- из логов утилиты непонятно, только ли эту уязвимость она проверяет, но выглядит именно так
- рут пароль
Z1ON0101, 0101 — стилистическая деталь или отсылка к чему-то?В любом случае, это одна из самых реалистичных сцен взлома в кино, которые я видел. Никаких свистелок и перделок с кучей летающего текста на экране.
⚡2👍1