defer panic
Теперь видос про дженерики доступен для всех! 📹 https://youtu.be/TUSGcQKqCkI Текстовая версия приложена к посту на Бусти и Патреоне (посты открыты для всех): 💳 https://boosty.to/deferpanic/posts/af7c5ee5-f69a-4340-bf22-439555e1cc26 💳 https://www.patreon…
Вдогонку статейка про констрейны https://blog.merovius.de/posts/2022-05-23-operator-constraints/
blog.merovius.de
Operator constraints in Go
I describe four ways to express constraints for operators in generic Go code and the trade-offs involved.
Есть у меня спецификация OpenAPI, описанная, как полагается, в YAML-файле. Из этой спеки генерируется бойлерплейт для сервера на Echo (об этом как-нибудь отдельно могу рассказать). Так вот, запускаю я после очередного обновления спеки кодогенерацию и получаю ошибку. Мол, не могу распарсить в поле
required значение как bool, так как никакого bool здесь быть не должно. Место, на которое ругался кодогенератор выглядит так:points:
type: array
required: [ id, x, y ]
items:
type: object
properties:
id:
type: string
x:
type: number
y:
type: numberПодумайте, где здесь может прятаться булеан? У меня не заняло много времени его обнаружить, но когда это произошло, я резко захотел в отпуск. В YAML 1.1 символ
y интерпретируется как true. Более того, y и n являются каноничными записями для булевых значений (а не true и false, казалось бы). Полный регексп для булеана выглядит так:y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFFУ меня в связи с этим есть вопрос (риторический, конечно же):
Кто решил, что такой синтаксис для булеанов — это отличная идея, и обычных
true с false не будет достаточно? Неужели ни у кого из авторов формата не возникло мысли, что такие ключевые слова языка обязательно пересекутся с названиями полей?В какой-то момент авторы видимо поняли, что
y и n и прочие “human-friendly” варианты для булеанов (иронично вышло) — это слишком гениально, и в YAML 1.2 уже оставили только true и false. Казалось бы, круто, решили проблему, двигаемся дальше. Но в итоге половина библиотек и инструментов поддерживает старый синтаксис, а половина — нет. Поэтому теперь сходу нельзя быть уверенным в том, как будет интерпретироваться y — как строка или как булеан. Для однозначной интерпретации теперь приходится писать "y" (я не шучу).Снова кто-то попытался сделать язык для машин языком для людей и наломал дров. От принятого изначально решения читаемость формата наоборот стала хуже, потому что
y — не всегда просто y.Please open Telegram to view this post
VIEW IN TELEGRAM
🤯8🔥2
Периодически, когда меня достают тормоза Goland и Visual Studio Code, я переключаюсь на Вим. Ощущается это как приятный детокс 🙂 А так, конечно, везде, где можно у меня включена Вим-раскладка.
Если вы никогда не пробовали писать в Виме, или хотя бы использовать его подход к редактированию текстов в других средах, то обязательно попробуйте. Первое время очень тяжело, но потом ещё тяжелее работать с кодом как-то иначе.
А вот тут тред от Кирилла Мокевнина в тему: https://twitter.com/mokevnin/status/1566110250348023814?s=20&t=XMx62DItLJhd8H0OoVWYAw
Если вы никогда не пробовали писать в Виме, или хотя бы использовать его подход к редактированию текстов в других средах, то обязательно попробуйте. Первое время очень тяжело, но потом ещё тяжелее работать с кодом как-то иначе.
А вот тут тред от Кирилла Мокевнина в тему: https://twitter.com/mokevnin/status/1566110250348023814?s=20&t=XMx62DItLJhd8H0OoVWYAw
👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥1💯1
Обнаружил render.com.
Какое-то время назад искал аналог Heroku, с которым не нужно голову поломать в трёх местах, чтобы всё завелось. Смотрел на Now (который теперь Vercel), но он будто заточен под статику в большей степени. В итоге остался на Digital Ocean, заодно попробовал их App Platform. Пользоваться и Digital Ocean, и App Platform приятно, но по кошельку ударяет будь здоров.
В общем, думаю перевести на Render свои проекты, которые не требуют какого-то сложного и специфичного окружения.
Может быть, вы знаете какие-то другие похожие продукты, чтобы было с чем сравнить?
Какое-то время назад искал аналог Heroku, с которым не нужно голову поломать в трёх местах, чтобы всё завелось. Смотрел на Now (который теперь Vercel), но он будто заточен под статику в большей степени. В итоге остался на Digital Ocean, заодно попробовал их App Platform. Пользоваться и Digital Ocean, и App Platform приятно, но по кошельку ударяет будь здоров.
В общем, думаю перевести на Render свои проекты, которые не требуют какого-то сложного и специфичного окружения.
Может быть, вы знаете какие-то другие похожие продукты, чтобы было с чем сравнить?
🔥2
Вспомнил про Pico-8 — один из родоначальников «фентези-консолей». Это такие эмуляторы компьютеров и игровых систем, которых никогда не существовало.
Обычно это хороший старт для того чтобы научиться писать игры или программировать вообще, поскольку фентези-консоли имеют сильные ограничения (схожие с компьютерами 80х), благодаря чему голова не пухнет от кучи возможностей и сложности всего вокруг.
Сейчас в свободное время занимаюсь похожим проектом, но со своими фишками. Пишу, естественно, на Go. Как будет что-то хоть немного рабочее, думаю, запишу видос про это.
Обычно это хороший старт для того чтобы научиться писать игры или программировать вообще, поскольку фентези-консоли имеют сильные ограничения (схожие с компьютерами 80х), благодаря чему голова не пухнет от кучи возможностей и сложности всего вокруг.
Сейчас в свободное время занимаюсь похожим проектом, но со своими фишками. Пишу, естественно, на Go. Как будет что-то хоть немного рабочее, думаю, запишу видос про это.
Опубликовал маленький инструмент, который я сделал, чтобы автоматизировать часть работы с текстами.
Накидайте звёздочек⭐️
https://github.com/defer-panic/dp-cli
Накидайте звёздочек
https://github.com/defer-panic/dp-cli
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - defer-panic/dp-cli: Toolkit for managing Defer Panic articles and other stuff.
Toolkit for managing Defer Panic articles and other stuff. - GitHub - defer-panic/dp-cli: Toolkit for managing Defer Panic articles and other stuff.
👍6
Стоит ли репостить сюда важную инфу про мобилизацию? (Насколько я вижу, большая часть подписчиков — мужчины)
Final Results
46%
Да
54%
Нет
Что ж, я попробовал Fleet. Я очень ждал выход такого редактора ещё до анонса закрытой беты — с возможностями IDEA, но без таких идиотских тормозов. Когда увидел первый анонс, стал нетерпеливо ждать либо инвайта, либо выхода публичной версии.
Сказать, что Fleet — это прям вот оно я не могу. Это определенно шаг вперёд, но он всё ещё не успевает рендерить буквы за тем, как я печатаю (!). Скролл всё ещё такой же дёрганный. Если выключить Smart Mode (режим с возможностями примерно как в IDEA типа), то работает чуть быстрее, но при этом набор возможностей сужается так сильно, что проще уже Sublime Text открыть. Короче, та же IDEA, только UI новый.
Я не люблю обвинять инструменты, потому что обычно причина в кривых руках, но чую, будто дело в том, что Fleet снова написан на JVM-языке. Я не помню ни одного десктопного софта на JVM, который работал бы плавно. Но всё же надеюсь, что дело в чём-то другом, и ребята со временем что-то сделают с производительностью, хоть и верится с трудом.
Ну и конечно, отсутствие Vim-раскладки и возможности хоть как-то её прикрутить через плагины забило последний гвоздь. Поэтому, пожалуй, попробую Fleet снова через годик-другой, учитывая темпы его разработки.
Я нежно люблю JetBrains и их продукты, но есть вещи, которые меня бесят, а ситуация не меняется годами.
Сказать, что Fleet — это прям вот оно я не могу. Это определенно шаг вперёд, но он всё ещё не успевает рендерить буквы за тем, как я печатаю (!). Скролл всё ещё такой же дёрганный. Если выключить Smart Mode (режим с возможностями примерно как в IDEA типа), то работает чуть быстрее, но при этом набор возможностей сужается так сильно, что проще уже Sublime Text открыть. Короче, та же IDEA, только UI новый.
Я не люблю обвинять инструменты, потому что обычно причина в кривых руках, но чую, будто дело в том, что Fleet снова написан на JVM-языке. Я не помню ни одного десктопного софта на JVM, который работал бы плавно. Но всё же надеюсь, что дело в чём-то другом, и ребята со временем что-то сделают с производительностью, хоть и верится с трудом.
Ну и конечно, отсутствие Vim-раскладки и возможности хоть как-то её прикрутить через плагины забило последний гвоздь. Поэтому, пожалуй, попробую Fleet снова через годик-другой, учитывая темпы его разработки.
Я нежно люблю JetBrains и их продукты, но есть вещи, которые меня бесят, а ситуация не меняется годами.
❤6
Какие материалы по компьютерным сетям можете порекомендовать? Это самая слабая область моих профессиональных знаний, но она неизбежно периодически даёт о себе знать. Вот и сейчас припёрло. Хочу разобраться раз и навсегда, чтобы больше не мучаться.
На ум приходят Танненбаум и Олиферы, но вдруг вы знаете что-то поинтереснее?
На ум приходят Танненбаум и Олиферы, но вдруг вы знаете что-то поинтереснее?
Пока доступно патронам и бустерам, позже выложу публично.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2❤1❤🔥1⚡1
12ft.io — сервис, который позволяет обходить пейволлы на различных сайтах. На Медиуме тоже работает 😉
👍5🔥2
Projectbook — cайт с идеями для проектов. Пригодится для изучения, например, новых языков программирования и фреймворков. У меня даже появилась идея позаписывать, как я реализую некоторые из мини-проектов.
👍7🔥3
defer panic
Видео про конкуретность в Go теперь в публичном доступе!
📹 https://youtu.be/mvUiw9ilqn8
Текстовый конспект к видео вы можете получить на Бусти и Патреоне:
💳 https://boosty.to/deferpanic/posts/ad993417-072f-4893-8b56-9778c4dcbf7a
💳 https://www.patreon.com/posts/konspekt-k-video-73674718
Полезные ссылки по теме конкурентности и параллелизма
• Планировщик https://www.youtube.com/watch?v=Gy6XEYWYht8
• Как не ошибиться с конкурентностью https://www.youtube.com/watch?v=4U3EaVufuW4
• Как ошибиться https://www.youtube.com/watch?v=AOLPelcByBo
• Rob Pike: Go Concurrency Patterns https://www.youtube.com/watch?v=f6kdp27TYZs
• Dave Cheney: Channel Axioms https://dave.cheney.net/2014/03/19/channel-axioms
• Dave Cheney: Curious Channels https://dave.cheney.net/2013/04/30/curious-channels
• Go Concurrency Patterns: Pipelines and cancellation https://go.dev/blog/pipelines
• Introducing the Go Race Detector: https://go.dev/blog/race-detector
• Thread Sanitizer Algorithm (алгоритм обнаружения состояния гонки): https://github.com/google/sanitizers/wiki/ThreadSanitizerAlgorithm
• Примитивы синхронизации: https://spec-zone.ru/RU/OSX/documentation/Darwin/Conceptual/KernelProgramming/synchronization/synchronization.html
Текстовый конспект к видео вы можете получить на Бусти и Патреоне:
Полезные ссылки по теме конкурентности и параллелизма
• Планировщик https://www.youtube.com/watch?v=Gy6XEYWYht8
• Как не ошибиться с конкурентностью https://www.youtube.com/watch?v=4U3EaVufuW4
• Как ошибиться https://www.youtube.com/watch?v=AOLPelcByBo
• Rob Pike: Go Concurrency Patterns https://www.youtube.com/watch?v=f6kdp27TYZs
• Dave Cheney: Channel Axioms https://dave.cheney.net/2014/03/19/channel-axioms
• Dave Cheney: Curious Channels https://dave.cheney.net/2013/04/30/curious-channels
• Go Concurrency Patterns: Pipelines and cancellation https://go.dev/blog/pipelines
• Introducing the Go Race Detector: https://go.dev/blog/race-detector
• Thread Sanitizer Algorithm (алгоритм обнаружения состояния гонки): https://github.com/google/sanitizers/wiki/ThreadSanitizerAlgorithm
• Примитивы синхронизации: https://spec-zone.ru/RU/OSX/documentation/Darwin/Conceptual/KernelProgramming/synchronization/synchronization.html
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤🔥3