На GitHub появился мощный репозиторий для подготовки к Golang-интервью: более 190 вопросов, каверзные задачи и live coding с решениями.
Внутри:
- 25 задач «что выведет код?»;
- 22 live coding задачи с разборами;
- goroutines, channels,
sync, atomic и memory model;- runtime, scheduler, escape analysis и GC;
- generics и
context.Context;- HTTP, gRPC, базы данных и брокеры;
- System Design для Middle+/Senior;
- свежие изменения Go 1.22–1.27.
Есть классические задачи вроде Worker Pool, LRU Cache, Rate Limiter, Fan-in, Pipeline, TTL Cache, Singleflight и Graceful Shutdown.
По сути, готовая шпаргалка + задачник + roadmap для подготовки к Go-собеседованию.
https://github.com/justxor/sobesrazborgoogle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥3👍2
Это C. Просто автор предпочитал синтаксис ALGOL 68 😄
Стив Борн, создатель Bourne shell, использовал макросы, чтобы исходники оболочки выглядели привычнее:
Теперь условие можно записать так:
Препроцессор превратит его в обычный C:
Такие макросы действительно есть в исходниках Bourne shell из UNIX V7. На картинке тот же приём применяется к циклам:
Любопытный кусочек истории: через
https://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh/mac.h
Стив Борн, создатель Bourne shell, использовал макросы, чтобы исходники оболочки выглядели привычнее:
#define IF if(
#define THEN ){
#define ELSE } else {
#define FI ;}
Теперь условие можно записать так:
IF n <= 1 THEN
return;
FI
Препроцессор превратит его в обычный C:
if (n <= 1) {
return;
}
Такие макросы действительно есть в исходниках Bourne shell из UNIX V7. На картинке тот же приём применяется к циклам:
FOR, DO, OD.Любопытный кусочек истории: через
#define можно поменять внешний вид языка, сохранив прежний компилятор. А вот читать и отлаживать такой код придётся уже с учётом собственного «диалекта».https://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh/mac.h
🙈10❤4👍2👎1🔥1
🔐 Kyverno может автоматически закрывать весь сетевой трафик в новых namespace
По умолчанию Pod'ы в Kubernetes могут свободно отправлять и принимать трафик, пока это не ограничено через
С помощью Kyverno Generate Rules это можно автоматизировать.
Например, после команды:
Kyverno автоматически создаст внутри payments политику deny-all-traffic, которая:
- выбирает все Pod'ы;
- блокирует входящий трафик;
- блокирует исходящий трафик;
- оставляет namespace в режиме deny by default.
После этого команда уже явно добавляет только нужные разрешения: DNS, доступ к БД, внутренним API и другим сервисам.
Полезный паттерн для cluster security:
новый namespace → deny all → разрешаем только необходимое.
Так базовая сетевая изоляция применяется автоматически, а не зависит от того, вспомнил ли разработчик добавить NetworkPolicy.
По умолчанию Pod'ы в Kubernetes могут свободно отправлять и принимать трафик, пока это не ограничено через
NetworkPolicy.С помощью Kyverno Generate Rules это можно автоматизировать.
Например, после команды:
kubectl create namespace payments
Kyverno автоматически создаст внутри payments политику deny-all-traffic, которая:
- выбирает все Pod'ы;
- блокирует входящий трафик;
- блокирует исходящий трафик;
- оставляет namespace в режиме deny by default.
После этого команда уже явно добавляет только нужные разрешения: DNS, доступ к БД, внутренним API и другим сервисам.
Полезный паттерн для cluster security:
новый namespace → deny all → разрешаем только необходимое.
Так базовая сетевая изоляция применяется автоматически, а не зависит от того, вспомнил ли разработчик добавить NetworkPolicy.
👍11❤1🔥1🐳1
Media is too big
VIEW IN TELEGRAM
QR-код с дыркой: почему порванный QR всё равно сканируется?
Порванный QR-код часто сканируется, потому что к данным в нём добавлены проверочные символы кода Рида–Соломона. Сканер находит метки по углам, читает байты и по проверочным символам восстанавливает потерянные. У восстановления есть предел: уровни L, M, Q и H выдерживают потерю примерно 7, 15, 25 и 30% кодовых слов, причём считается именно доля кодовых слов, а не площадь дыры.
https://www.youtube.com/shorts/15_4DjyrS_Q
Порванный QR-код часто сканируется, потому что к данным в нём добавлены проверочные символы кода Рида–Соломона. Сканер находит метки по углам, читает байты и по проверочным символам восстанавливает потерянные. У восстановления есть предел: уровни L, M, Q и H выдерживают потерю примерно 7, 15, 25 и 30% кодовых слов, причём считается именно доля кодовых слов, а не площадь дыры.
https://www.youtube.com/shorts/15_4DjyrS_Q
👍6❤1🔥1
28 open source замен платному софту: минус $25 000 в год
Бесплатные репозитории на GitHub вместо Cursor, Zapier, Figma, HubSpot, Mixpanel и ElevenLabs: 28 open source инструментов для ИИ, автоматизации, аналитики, CRM и медиа со ссылками и ценами аналогов.
https://uproger.com/28-open-source-zamen-platnomu-softu/
Бесплатные репозитории на GitHub вместо Cursor, Zapier, Figma, HubSpot, Mixpanel и ElevenLabs: 28 open source инструментов для ИИ, автоматизации, аналитики, CRM и медиа со ссылками и ценами аналогов.
https://uproger.com/28-open-source-zamen-platnomu-softu/
С вас идея, а Т-Банк за нее заплатит
В Т-Банке ищут трейдеров, разработчиков и тех, кто просто увлекается инвестициями. Зарегистрируйтесь на программу «Инвест. Премаркет» до 11 ноября.
Ваши AI-сценарии для бизнеса смогут побороться за призовой фонд программы — 2 500 000 ₽. А сами идеи Т-Банк поможет масштабировать и сделать частью бизнеса.
Успейте подать заявку до 11 ноября
В Т-Банке ищут трейдеров, разработчиков и тех, кто просто увлекается инвестициями. Зарегистрируйтесь на программу «Инвест. Премаркет» до 11 ноября.
Ваши AI-сценарии для бизнеса смогут побороться за призовой фонд программы — 2 500 000 ₽. А сами идеи Т-Банк поможет масштабировать и сделать частью бизнеса.
Успейте подать заявку до 11 ноября
❤10
DOOM запустили внутри SQL-базы. Каждый кадр теперь результат запроса 🤯
Лукас Фогель собрал SQLDoom: игровая логика и рендеринг оригинального DOOM работают внутри CedarDB.
Карты, монстры, оружие и состояние игры хранятся в таблицах. SQL рассчитывает движение, атаки и столкновения, а затем собирает картинку:
• около 1300 строк SQL и 89 CTE отвечают за рендеринг;
• ещё 5900 строк SQL реализуют игровую логику;
• кадры 320×200 генерируются примерно с 60 FPS на ноутбуке с Ryzen 7 PRO 7840U. В тяжёлых сценах частота падает до 35 FPS.
Python обрабатывает ввод, задаёт тайминг и выводит готовые кадры. Работает даже мультиплеер.
Теперь оптимизировать SQL нужно ещё и для того, чтобы монстры не лагали ☕️
Код:
https://github.com/cedardb/sqldoom
Онлайн-демка:
https://demo.cedardb.cloud/projects/38c0ee59-327d-495e-ad40-735521bba941
Лукас Фогель собрал SQLDoom: игровая логика и рендеринг оригинального DOOM работают внутри CedarDB.
Карты, монстры, оружие и состояние игры хранятся в таблицах. SQL рассчитывает движение, атаки и столкновения, а затем собирает картинку:
• около 1300 строк SQL и 89 CTE отвечают за рендеринг;
• ещё 5900 строк SQL реализуют игровую логику;
• кадры 320×200 генерируются примерно с 60 FPS на ноутбуке с Ryzen 7 PRO 7840U. В тяжёлых сценах частота падает до 35 FPS.
Python обрабатывает ввод, задаёт тайминг и выводит готовые кадры. Работает даже мультиплеер.
Теперь оптимизировать SQL нужно ещё и для того, чтобы монстры не лагали ☕️
Код:
https://github.com/cedardb/sqldoom
Онлайн-демка:
https://demo.cedardb.cloud/projects/38c0ee59-327d-495e-ad40-735521bba941
🔥10🤣7👍1🥰1
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
❤2👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
5 алгоритмов для программиста: бинарный поиск, сортировка слиянием, BFS, Дейкстра, скользящее окно
Разбираем 5 алгоритмов, которые пригодятся в реальном коде: бинарный поиск за O(log n), сортировка слиянием за O(n log n), поиск в ширину, алгоритм Дейкстры для кратчайшего пути и скользящее окно за O(n). Короткие визуальные примеры на каждый. Сохраните, чтобы не потерять.
https://www.youtube.com/shorts/e--njUJA3y4
Разбираем 5 алгоритмов, которые пригодятся в реальном коде: бинарный поиск за O(log n), сортировка слиянием за O(n log n), поиск в ширину, алгоритм Дейкстры для кратчайшего пути и скользящее окно за O(n). Короткие визуальные примеры на каждый. Сохраните, чтобы не потерять.
https://www.youtube.com/shorts/e--njUJA3y4
🔥1