defer panic
3.02K subscribers
83 photos
11 videos
208 links
Канал про айти в целом и про Go в частности.
YouTube → youtube.com/@deferpanic
Все вопросы в личку канала
Поддержать канал:
ETH — tomakado.eth
TON — tomakado.ton
BTC — 19xwFstmVQsVYqZP64iMVg1StLNSah6Smo
Download Telegram
@stvtelege принёс в клювике, что github.com/golang/mock ушёл в публичный архив. В целом ожидаемо — последний релиз был чуть больше двух лет назад. Если что, проект форкнул Uber и теперь занимается его развитием: https://github.com/uber/mock

Не могу не вставить мысль, повод хороший:

Вообще, есть у коммьюнити Go и Clojure одна общая черта (хоть языки и абсолютно разные), которая мне очень нравится — отсутствие дурмана «если проект не обновлялся больше года, им нельзя пользоваться». Да-да, я смотрю в твою сторону, JavaScript. Почему-то для мейнстримных языков не позволительна мысль о том, что бывают программные продукты, которые в какой-то момент становятся законченными. В целом понятно, в том же JavaScript через месяц на тех же версиях зависимостей всё развалится, не говоря уже о старых. Но кажется это не ок и вообще не про стабильность и отсутствие нервных срывов.
👍22❤1❤‍🔥1
Кажется, я сюда ещё не писал про главный скандал в мире Go последних месяцев — добавление телеметрии в тулчейн.

Я могу понять, почему есть телеметрия в Visual Studio Code — это продукт, который развивается по модели «мы не можем просто сделать редактор и остановиться — нам нужно дальше его закидывать фичами, которые никому не нужны, потому что иначе не нужны будем мы». Для того чтобы часто шипить новые фичи или тюнить существующие, нужна какая-то аналитика по тому, как используется продукт. Я не сторонник что телеметрии в Visual Studio Code, что такого подхода к развитию продукта. Но тут хотя бы понятно, почему так сложилось.

Но на кой чёрт это надо в языке программирования, особенно таком, как Go? Одна из ключевых идей философии языка — очень аккуратное, неспешное и обратно-совместимое развитие; всё только самое необходимое. Если вам нужна статистика использования какой-то языковой фичи, то, ну... сходите на ГитХаб? Или что, энтерпрайз-код как-то принципиально по-другому пишется? Ну да, наверняка какие-то внутренние библиотеки/фреймворки используются, но это не относится к фичам самого языка. Тем более что в Go нет такого, что два случайно взятых разработчика пишут как-то принципиально по-разному (привет, C++).

Короче, меня напрягает не столько сам сбор телеметрии — он включается по желанию (т.е. никто в здравом уме её никогда не включит). Меня напрягает то, что её очень часто добавляют, чтобы потом закидывать продукт сырыми и никому не нужными фичами, потому что данные интерпретируются через одно место. Нужны они обычно только, чтобы циферки красивые показать. Я уж не говорю про секьюрити-консёрны, которые здесь появляются.

Надеюсь, команда языка сейчас поймёт, что это им никак не поможет «сделать язык лучше», и они уберут сбор телеметрии в следующих релизах за ненадобностью (скорее всего нет).

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤4❤‍🔥2🔥1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Всё никак не доходили руки рассказать вам про gping — как ping, только с графиком.

Во-первых, это красиво. Во-вторых, можно замерять пинг сразу до нескольких хостов. В-третьих, замерять время и строить график можно и для исполнения команд. В-четвертых, написано на Rust.

Ссылка: https://github.com/orf/gping

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5❤‍🔥2👏1🤡1
Обновил в боте модель с GPT-3.5 на GPT-4. Стало сильно лучше, хоть и не идеально всё ещё. Возможно, стоит посмотреть в сторону чего-то, что специализируется на саммари, но пока ничего толкового не находил.
👍5
Forwarded from Go Update
proposal 61405: spec: add range over int, range over func

Вот и настал тот момент - Расс официально предлагает добавить поддержку range над следующими видами выражений:

▸ Range over integer: for x := range n { ... } где n целочисленное выражение или переменная. Будет эквивалентно for x := 0; x < n; x++ { ... }

▸ Range over function: теперь можно будет писать код for x, y := range f { … } где f это функция или метод со следующей сигнатурой:

1. func(yield func(T1, T2)bool) bool
2. func(yield func(T1)bool) bool
3. func(yield func()bool) bool


Значения которые не нужны запрашивающему коду (тот кто вызывает range) будут автоматически выброшены. Например для функции func(yield func(T1, T2) bool) bool допустимы следующие варианты range:

1. for x, y := range f { ... }
2. for x, _ := range f { ... }
3. for _, y := range f { ... }
4. for x := range f { ... }
5. for range f { ... }|

Возвращаемое yield булево значение позволяет определить вызываемому коду (тот кого вызывают через range), что пора прекратить исполнение и двигаться на выход (в случае break или return). Т.е. в случае for range f { break; } сразу после первого вызова yield вернет false.

Детали реализации и различные тонкости (такие как, что будет если yield будет вызван после выхода из тела range) пока обсуждаются.
🤯9👎8👍5😱1
Если вы, как и я уже похоронили Gorilla web toolkit, т.к. авторы заархивировали все репозитории и прекратили поддержку, то можете раскапывать могилу обратно. Теперь ментейнить проект будут ребята из Red Hat. Именно ментейнить — проект не становится их собственностью, и редхатовцы ожидают, что коммьюнити тоже подтянется. Интересно, учитывая, что при прошлых ментейнерах что-то никто не тянулся помогать

https://gorilla.github.io/blog/2023-07-17-project-status-update/
👍11🔥4
После того, как я сегодня в очередной раз поресерчил один топик и снова пришёл к тем же выводам, во мне что-то щёлкнуло, и я задумался об очередной попытке вести что-то типа базы знаний. В каком-то виде у меня она существует в виде набора заметок в FSNotes, но я думаю о том, чтобы делать это в Obsidian.

Какие можете дать советы? Какие плагины надо ставить обязательно?
🔥14
Obsidian заботливо предлагает сдать микроэкзамен на знание Вима, если вы хотите использовать Vim mode. Правильно — слишком много людей зашло в VIm, но так и не вернулось.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
😁36🔥6👍2💊1
DevCrowd (Егор и Аня из Podlodka) проводят исследование Go-разработчиков 🛵 В нём задают вопросы про опыт, навыки, условия работы, самые сложные и интересные задачи, про сообщество и компании:

- Какие навыки для Go-разработчиков самые важные
- Какие инструменты используются в работе
- Как попадают в профессию и куда из нее уходят
- Полезные для развития каналы, курсы и книги

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

👉 Пройти опрос

#партнерскийпост
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥱1
Roboden добрался до Steam 🥂

(а значит и до Steam Deck)

https://store.steampowered.com/app/2416030/Roboden/

Напомню, Roboden - игра Искандера Шарипова, полностью написанная на Go - движок Ebitengine.

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

На GitHub можно посмотреть исходный код игры.

#go_gamedev #gamedev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥4🤡2
Пробили 70К просмотров. Спасибо вам всем 🫶
👍16🍾12❤‍🔥3💩2😎1
Как-то я занимался своим пет-проектом Projector для генерации каркаса программы из шаблонов. Теперь, по крайней мере для Go, в нем большого смысла нет, т.к. хоть пока и в качестве эксперимента, в тулчейн Go завозят ровно эту функциональность. Причем можно публиковать свои и использовать чужие шаблоны как обычные гошные модули.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍2
Осенью пройдет второй сезон онлайн-конференции Podlodka Go Crew. В этот раз я в программном комитете, и я ищу спикеров!

Немного о самой конфе:

- Мероприятие растянуто на 1 неделю против 2 дней обычной конфы. Активности раскиданы так, чтобы можно было посетить все самое интересное, не отрываясь от работы. Ну и другие плюсы онлайна — отсутствие географических границ и вот это все.
- На конференции обычно бывает 200-350 человек, в основном мидлы и сеньоры.
Контент набираем не «все обо всем», а формируем темы недели. Участнику сразу становится понятно, какой будет дифф в его понимании индустрии до/после прошествия недели, а мы можем собирать спикеров по теме и играться с разными полезными форматами.
- Самое главное — форматы. Мы не верим в перенос офлайн-формата в онлайн as-is, со спикерами бубнящими свои доклады в камеру. Мы верим в то, что онлайн — это не ограничение, а новые возможности, в первую очередь для интерактива. Поэтому фокус делаем на групповых обсуждениях, внедряем игровые механики где только можно, берем интервью, устраиваем поединки между экспертами и большие сессии Q&A с включением участников, лайв-кодинга и всякого такого. Меньше времени на подготовку спикеров, больше вовлеченности участников — выходит win-win.

Тема сезона — хайлоад & Go (всё про перфоманс и его замеры самыми разными способами)

Подробнее о прошлых сезонах можно узнать на лендинге: https://podlodka.io/crew

Если вам интересно, то вот есть такая форма, там же про плюшки для спикеров https://docs.google.com/forms/d/e/1FAIpQLSf4LIylClDAVsoaq1cUGb0WmRYL94z1hWZDomHgeVRDDJzzuQ/viewform

❗️Если что — пишите, я готов ответить на любые вопросы. Сам был спикером в прошлом сезоне — мне помогали на всех этапах подготовки к выступлению, тоже самое будет и с вами. Если у вас нет конкретной темы или вы считаете, что вам не хватает интересного опыта, но вы все равно хотели бы выступить, всё равно напишите мне.
👍4❤‍🔥1😍1
Вышел Go 1.21

Подробности в релиз-ноутах.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2👻1
Хочу порекомендовать вам канал Go news. Там просто и доступно объясняют, как автоматизировать тесты в несколько строк кода, почему не всегда нужно использовать каналы, какие фишки новой версии ускорят ваш код. Посты сопровождаются наглядными сниппетами кода.

А ещё добавляйте себе маст-хэв папку для Go-разработчиков: https://t.me/addlist/6Gopr3hzAqBiMjcy

#партнерскийпост
❤4👍1🔥1
Сразу две новости из мира AI и кодогенерации:

🤖 Stability AI, известная вам скорее всего по Stable Diffusion, представила опенсорсную модель Stable Code. Это ещё один конкурент GitHub Copilot. На старте поддерживает Python, Go, Java, JavaScript, C и C++.

🕸 Google анонсировал Project IDX — облачную IDE с похожей фичей. Пока что доступ по вейтлисту, но если там внутри Bard (а скорее всего так и есть), то будто бы и не очень надо.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
💩5🥱4👍2🤔1🐳1
Если вам хочется получить подробный разбор изменений в Go 1.21.0, то у Николая Тузова на днях вышел новый выпуск подкаста GoGetPodcast.

Горячо рекомендую.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5❤3❤‍🔥1
IBM выпустила библиотеку для функционального программирования на Go 🤡

Хоть я и люблю функциональное программирование и всё вокруг него, эту историю я просто не понимаю. Вот представьте: вы пишете на языке программирования. Вам всё в нём нравится, кроме одного — он не про ФП. Не в смысле переменные не иммутабельные и всё такое, а вот совсем не про ФП, да так что прямо в фундаменте языка местами заложены противоположные идеи.

В таком случае есть два пути: перейти на язык, где ФП — основная парадигма, либо пытаться гладить против шерсти текущий язык. Оба подхода имеют право на существование, но в каких-то разумных границах. Если вам так нравится ФП, что вы без него жить не можете, то почему бы не пойти по первому пути? А если это не так важно для вас, то в чём смысл усложнять себе жизнь, да ещё и говорить, что жить сложнее должно стать и другим?

В общем, если хотите обмазаться монадами и каррированием, то есть куча функциональных языков, классных и не очень. А Go не трогайте — мы его как раз и любим за то, что он простой, как дверь. Хоть иногда и слишком.

❤️ • ютуб • бусти • патреон • платный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14💩5🤯4😢1
Как я уже ранее говорил, я сейчас занят подготовкой к Podlodka Go Crew #2 — на этот раз в программном комитете, а не в качестве докладчика. Пришло время рассказать, что это такое!

Podlodka Crew — это формат онлайн-конференций от команды подкаста Podlodka. В отличие от обычных конференций, секции (доклады, воркшопы и т.п.) не пытаются упаковать плотно в два дня, а равномерно распределяют по дням одной недели. Обычно одна секция утром, одна вечером. Зимой проходила первая Crew для нас с вами, т.е. для гоферов. Если интересно, можете посмотреть запись моего доклада.

Вторая Go Crew пройдёт уже совсем скоро — с 11 по 15 сентября. Каждый сезон конференции все доклады связаны одной общей темой — в этот раз будем обсуждать хайлоад:

- заглянем под капот устройства памяти;
- научимся превентивно находить потенциальные очаги - чрезмерной нагрузки;
- посмотрим на лучшие практики нагрузочного тестирования;
- изучим масштабируемую технологию NATS JetStream для очередей и асинхронной коммуникации;
+ 🎁 бонус: каждый желающий сможет выступить на открытом микрофоне.

❤️ Для моих любимых подписчиков есть ништяки:

💸 Промокод на скидку 500 ₽, который суммируется со скидкой на сайте до 4 сентября:
deferpanic_go2

🎟️ Также хочу разыграть два билета среди вас. Я загадал от число от 0 до math.Uint8. Напишите любое число в этом диапазоне в комментариях к посту. Авторы двух комментариев с самыми близкими результатами к загаданному числу получат билеты.

⚠️ Важно: в комментарии также укажите, какую секцию вы хотите посетить больше всего и почему. Комментарии с просто числами не учитываются! Результаты подведём в эту пятницу.

Расписание докладов и вся остальная информация есть на сайте конференции.

#партнерскийпост
👍9🔥3🤩1😍1