Retrying consumer in Kafka
В кафке консьюмер получает сообщение из топика и приступает к его обработке. Но в процессе обработки могут возникать разного рода проблемы. Если проблема временная, то её можно решить, сделав ретрай через какое-то время.
Кафка не предоставляет возможность пропустить сообщение и вернуться к нему позже.
Самое топорное решение, которое приходит на ум – сделать ретраи на уровне обработчика сообщений. Просто в цикле гонять обработку сообщения, пока не будет успех. Но при такой реализации мы заблокируем процесс обработки новых сообщений из топика.
В статье автор предлагает организовать систему ретраев через добавление новых топиков и специальной логики работы с ними.
После прочтения, возможно, возникнет лёгкий дискомфорт, с ощущением того, что предлагается сделать какую-то вундервафлю. Соглашусь, решение получается громоздкое, но более элегантного я не видел.
#skills
В кафке консьюмер получает сообщение из топика и приступает к его обработке. Но в процессе обработки могут возникать разного рода проблемы. Если проблема временная, то её можно решить, сделав ретрай через какое-то время.
Кафка не предоставляет возможность пропустить сообщение и вернуться к нему позже.
Самое топорное решение, которое приходит на ум – сделать ретраи на уровне обработчика сообщений. Просто в цикле гонять обработку сообщения, пока не будет успех. Но при такой реализации мы заблокируем процесс обработки новых сообщений из топика.
В статье автор предлагает организовать систему ретраев через добавление новых топиков и специальной логики работы с ними.
После прочтения, возможно, возникнет лёгкий дискомфорт, с ощущением того, что предлагается сделать какую-то вундервафлю. Соглашусь, решение получается громоздкое, но более элегантного я не видел.
#skills
Pragmatists
Retrying consumer architecture in the Apache Kafka
In this article I would like to explain what kind of problems can we encounter in Kafka messages processing and how can we deal with them. Before you go further basic Kafka knowledge is recommended…
❤6👍5🔥1
Мониторинг — боль
Интересное чтиво на тему мониторинга.
Казалось бы, логи и метрики облегчают жизнь, наблюдаемость системы растет, отладка становится проще. Или не совсем?
Автор проходится по основным моментам логирования и сбора метрик. Описывает боли, с которыми неоднократно сталкивался. Многое из написанного оказалось знакомо.
По каждому из пунктов даются практические советы. Один из интересных подходов, который хочется попробовать — семплирование логов.
Отдельно автор останавливается на трассировке, как на недооценённом инструменте.
В общем, по прочтении статьи появляется пища для размышлений и желание более критически посмотреть на то, что мы собираем.
#skills #logging
Интересное чтиво на тему мониторинга.
Казалось бы, логи и метрики облегчают жизнь, наблюдаемость системы растет, отладка становится проще. Или не совсем?
Автор проходится по основным моментам логирования и сбора метрик. Описывает боли, с которыми неоднократно сталкивался. Многое из написанного оказалось знакомо.
По каждому из пунктов даются практические советы. Один из интересных подходов, который хочется попробовать — семплирование логов.
Отдельно автор останавливается на трассировке, как на недооценённом инструменте.
В общем, по прочтении статьи появляется пища для размышлений и желание более критически посмотреть на то, что мы собираем.
#skills #logging
matduggan.com
Monitoring is a Pain
And we're all doing it wrong (including me)
I have a confession. Despite having been hired multiple times in part due to my experience with monitoring platforms, I have come to hate monitoring. Monitoring and observability tools commit the cardinal sin of…
I have a confession. Despite having been hired multiple times in part due to my experience with monitoring platforms, I have come to hate monitoring. Monitoring and observability tools commit the cardinal sin of…
👍8❤3🔥2🌭1
Бесплатный курс "Командная строка для разработчиков"
Мы довольно давно готовим молодых python-разработчиков, и начинаем именно с базовых знаний в Linux, прививая желание и умение работать в терминале. Вдохновляясь курсом "Поколения Python" на степике, мы решили сделать свой бесплатный курс "Командная строка для разработчиков", посвящённый терминалу Ubuntu, языку bash и базовому администрированию. Начинающим разработчикам поможем преодолеть неловкость перед текстовым терминалом, опытным разработчикам покажем неочевидные и полезные в работе фишки для увеличения продуктивности.
Курс начинался с оффлайна, а переход в онлайн требует существенной переработки материала. Поэтому релизимся поэтапно, выпуская новые уроки по мере готовности.
Введение и первое занятие уже доступно на степике. Примерная программа курса тут, будем рады замечаниям, дополнениям и лайкам.
#devfm
Мы довольно давно готовим молодых python-разработчиков, и начинаем именно с базовых знаний в Linux, прививая желание и умение работать в терминале. Вдохновляясь курсом "Поколения Python" на степике, мы решили сделать свой бесплатный курс "Командная строка для разработчиков", посвящённый терминалу Ubuntu, языку bash и базовому администрированию. Начинающим разработчикам поможем преодолеть неловкость перед текстовым терминалом, опытным разработчикам покажем неочевидные и полезные в работе фишки для увеличения продуктивности.
Курс начинался с оффлайна, а переход в онлайн требует существенной переработки материала. Поэтому релизимся поэтапно, выпуская новые уроки по мере готовности.
Введение и первое занятие уже доступно на степике. Примерная программа курса тут, будем рады замечаниям, дополнениям и лайкам.
#devfm
Stepik: online education
Командная строка для разработчиков – cli-for-dev
Вы научитесь выжимать максимум из клавиатуры, работая в Linux-терминале на примере Ubuntu. В курс входит достаточная теория по внутренностям Linux и много практики в терминале.
🔥31👍8❤2
Пятничное развлекательное
Недавно нашел милый гиковский проект Cooklang для тех, кто любит готовить.
Позволяет управлять своими рецептами, составлять по рецепту список покупок. Также есть приложение, веб-морда и даже cli-интерфейс.
А ещё есть видео, где ребята рассказывают, как этим всем пользоваться.
#fun
Недавно нашел милый гиковский проект Cooklang для тех, кто любит готовить.
Позволяет управлять своими рецептами, составлять по рецепту список покупок. Также есть приложение, веб-морда и даже cli-интерфейс.
А ещё есть видео, где ребята рассказывают, как этим всем пользоваться.
#fun
❤7👍4🔥2
Как документировать архитектуру
В архитектуру входят сервисы, базы данных, брокеры сообщений, внешние интеграции и хорошо бы понимать, кто на ком стоял и кто с кем взаимодействует.
Замечательная статья, охватывающая многие аспекты документирования. Начинает автор с главного, объясняя, зачем нужно документировать архитектуру.
В качестве структурного шаблона для документирования предлагается использовать arc42. Для визуализации — C4 model. Кстати, C4 оказалась вполне удобной, и мы активно применяем её у себя.
Из приятного — для arc42 и C4 автор приводит ссылки на хорошие примеры реализации.
В конце автор рассказывает, как можно всё описанное организовать, применяя подход — documentation as code, а так же приводит полезные тулзы для этого.
#systemdesign #tools
В архитектуру входят сервисы, базы данных, брокеры сообщений, внешние интеграции и хорошо бы понимать, кто на ком стоял и кто с кем взаимодействует.
Замечательная статья, охватывающая многие аспекты документирования. Начинает автор с главного, объясняя, зачем нужно документировать архитектуру.
В качестве структурного шаблона для документирования предлагается использовать arc42. Для визуализации — C4 model. Кстати, C4 оказалась вполне удобной, и мы активно применяем её у себя.
Из приятного — для arc42 и C4 автор приводит ссылки на хорошие примеры реализации.
В конце автор рассказывает, как можно всё описанное организовать, применяя подход — documentation as code, а так же приводит полезные тулзы для этого.
#systemdesign #tools
workingsoftware.dev
The Ultimate Guide To Software Architecture Documentation
This guide shows you how to write, structure, visualize and manage software architecture documentation using appropriate documentation tools.
👍8🔥4❤2🌭1
Пятничное развлекательное
Anki-карточки — отличный способ набить словарный запас, заучивая фразы и предложения на релевантные для вас темы.
Ещё давно, когда ничего не знал про anki, использовал этот метод. Делал подписи на бумажках, чтобы готовиться к госам и ботать формулировки разных, не очень интересных теорем.
Существующие решения обычно просят бабосики и имеют перегруженный функционал. Недавно нашли приятное опенсорсное решении — Scholarsome (github) с минимально достаточным функционалом.
#fun #edu
Anki-карточки — отличный способ набить словарный запас, заучивая фразы и предложения на релевантные для вас темы.
Ещё давно, когда ничего не знал про anki, использовал этот метод. Делал подписи на бумажках, чтобы готовиться к госам и ботать формулировки разных, не очень интересных теорем.
Существующие решения обычно просят бабосики и имеют перегруженный функционал. Недавно нашли приятное опенсорсное решении — Scholarsome (github) с минимально достаточным функционалом.
#fun #edu
❤9🌭3👍2
Event storming для проектирования сервисов
Скажу честно, я в event storming не бум-бум и никогда не применял на практике. На просторах хабра нашел вводную статью — Моделирование микросервисов с помощью Event storming.
Event Storming помогает быстро получить стратегический дизайн, определив границы, в рамках которых технические решения можно принимать автономно.
Сомневаюсь, что буду применять на практике этот метод, но какие-то идеи точно стоит взять на вооружение. Например, правильное распределение приоритетов разработки и выделение контекстов.
А вот официальный сайт, если заинтересовались концепцией.
#systemdesign
Скажу честно, я в event storming не бум-бум и никогда не применял на практике. На просторах хабра нашел вводную статью — Моделирование микросервисов с помощью Event storming.
Event Storming помогает быстро получить стратегический дизайн, определив границы, в рамках которых технические решения можно принимать автономно.
Сомневаюсь, что буду применять на практике этот метод, но какие-то идеи точно стоит взять на вооружение. Например, правильное распределение приоритетов разработки и выделение контекстов.
А вот официальный сайт, если заинтересовались концепцией.
#systemdesign
Хабр
Моделирование микросервисов с помощью Event storming
Event storming — метод, который смещает акцент у событий с технического на организационный и бизнес уровни и помогает создать устойчивую модульную систему. Он нередко используется в контексте...
🔥6👍2🌭2
Как находить время "на почитать"
Я всегда любил читать. Раньше больше художку, потом больше нон-фикшн. Однажды заметил, что совсем перестал читать. И не из-за того что не хочется, а потому что всегда находится что-то важнее, всегда есть какой то вытесняющий фактор.
В итоге задумался, а что я делаю каждый день, на что я всегда нахожу время? Каждый день я пью кофе, полчаса точно, а значит, именно это время я могу выделить на почитать. И так делаю уже пару лет. Каждый день минимум полчаса на чтение — неплохой результат, если до этого было ноль.
Разумеется, не обязательно пить кофе по утрам, и, вероятно, вы и так вдоволь читаете, но вектор понятен.
Мы писали про анализ предметной области перед стартом проекта и откуда вообще брать источники технической литературы. Рекомендации от нас по интересным книгам вы найдёте по тегу #books.
Какую последнюю книгу вы прочитали и готовы рекомендовать?
#edu
Я всегда любил читать. Раньше больше художку, потом больше нон-фикшн. Однажды заметил, что совсем перестал читать. И не из-за того что не хочется, а потому что всегда находится что-то важнее, всегда есть какой то вытесняющий фактор.
В итоге задумался, а что я делаю каждый день, на что я всегда нахожу время? Каждый день я пью кофе, полчаса точно, а значит, именно это время я могу выделить на почитать. И так делаю уже пару лет. Каждый день минимум полчаса на чтение — неплохой результат, если до этого было ноль.
Разумеется, не обязательно пить кофе по утрам, и, вероятно, вы и так вдоволь читаете, но вектор понятен.
Мы писали про анализ предметной области перед стартом проекта и откуда вообще брать источники технической литературы. Рекомендации от нас по интересным книгам вы найдёте по тегу #books.
Какую последнюю книгу вы прочитали и готовы рекомендовать?
#edu
Telegram
DevFM
Любая работа по программированию начинается с анализа предметной области. Рекомендуется пара этих ресурсов - для русского и английского поиска.
https://cyberleninka.ru
https://www.researchgate.net
https://scholar.google.com/
В начале ищутся самые популярные…
https://cyberleninka.ru
https://www.researchgate.net
https://scholar.google.com/
В начале ищутся самые популярные…
🔥9🌭4👍3❤1
Tracing Python
Обычно для отслеживания работы кода достаточно отладчика в любимой среде разработки. Но если, например, проблема не воспроизводится локально, приходится расчехлять что-то большее…
В статье автор приводит всевозможные способы трассировки кода, останавливаясь на возможностях каждого:
— sys.settrace
— самописный logging-декоратор
— autologging
— icecream
— snoop и birdseye
В дополнение из наших постов: статья про разухабистое логирование, где одним из аспектов является поиск узких мест.
#python
Обычно для отслеживания работы кода достаточно отладчика в любимой среде разработки. Но если, например, проблема не воспроизводится локально, приходится расчехлять что-то большее…
В статье автор приводит всевозможные способы трассировки кода, останавливаясь на возможностях каждого:
— sys.settrace
— самописный logging-декоратор
— autologging
— icecream
— snoop и birdseye
В дополнение из наших постов: статья про разухабистое логирование, где одним из аспектов является поиск узких мест.
#python
Die wunderbare Welt von Isotopp
Tracing Python
Kris Köhntopp's blog (Fedi: @isotoppinfosec.exchange)
👍12🔥2🌭2❤1⚡1
Пятничное развлекательное
Очень люблю безумные фанатские теории от ЧБУ. В них настолько хитро раскручивается какая-то деталь фильма, что результат анализа начинает выглядеть идеальным объяснением происходящего.
Некоторое время назад ЧБУ обвинили в плагиате идей. У автора сильно подгорело, и он вышел с большим видеоответом Что значит ЧБУ. Получился крутой ролик о внутрянке канала с рассуждениями о жизни и заимствованиях.
Если вам нравится ЧБУ, то получите истинное наслаждение от просмотра. Если вам ЧБУ не знаком, то рекомендую начать с его роликов. Интереснее всего посмотреть разбор к вашему любимому фильму, познакомиться с очень необычный точкой зрения на эту же картину.
Мы советовали ЧБУ к фильмам:
Назад в будущее
Большой Лебовски
Бегущий по лезвию
#fun
Очень люблю безумные фанатские теории от ЧБУ. В них настолько хитро раскручивается какая-то деталь фильма, что результат анализа начинает выглядеть идеальным объяснением происходящего.
Некоторое время назад ЧБУ обвинили в плагиате идей. У автора сильно подгорело, и он вышел с большим видеоответом Что значит ЧБУ. Получился крутой ролик о внутрянке канала с рассуждениями о жизни и заимствованиях.
Если вам нравится ЧБУ, то получите истинное наслаждение от просмотра. Если вам ЧБУ не знаком, то рекомендую начать с его роликов. Интереснее всего посмотреть разбор к вашему любимому фильму, познакомиться с очень необычный точкой зрения на эту же картину.
Мы советовали ЧБУ к фильмам:
Назад в будущее
Большой Лебовски
Бегущий по лезвию
#fun
YouTube
Подгорело. Что значит ЧБУ?
00:00 Вступление
00:37 Зачем я создал канал и как делал видео?
02:35 Принцип построения теорий.
06:09 В чём прикол канала?
09:10 Синдром дефицита внимания и гиперактивности.
10:37 Антон Чигур никого не убивал.
12:36 Пролетая над гнездом кукушки.
12:56 Матрица…
00:37 Зачем я создал канал и как делал видео?
02:35 Принцип построения теорий.
06:09 В чём прикол канала?
09:10 Синдром дефицита внимания и гиперактивности.
10:37 Антон Чигур никого не убивал.
12:36 Пролетая над гнездом кукушки.
12:56 Матрица…
❤3🌭3👍1🔥1
Гайд начинающего тимлида
Автор пытается помочь начинающим тимлидам. Начинается всё с главного вопроса жизни, вселенной и всего такого — зачем вам становится тимлидом? Если вы-таки решились, то автор предлагает большой список книг. Часть являются общепризнанной классикой ("Как пасти котов" Рейнвотера и "Цель" Голдратта), часть недавно стали довольно обсуждаемыми в сообществе ("Джедайские техники" Орлова), о большинстве, к сожалению, я слышу впервые. Выделим полезный Teamlead roadmap, о котором мы писали.
А вот "Мифический человеко-месяц" Брукса — на мой взгляд, редкостно переоценённая книга. Основная мысль практически раскрыта в названии: в программировании нельзя линейно складывать производительность разработчиков, что сопровождается метафорой "9 женщин за 1 месяц не смогут родить ребёнка". В остальном книга предлагает древние идеи, которые либо совсем не имеют смысла, либо их надо нетривиально перерабатывать под современные реалии. Пример совсем бесполезного: сравнение производительности в строках кода при диалоговом и пакетном программировании, а также обсуждение мега-нового инструмента — интерактивного отладчика. Пример адаптации: "ведите журнал регистрации телефонных разговоров" — тут надо крепко подумать и прийти к необходимости готовить резюме всех обсуждений, будь то оффлайн-собрание или онлайн-встреча. В общем, как эта книга Брукса является интересной исторической справкой о состоянии разработки до 1975 года плюс небольшой ретроспективе от 1995 года с попыткой переосмыслить прошедшие за 20 лет изменения. В реалиях ещё спустя 30 лет книга совершенно не помогает.
Следующий шаг автора — составление плана первоначальных действий, цель которого выяснить официальную и неофициальную схему принятия решения в компании. С опорой на эту схему и возможные требования к тимлиду из Teamlead roadmap рекомендуется выяснить свои будущие должностные обязанности.
Затем действительно важный шаг — обсуждаются типовые проблемы в команде, с самим собой и с компанией и пути их решения.
Ближе к завершению автор выделяет полезные качества тимлида. Завершает автор рекомендациями "что делать дальше", которые, вообще говоря, относятся вообще к любой профессии и не содержат специфичного для тимлида.
Странно, что такая важная тема не получила активный отклик в комментариях к статье.
Дополним статью нашим постом, как упростить жизнь руководителю.
#edu
Автор пытается помочь начинающим тимлидам. Начинается всё с главного вопроса жизни, вселенной и всего такого — зачем вам становится тимлидом? Если вы-таки решились, то автор предлагает большой список книг. Часть являются общепризнанной классикой ("Как пасти котов" Рейнвотера и "Цель" Голдратта), часть недавно стали довольно обсуждаемыми в сообществе ("Джедайские техники" Орлова), о большинстве, к сожалению, я слышу впервые. Выделим полезный Teamlead roadmap, о котором мы писали.
А вот "Мифический человеко-месяц" Брукса — на мой взгляд, редкостно переоценённая книга. Основная мысль практически раскрыта в названии: в программировании нельзя линейно складывать производительность разработчиков, что сопровождается метафорой "9 женщин за 1 месяц не смогут родить ребёнка". В остальном книга предлагает древние идеи, которые либо совсем не имеют смысла, либо их надо нетривиально перерабатывать под современные реалии. Пример совсем бесполезного: сравнение производительности в строках кода при диалоговом и пакетном программировании, а также обсуждение мега-нового инструмента — интерактивного отладчика. Пример адаптации: "ведите журнал регистрации телефонных разговоров" — тут надо крепко подумать и прийти к необходимости готовить резюме всех обсуждений, будь то оффлайн-собрание или онлайн-встреча. В общем, как эта книга Брукса является интересной исторической справкой о состоянии разработки до 1975 года плюс небольшой ретроспективе от 1995 года с попыткой переосмыслить прошедшие за 20 лет изменения. В реалиях ещё спустя 30 лет книга совершенно не помогает.
Следующий шаг автора — составление плана первоначальных действий, цель которого выяснить официальную и неофициальную схему принятия решения в компании. С опорой на эту схему и возможные требования к тимлиду из Teamlead roadmap рекомендуется выяснить свои будущие должностные обязанности.
Затем действительно важный шаг — обсуждаются типовые проблемы в команде, с самим собой и с компанией и пути их решения.
Ближе к завершению автор выделяет полезные качества тимлида. Завершает автор рекомендациями "что делать дальше", которые, вообще говоря, относятся вообще к любой профессии и не содержат специфичного для тимлида.
Странно, что такая важная тема не получила активный отклик в комментариях к статье.
Дополним статью нашим постом, как упростить жизнь руководителю.
#edu
Хабр
Гайд начинающего тимлида
В данной статье хотелось бы помочь разобраться в профессии начинающим тимлидам, или тем, кто об этом только думает. Всё это я проговаривал на вебинаре в Хекслете тут . Однако я уверен, что есть такие...
🌭7👍6❤2🔥1
Ковыряем атаку forkbomb на bash в docker
Есть такой вид атаки на отказ в обслуживании (DoS, Denial of Service) — forkbomb. Запускается процесс, который бесконечно порождает сам себя, пожирая все ресурсы системы. Прав суперпользователя не требуется, любой пользователь может создавать процессы.
Cкрипт атаки выглядит так. Функция порождает две версии себя, связанные конвейером. Правая функция уходит в фоновый режим с помощью знака амперсанд &.
Скрипт можно переписать в непонятный однострочник, изменив название на символ двоеточия:
Такой набор символов эквивалентен скрипту выше. При этом он компактен, и его могут запихнуть вам в качестве шуточного ответа на вопрос. Спасибо ещё, что не патч Бармина.
В видео также применяется десяток линуксовых команд, в том числе и разбираются флаги такой docker команды
Хотите почувствовать себя капитаном тонущего корабля? Теперь ресурсы системы принадлежат не вам, а паразитному процессу forkbomb. Приятного просмотра!
#devfm #youtube #skills
#СоерКлуб
Есть такой вид атаки на отказ в обслуживании (DoS, Denial of Service) — forkbomb. Запускается процесс, который бесконечно порождает сам себя, пожирая все ресурсы системы. Прав суперпользователя не требуется, любой пользователь может создавать процессы.
Cкрипт атаки выглядит так. Функция порождает две версии себя, связанные конвейером. Правая функция уходит в фоновый режим с помощью знака амперсанд &.
forkbomb()
{
forkbomb | forkbomb&
}
Скрипт можно переписать в непонятный однострочник, изменив название на символ двоеточия:
:(){ :|:& }; :
Такой набор символов эквивалентен скрипту выше. При этом он компактен, и его могут запихнуть вам в качестве шуточного ответа на вопрос. Спасибо ещё, что не патч Бармина.
В видео также применяется десяток линуксовых команд, в том числе и разбираются флаги такой docker команды
docker run --it --rm --cpus="0.5" --memory=4G --pids-limit=1000 --name=forkbomb ubuntu bash
Хотите почувствовать себя капитаном тонущего корабля? Теперь ресурсы системы принадлежат не вам, а паразитному процессу forkbomb. Приятного просмотра!
#devfm #youtube #skills
#СоерКлуб
YouTube
Fork-бомба в Docker-контейнере | Forkbomb in Docker
Посмотрим, как ведёт себя Forkbomb (классическая DoS - Denial-Of-Service attack) внутри Docker-контейнера. Рассматриваются bash-forkbomb, разные ресурсы компьютера с Ubuntu (cpu, mem, pid_max), запуск Docker-контейнера с Ubuntu с отслеживанием docker stats…
🔥20👍4❤2🌭1
Пятничное развлекательное
Залипательное и захватывающее видео о развитии роботов Boston Dynamics на протяжении 40 лет. Удивительно, как неспешно идёт прогресс в этой области. В противовес этому, прогресс в области искусственного интеллекта семимильными шагами идёт вперёд. Мы делились, какие прикладные задачи уже можно решать с помощью ChatGPT.
Подробнее историю развития Boston Dynamics можно прочитать тут. Кстати, в 2013-2017 годах ими владели Google, а с 2020 года и по настоящее время ими владеет Hyundai. И у них всего 500 сотрудников.
#fun
Залипательное и захватывающее видео о развитии роботов Boston Dynamics на протяжении 40 лет. Удивительно, как неспешно идёт прогресс в этой области. В противовес этому, прогресс в области искусственного интеллекта семимильными шагами идёт вперёд. Мы делились, какие прикладные задачи уже можно решать с помощью ChatGPT.
Подробнее историю развития Boston Dynamics можно прочитать тут. Кстати, в 2013-2017 годах ими владели Google, а с 2020 года и по настоящее время ими владеет Hyundai. И у них всего 500 сотрудников.
#fun
YouTube
Boston Dynamics: 40 years of development (1983 - 2023 ) Atlas
Boston Dynamics: 40 years of development (1983 - 2023 ) Atlas
Atlas is an incredibly advanced humanoid robot that has been developed by the robotics company Boston Dynamics. It is a bipedal robot that stands at 6 feet tall and weighs 180 pounds. It is capable…
Atlas is an incredibly advanced humanoid robot that has been developed by the robotics company Boston Dynamics. It is a bipedal robot that stands at 6 feet tall and weighs 180 pounds. It is capable…
👍10🔥3❤2🌭1
gping
Периодически в офисе отваливается интернет. Чтобы оперативно об этом узнавать, в фоне всегда запущен терминал с классическим ping 8.8.8.8
Недавно узнал об интересной утилите gping. Это такой ping на стероидах.
Из приятного:
— в консоли строится временной график
— можно пинговать сразу несколько хостов и наглядно видеть отличия
— можно измерять время выполнения команд
Кстати, помимо гуглового DNS 8.8.8.8 существует также красивый адрес DNS от Cloudflare 1.1.1.1. У них же есть DNS 1.0.0.1. Зачем им такой некрасивый адрес?
Прикол в том, что по стандарту IP можно пропускать диапазон нулей. В результате ping 1.1 раскроется в 1.0.0.1 — попробуйте сами.
#tools
Периодически в офисе отваливается интернет. Чтобы оперативно об этом узнавать, в фоне всегда запущен терминал с классическим ping 8.8.8.8
Недавно узнал об интересной утилите gping. Это такой ping на стероидах.
Из приятного:
— в консоли строится временной график
— можно пинговать сразу несколько хостов и наглядно видеть отличия
— можно измерять время выполнения команд
Кстати, помимо гуглового DNS 8.8.8.8 существует также красивый адрес DNS от Cloudflare 1.1.1.1. У них же есть DNS 1.0.0.1. Зачем им такой некрасивый адрес?
Прикол в том, что по стандарту IP можно пропускать диапазон нулей. В результате ping 1.1 раскроется в 1.0.0.1 — попробуйте сами.
#tools
GitHub
GitHub - orf/gping: Ping, but with a graph
Ping, but with a graph. Contribute to orf/gping development by creating an account on GitHub.
🔥20🌭3❤2
Backup: июнь и июль
Этим летом много говорили о проектировании, анонсировали наш курс по Linux, не забывали про Python и даже писали о тимлидстве.
Архитектура проекта
Управление данными в микросервисах
Путь от монолита к микросервисам
Event storming для проектирования сервисов
Retrying consumer in Kafka
Мониторинг — боль
Linux
Бесплатный курс "Командная строка для разработчиков" (готово 3 занятия, пополняется)
Зачем разработчику нужен Linux вообще и терминал в частности
Ковыряем атаку forkbomb на bash в docker
Инструменты
Как документировать архитектуру
Утилита gping — ping на стероидах
Разное
Tracing Python
Попробуйте ruff
Гайд начинающего тимлида
Как находить время "на почитать"
В пятничном развлекательном вы активно реагировали на посты Типы кабелей, 40 лет развития роботов, Что значит ЧБУ, Anki-карточки
Если пропустили, то подборка за май и большая подборка по базам данных
#backup
Этим летом много говорили о проектировании, анонсировали наш курс по Linux, не забывали про Python и даже писали о тимлидстве.
Архитектура проекта
Управление данными в микросервисах
Путь от монолита к микросервисам
Event storming для проектирования сервисов
Retrying consumer in Kafka
Мониторинг — боль
Linux
Бесплатный курс "Командная строка для разработчиков" (готово 3 занятия, пополняется)
Зачем разработчику нужен Linux вообще и терминал в частности
Ковыряем атаку forkbomb на bash в docker
Инструменты
Как документировать архитектуру
Утилита gping — ping на стероидах
Разное
Tracing Python
Попробуйте ruff
Гайд начинающего тимлида
Как находить время "на почитать"
В пятничном развлекательном вы активно реагировали на посты Типы кабелей, 40 лет развития роботов, Что значит ЧБУ, Anki-карточки
Если пропустили, то подборка за май и большая подборка по базам данных
#backup
👍9❤2🔥2🌭1
Посмотрите на keydb
Мы уже упоминали keydb – интересную альтернативу redis, на которую можно бесшовно переехать.
Хоть переезд и обещают бесшовным, но логичен вопрос – зачем? В статье ребята рассказывают о двух киллер-фичах, ради которых можно устроить переезд.
Речь идёт о режимах active replica и multi-master. Они позволяют получить совместимый с Redis распределённый отказоустойчивый KeyDB, но при этом писать в любую ноду, читать из любой ноды. Это как раз то, чего в redis будет сложновато добиться.
Пожалуй, самая интересная и ценная часть статьи – это проблемы, с которыми можно всё-таки столкнуться, используя keydb и тех случаях, когда keydb вам, вероятно, не подойдёт.
Авторы столкнулись:
– c неожиданным поведением некоторых команд
– c out of memory, когда городили хитроумный кластер с множеством мастеров и реплик
– с проблемой, когда всё ломала клиентская библиотека
#skills #database
Мы уже упоминали keydb – интересную альтернативу redis, на которую можно бесшовно переехать.
Хоть переезд и обещают бесшовным, но логичен вопрос – зачем? В статье ребята рассказывают о двух киллер-фичах, ради которых можно устроить переезд.
Речь идёт о режимах active replica и multi-master. Они позволяют получить совместимый с Redis распределённый отказоустойчивый KeyDB, но при этом писать в любую ноду, читать из любой ноды. Это как раз то, чего в redis будет сложновато добиться.
Пожалуй, самая интересная и ценная часть статьи – это проблемы, с которыми можно всё-таки столкнуться, используя keydb и тех случаях, когда keydb вам, вероятно, не подойдёт.
Авторы столкнулись:
– c неожиданным поведением некоторых команд
– c out of memory, когда городили хитроумный кластер с множеством мастеров и реплик
– с проблемой, когда всё ломала клиентская библиотека
#skills #database
Telegram
DevFM
Как ускорить приложение на FastAPI
Важно понимать потенциальные узкие места вашего приложения, и что можно подкрутить в том или ином случае.
Отличная практическая статья, показывающая, как можно ускорить своё приложение. Примеры из статьи выложены на github…
Важно понимать потенциальные узкие места вашего приложения, и что можно подкрутить в том или ином случае.
Отличная практическая статья, показывающая, как можно ускорить своё приложение. Примеры из статьи выложены на github…
🔥7👍6❤1🌭1
Пятничное развлекательное
При регистрации к паролю часто предъявляются разного уровня параноидальности требования. Нужны оба регистра букв, цифра, спецсимвол, завязка, кульминация и развязка...
Залипательная игра на придумывание пароля с постоянно усложняющимися, мозгодробительными условиями.
Пишите, на каком шаге остановились.
#fun
При регистрации к паролю часто предъявляются разного уровня параноидальности требования. Нужны оба регистра букв, цифра, спецсимвол, завязка, кульминация и развязка...
Залипательная игра на придумывание пароля с постоянно усложняющимися, мозгодробительными условиями.
Пишите, на каком шаге остановились.
#fun
neal.fun
The Password Game
Please choose a password
❤5👍4😁3🔥1🌭1
Временные интервалы в postgres
Недавно столкнулись с задачей анализировать временные интервалы и подготавливать данные, находящиеся в Postgres, для построения графиков.
В статье автор на реальных примерах демонстрирует интересные возможности postgres:
– функция generate_series генерирует различные хитрые ряды
– функция date_bin позволяет группировать временные метки по различным хитрым интервалам
– функция width_bucket считает количество значений в динамических интервалах
– на закуску unnest вместе с ORDINALITY
Все описанные в статье примеры можно легко воспроизвести.
Ещё из интересного, автор для своих примеров использует специальное расширение postgis для написания питоновского кода. Так, конечно, делать нельзя, но может оказаться полезным для проведения экспериментов или в демонстрационных целях.
#skills #database
Недавно столкнулись с задачей анализировать временные интервалы и подготавливать данные, находящиеся в Postgres, для построения графиков.
В статье автор на реальных примерах демонстрирует интересные возможности postgres:
– функция generate_series генерирует различные хитрые ряды
– функция date_bin позволяет группировать временные метки по различным хитрым интервалам
– функция width_bucket считает количество значений в динамических интервалах
– на закуску unnest вместе с ORDINALITY
Все описанные в статье примеры можно легко воспроизвести.
Ещё из интересного, автор для своих примеров использует специальное расширение postgis для написания питоновского кода. Так, конечно, делать нельзя, но может оказаться полезным для проведения экспериментов или в демонстрационных целях.
#skills #database
Crunchy Data
Easy PostgreSQL Time Bins | Crunchy Data Blog
Paul has some fast and easy tricks to show you how to get time series data into nice reportable data charts. Using functions like floor(), generate_series(), width_bucket(), and date_bin() you can bin your data in groups any way you like and retrieve charts…
🔥3❤2👍2🌭1
Утилита lazy-docker
Классная утилита lazy-docker, которая привносит UI в терминал. Позволяет быстро просматривать основные сущности, логи, конфиги, потребляемые ресурсы. Я не сторонник такого, но выглядит приятно, да ещё терминал не нужно покидать.
#tools
Классная утилита lazy-docker, которая привносит UI в терминал. Позволяет быстро просматривать основные сущности, логи, конфиги, потребляемые ресурсы. Я не сторонник такого, но выглядит приятно, да ещё терминал не нужно покидать.
#tools
GitHub
GitHub - jesseduffield/lazydocker: The lazier way to manage everything docker
The lazier way to manage everything docker. Contribute to jesseduffield/lazydocker development by creating an account on GitHub.
🔥8👍3❤2⚡2🌭1
Пятничное развлекательное залипательное
Залипательная штука. Каждый раз переходя по ссылочке, вы будете попадать на произвольный сайт из эпохи Web 1.0. Интересно, что натыкался на сайты, которые до сих пор поддерживаются и обновляются – обычно какие-то персональные страницы.
Мне попадались самые разные шедевры, например, вот – о том, как сосуществовали люди и динозавры. Оттуда же можно узнать, почему динозавры не упоминаются в библии.
Расскажите, что у вас?
#fun
Залипательная штука. Каждый раз переходя по ссылочке, вы будете попадать на произвольный сайт из эпохи Web 1.0. Интересно, что натыкался на сайты, которые до сих пор поддерживаются и обновляются – обычно какие-то персональные страницы.
Мне попадались самые разные шедевры, например, вот – о том, как сосуществовали люди и динозавры. Оттуда же можно узнать, почему динозавры не упоминаются в библии.
Расскажите, что у вас?
#fun
❤8🔥7⚡4🌭1