Forwarded from dd if=/dev/stuff of=/dev/tg
Приходите 2 декабря на вебинар по парсерным комбинаторам на TypeScript, который я буду вести в качестве гостя коммьюнити Math.random(): https://mathrandom.com/webinar0212
Материал рассчитан на начинающую аудиторию, поэтому я начну с азов: быстренько пройдусь по крохотной части теории компиляции, разберу понятие функционального парсера и парсерных комбинаторов, и покажу, как мне изящно удалось решить задачу парсинга строки поискового запроса с булевыми операторами в ней в ~200 строк кода (а на самом деле даже меньше).
Материал рассчитан на начинающую аудиторию, поэтому я начну с азов: быстренько пройдусь по крохотной части теории компиляции, разберу понятие функционального парсера и парсерных комбинаторов, и покажу, как мне изящно удалось решить задачу парсинга строки поискового запроса с булевыми операторами в ней в ~200 строк кода (а на самом деле даже меньше).
#books
Прочитал книжку А. Левенчука "Системноинженерное мышление", очень рекомендую! Не смотря на то, что я последние несколько лет очень интересовался вопросом описания и понимания больших и сложных систем, и изучил немало материала на эту тему, из книги все равно почерпнул для себя достаточно много инсайтов. Кстати, там достаточно много ссылок и на другую годную литературу.
Безусловно есть и минусы. У книги очень растянутое введение, т.о. если решите читать, то первые страниц 100(примерно треть книги) рекомендую просто пролистать
Прочитал книжку А. Левенчука "Системноинженерное мышление", очень рекомендую! Не смотря на то, что я последние несколько лет очень интересовался вопросом описания и понимания больших и сложных систем, и изучил немало материала на эту тему, из книги все равно почерпнул для себя достаточно много инсайтов. Кстати, там достаточно много ссылок и на другую годную литературу.
Безусловно есть и минусы. У книги очень растянутое введение, т.о. если решите читать, то первые страниц 100(примерно треть книги) рекомендую просто пролистать
Поймал себя на том, что достаточно часто у сервисов со сложной логикой физически отделяю api от этой самой логики, связывая их мостиком из очередей. Занятно, что такой паттерн замечал у многих коллег, но мало кто смог ответить на вопрос о причинах такого разделения. Кароч, котаны, цимес такой: очень часто к api и бекенду у клиентов предъявляются разные ожидания. Апишка должна быть шустрой и всегда доступной(тот самый рыжий AP из CAP-теоремы), но при этом может отдать не особо актуальную инфу. Для бекенда, особенно работающего с денюжкой, часто важна строгая консистентность, но при этом никто не расстроится если он время от времени ненадолго приляжет(CP из CAP). У нас такие не особо нагруженные бекенды могли в кубернетисе даже без резервирования крутиться))
В самом деле, клиент не очень расстроится, если его заявка будет обрабатываться на 5 мин дольше, в случае подключения интернета у провайдера, или заказа нового иксбокса в магазине, но при этом будет недоумевать, если ему в лицо швырнуть 500кой или крутить спинером пока его заявка проходит все ваши CRM и ERP.
Вот такой вот интересный патерн. Го в комменты, делитесь своими мыслями, рассказывайте юзаете такое или нет
В самом деле, клиент не очень расстроится, если его заявка будет обрабатываться на 5 мин дольше, в случае подключения интернета у провайдера, или заказа нового иксбокса в магазине, но при этом будет недоумевать, если ему в лицо швырнуть 500кой или крутить спинером пока его заявка проходит все ваши CRM и ERP.
Вот такой вот интересный патерн. Го в комменты, делитесь своими мыслями, рассказывайте юзаете такое или нет
Интересные новости подъехали: Percona Monitoring and Management(продукт для мониторинга БД) переехал с Prometheus-based хранилища на VictoriaMetrics-based. При этом основной притензией к прому, как я понял из блога, была сложность настройки сети из-за pull-модели получения метрик. Целевым решением стал переезд на VM и использование по-дефолту push-модели
Я не берусь комментировать решения коллег из percona, но для меня это выглядит, как минимум, неоднозначно. Уверен, что парни рассмотрели альтернативы и приняли взвешенное решение, но в статье это как-то не отразилось(
Я не берусь комментировать решения коллег из percona, но для меня это выглядит, как минимум, неоднозначно. Уверен, что парни рассмотрели альтернативы и приняли взвешенное решение, но в статье это как-то не отразилось(
Percona Database Performance Blog
Foiled by the Firewall: A Tale of Transition From Prometheus to VictoriaMetrics
The next release of Percona Monitoring and Management will include the VictoriaMetrics Agent with VMDB and will have a K8s compatible pmm-client that works with our latest operator.
Котаны, внезапно узнал, что у Нила Форда есть kata на fitness functions по аналогии с архитектурными kata Теда Ньюарта.
Скоро у всех новогодние (онлайн-)корпораты, так вот вам отличный конкурс))
Скоро у всех новогодние (онлайн-)корпораты, так вот вам отличный конкурс))
Forwarded from Флант | Специалисты по DevOps и Kubernetes
Новый перевод в блоге на конкретных примерах для Istio показывает, какие препятствия по-прежнему актуальны для сегодняшних service mesh в целом: https://habr.com/ru/company/flant/blog/533686/
Хабр
Service mesh — это всё ещё сложно
Прим. перев.: эта небольшая статья Lin Sun из IBM в блоге CNCF — занятная иллюстрация тех сложностей, над преодолением которых сейчас трудятся инженеры популярны...
Вспомнился тут интересный кейс, который в свое время заставил начать смотреть на цифры по-новому: на одном из собеcов меня попросили спроектировать систему, часть которой должна была хранить огромное количество(десятки миллионов) строковых ключей. Прирастали эти ключи тоже с приличной скоростью(десятки тысяч за день). Задача была простая: нужно уметь искать по четкому совпадению среди этих ключей.
Ну казалось бы, тут счет на миллионы, чуть ли не бигдата, надо расчехлять кликхаусы/сциллы и придумывать как бы так пошардировать что бы... вот где-то здесь мне интервьюер и предложил посчитать сколько же реально места займут наши миллионы строк. Допустим, длина ключа ограничена 100 символами:
Мораль сей басни: всегда надо четко(не в попугаях) оценивать нагрузку. Мне в этом плане очень нравится практика SREшного NALSD
Ну казалось бы, тут счет на миллионы, чуть ли не бигдата, надо расчехлять кликхаусы/сциллы и придумывать как бы так пошардировать что бы... вот где-то здесь мне интервьюер и предложил посчитать сколько же реально места займут наши миллионы строк. Допустим, длина ключа ограничена 100 символами:
100 * 100 000 000 ~ 10Гб
Десять гигабайт(Карл!). Вот и весь хайлоад) Мораль сей басни: всегда надо четко(не в попугаях) оценивать нагрузку. Мне в этом плане очень нравится практика SREшного NALSD
У парней из @dddevotion вчера прошел ламповый ивент с блекджеком и кодом. Для тех кто любит(или пытается полюбить) DDD очень рекомендую!
This media is not supported in your browser
VIEW IN TELEGRAM
Смеющийся испанец для меня, однозначно, мем года. А тут еще и про данные! Не могу не поделиться
Котаны, с наступающим(а кого-то и с уже наступившим) новым годом! Как говорил Конфуций: "найдите себе работу по душе, и вам не придется работать ни дня в своей жизни", вот и Вам я желаю, что бы айти приносило только удовлетворение от простого решения сложных проблем, а не головняк, фрустрацию и овертаймы! Ура, товарищи!
#kafka #performance
Отличная прошлогодняя статья про то, откуда растут ноги скорости Кафки. Если не читали, то очень советую.
В принципе ничего неожиданного (в основном, оптимизация I\O по всем фронтам), но очень круто, что кто-то собрал все такие трюки в одном месте
Отличная прошлогодняя статья про то, откуда растут ноги скорости Кафки. Если не читали, то очень советую.
В принципе ничего неожиданного (в основном, оптимизация I\O по всем фронтам), но очень круто, что кто-то собрал все такие трюки в одном месте
Хабр
Почему Kafka такая быстрая
За последние несколько лет в сфере архитектуры ПО произошли огромные изменения. Идея единственного монолитного приложения или даже нескольких крупных сервисов,...
Кстати, котаны, только сегодня узнал о существовании вот такой вот замечательной карты от CNCF
Тут собраны и сгруппированы все плюс-минус зрелые Cloud Native технологии. Очень удобно для понимания альтернатив при выборе очередного кирпичика для решения
Тут собраны и сгруппированы все плюс-минус зрелые Cloud Native технологии. Очень удобно для понимания альтернатив при выборе очередного кирпичика для решения
CNCF Landscape
The CNCF Cloud Native Landscape is intended as a map through the previously uncharted terrain of Cloud Native technologies. It attempts to categorize projects and products in the Cloud Native space.
Forwarded from @yarosh_log
Список технических блогов, стоит добавить в закладки и раз в месяц почитывать
Cloudflare https://blog.cloudflare.com/
Netflix https://netflixtechblog.com/
Uber https://eng.uber.com/
Lyft https://eng.lyft.com/
Twilio https://www.twilio.com/blog
Facebook https://research.fb.com/
Twitter https://blog.twitter.com/engineering/en_us.html
Databricks https://databricks.com/blog/category/engineering
Google AI https://ai.googleblog.com/
Google Dev https://developers.googleblog.com/
Slack (already mentioned) https://slack.engineering/
Twitch https://blog.twitch.tv/en/?tag=engineering
Quora https://www.quora.com/q/quoraengineering
Discord https://blog.discord.com/engineering-posts/home
Cloudflare https://blog.cloudflare.com/
Netflix https://netflixtechblog.com/
Uber https://eng.uber.com/
Lyft https://eng.lyft.com/
Twilio https://www.twilio.com/blog
Facebook https://research.fb.com/
Twitter https://blog.twitter.com/engineering/en_us.html
Databricks https://databricks.com/blog/category/engineering
Google AI https://ai.googleblog.com/
Google Dev https://developers.googleblog.com/
Slack (already mentioned) https://slack.engineering/
Twitch https://blog.twitch.tv/en/?tag=engineering
Quora https://www.quora.com/q/quoraengineering
Discord https://blog.discord.com/engineering-posts/home
The Cloudflare Blog
Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet.
#dotnet #staticanalysis
Котаны, у Facebook есть замечательный static analysis тул под названием Infer. Если верить фейсбуку, там под капотом мат. аппарат, который позволяет детектить до 80% багла до прода.
Исторически тул работал для Java, C и Objective-C, но фейсбук внезапно добавил поддержку C# Додиезеры, возрадуйтесь!
Котаны, у Facebook есть замечательный static analysis тул под названием Infer. Если верить фейсбуку, там под капотом мат. аппарат, который позволяет детектить до 80% багла до прода.
Исторически тул работал для Java, C и Objective-C, но фейсбук внезапно добавил поддержку C# Додиезеры, возрадуйтесь!
Fbinfer
Infer Static Analyzer | Infer | Infer
A tool to detect bugs in Java and C/C++/Objective-C code before it ships
Forwarded from oleg_log (Oleg Kovalov)
Пссс, я тут недавно запостил давно начатый клиент для Redis на Go.
Зачем? Хотелось и другое не нравилось. У кого там были идеи по апи или еще какие-то боли из прода, подкиньте коментов/аргументов/ишью. Можно в лс. (Особо активных позову потом в чат организации)
Лайк-подписка на вырост https://github.com/cristalhq/redis
Зачем? Хотелось и другое не нравилось. У кого там были идеи по апи или еще какие-то боли из прода, подкиньте коментов/аргументов/ишью. Можно в лс. (Особо активных позову потом в чат организации)
Лайк-подписка на вырост https://github.com/cristalhq/redis
GitHub
GitHub - cristalhq/redis: WIP. Redis client for Go
WIP. Redis client for Go. Contribute to cristalhq/redis development by creating an account on GitHub.
#data
Отличный курс лекций про данные от Ростелека и вендоров: https://www.youtube.com/playlist?list=PLlCP3a0hjY50I5mumo_YCu7IEDjiUpEWO
З.Ы. лекции 1.1-1.3 вводные, их можно пропустить
Отличный курс лекций про данные от Ростелека и вендоров: https://www.youtube.com/playlist?list=PLlCP3a0hjY50I5mumo_YCu7IEDjiUpEWO
З.Ы. лекции 1.1-1.3 вводные, их можно пропустить
YouTube
Лекции DataTalks
Share your videos with friends, family, and the world
Forwarded from Человек и машина
#машины_разное
Во время своего выступления Дор Лаор, СЕО Scylla анонсировал новый проект Circe, который в корне меняет структуру консенсуса ScyllaDB.
Взамен Paxos в ядро этого немалоизвестного конкурента Cassandra и DynamoDB будет использоваться Raft, что по словам Дора сделано в угоду консистентности и позволяет быстрее синхронизировать новые узлы в кластере.
Интересно попробовать собрать POSIX FS over Scylla... когда-нибудь.
Во время своего выступления Дор Лаор, СЕО Scylla анонсировал новый проект Circe, который в корне меняет структуру консенсуса ScyllaDB.
Взамен Paxos в ядро этого немалоизвестного конкурента Cassandra и DynamoDB будет использоваться Raft, что по словам Дора сделано в угоду консистентности и позволяет быстрее синхронизировать новые узлы в кластере.
Интересно попробовать собрать POSIX FS over Scylla... когда-нибудь.
ScyllaDB
Making ScyllaDB a Monstrous Database: Introducing Project Circe - ScyllaDB
Project Circe is a year-long initiative to make ScyllaDB even more of a monstrous database, improving performance, scalability and elasticity.