Книжный куб
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре (no ads in channel)
نمایش بیشتر📈 تحلیل کانال تلگرام Книжный куб
کانال Книжный куб (@book_cube) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 14 434 مشترک است و جایگاه 2 566 را در دسته کتب و رتبه 45 885 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 14 434 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 29 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 190 و در ۲۴ ساعت گذشته برابر 4 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 17.37% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 10.10% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 2 503 بازدید دریافت میکند. در اولین روز معمولاً 1 455 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 21 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند engineering, native, devex, devops, leadership تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре (no ads in channel)”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 30 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته کتب تبدیل کردهاند.
Production use of a neural network tends to go through these four phases (if you are lucky): 1. It works on the training data 2. It also works on the validation data 3. After a lot of disappointment, we get it to work on other people’s real life data too 4. Other people can get it to work on their own data as well
Almost all demos declare victory after phase 2.И дальше автор делает финальные выводы по выступлению - Deep learning реально - Deep learning позволяет получать магические результаты - Deep learning не является волшебным и обманчиво простым - Все еще можно попасть на борт этого корабля:) В итоге, автор предлагает не опираться на внешние API облачных сервисов, а делать свои продукты поверх решений, доступных on-premise. Автор предлагает посмотреть на следующие материалы - Whisper.cpp: state of the art voice transcription in dozens of languages, entirely self-contained on your own computer/phone: https://github.com/ggerganov/whisper.cpp - LlaMA “GPT-like”, self-contained, own computer etc: https://github.com/ggerganov/llama.cpp - https://berthub.eu/articles/posts/hello-deep-learning/ - the series behind this presentation, https://github.com/berthubert/hello-dl - https://berthub.eu/articles/posts/ai-is-guaranteed-to-disrupt-us/ #ML #DataScience #Data #Math #Software #SoftwareDevelopment #Engineering
В поисках средств для оживления в широких кругах интереса к математике, мне пришла мысль собрать ряд произведений, трактующих математические темы в беллетрической или полубеллетрической форме, и предложить их читателю с соответствующими комментариями. Число таких произведений, конечно, весьма ограничено. Этим объясняются скромные размеры настоящего сборника. Однако, затрагиваемые в нем математические темы все же довольно разнообразны: относительность пространства и времени, четырехмерный мир, расчеты из области небесной механики, вопросы математической географии, комбинаторика и исполинские числа, приложение математического анализа к играм, неопределенный анализ, уравнения. Можно надеяться, что этот небольшой сборник натолкнет иных читателей на более серьезные размышления и побудит к систематическому ознакомлению с тем или иным отделом математики. Настоящий сборник является первым известным мне опытом подобного рода.#Math #PopularScience #Physics
Product manager: We’re launching this awesome new feature next month! And we need analytics from day 1! Let’s GOOO! Data team: HOLD ON! Lemme talk to the software engineering team first and see what their data architecture looks like…А дальше доклад посвящен следующим темам и выстроен в виде важных вопросов, которые обычно задает Sam в очередном проекте 1. Logistics - нужны доки, нужны встречи и понятная зона ответственности, понятные коммуникации, ответы на вопросы: что мы планируем измерять и когда (уже в первый день, неделю, месяц, ...). Как сделать так, что команда разработки была в синке с аналитикой. 2. Infrastructure - где хостятся данные, какой там тип хранилища, могут наши ETL инструменты с этим справиться, нужен ли SSH туннель. Есть ли prod и dev инстансы, мы используем реплики для получения данных? Нужен ли нам доступ на запись? Что мы делаем с credentials (личные они или общие, как мы их шарим). Когда удастся получить доступ к данным? На dev или prod? 3. Data model - как выглядит схема данных, есть ли документация, кто поддерживает изменения в схеме и кто и как их коммуницирует? Как будет выглядеть data constraints enforcing (foreign key relationship, NULL values, default values, JSON schemas)? Как обрабатываются таймзоны в датах, валюты? Действительно ли мы сохраняем все, что хотим измерять? 4. Application and data flow - как и когда записи создаются и поля заполняются значениями? Какие действия вызывают модификации значений? Как события модификаций данных логируются (поле updated_at или отдельная таблица с событиями логирования)? Как будут обработаны удаления (hard или soft удаления)? Архивируются ли "старые" данные? Нужна ли миграция данных из старого приложения? Будут ли реалистичные тестовые данные, на которых можно будет разрабатывать? Будут ли тестовые данные в production среде? 5. Data contracts - как будут документированы договоренности из пунктов 1-4? И как мы будем обеспечивать их соблюдение в будущем не требуя слишком большого человеческого участия? Что из этого можно вынести в CI/CD и проверять на стороне производителе данных (а не как обычно на стороне потребителя)? Как нужно будет коммуницировать об изменениях и кого надо будет информировать об этом? Что делать, если что-то сломается? Как надо будет репортить о проблемах, а также какое SLA будет на фиксы? Автор обобщает весь доклад тремя пунктами
- Integrating data from a new source into your data warehouse isn’t just “plug n play” - There are an infinite number of questions to consider. You will probably miss something. - The key is connection and context between teams.А дальше, если все сделать правильно, то проблема из самого начала превращается в
Product manager: Look at this awesome new feature! And the dashboard to track all these cool metrics! Data team: Well it’s not everything you asked and it was a bit bumpy getting there, but it works! Go team!#Data #Software #SoftwareDevelopment #Engineering #Management #Leadership #Databases
Баланс означает корректировку игрововй механики для изменения относительной мощности различных инструментов, боевых единиц, стратегия, команд или персонажей.Баланс является инструментом, который используют для разных целей, где выделяются две: честность и глубина - игра считается честно, если вначале ни у одного из игроков нет преимущества - для того, чтобы игра была глубокой, она должна генерировать решения, которые были бы настолько сбалансированы, что даже эксперту сложно было бы принять решения Обычно игроки используют определенные стратегии - конкретные наборы действий для достижения целей. И если нет вырожденной стратегии (очевидно лучшей для данной ситуации), то игра является глубокой. Интересно, что баланс зависит от навыка игрока, так как разный уровень навыков дает доступ к разным стратегиям. Иногда ради баланса геймдизайнер решает поменять одну из механик, из которых состоит игра. Но изменения в механиках меняют все стратегии, в которые она встроена, а не только те, что мы планировали изменить. Поэтому поиск баланса достаточно сложен. Прямо как при принятии архитектурных решений:) Глава 7. Многопользовательская игра Эту главу автор начинает с рассмотрения теории игр, которой посвящены отдельные книги "Теория игр", "Теория игр в комиксах". Тут идет речь про равновесие Нэша, смешанные стратегии, yomi (чтение мыслей противника и попытка его убедить, что вы сделаете что-то одно, а вы на самом деле сделаете что-то другое). Дальше идет речь про то, что в многопользовательских играх часто у игроков могут быть разные цели, что приводит к тому, что одни игроки нарушают опыт других игроков. Глава 8. Мотивация и удовлетворение Эта глава начинается к отсылке к дофаминовому удовольствию и предвкушению награды, которое работает лучше, чем собственно получение награды. Дальше автор рассказывает про режим подкрепления
Режим подкрепления - это система правил, которая определяет, когда выдается наградаПричем большинство режимов подкрепления имеют неявную схему разработки, когда они появляются из игровых систем более низкого уровня. Это назвается эмерджентными режимами подкрепления. Интересно, что режимы подкрепления, работающие через внешнюю мотивацию и поощрения могут вытеснять и разрушать внутреннее наполнение игры и мотивацию игроков. Поэтому
Цель дизайна наград состоит в том, чтобы создать систему, которая может обнаруживать и соответствующим образом вознаграждать игрока за все, что он уже хочет сделать. Поскольку каждая игра уникальна, то нуждается в собственной продуманной системе.Глава 9. Интерфейс Автор начинает с того, что у нас 2 цели - донести информацию о том, что проихсодит в игре - здесь мы должны разработать системы, которые структурируют и упорядочивают информацию - обеспечить возможность управления - здесь мы должны разработать сложную комбинацию ограничений, соглашений и вспомогательных систем Для этого часто используются метафоры, которые придают новой информации знакомые черты, чтобы ее можно было легче понять. Больше того, игра должна задать словарь метафор, который указывает какие элменты моделируют механику, и соответствовать этому словарю. Для того, чтобы информация воспринималась лучше используется визуальная иерархия, в которой важные элементы становятся более заметными, чем неважные. Глава 10. Рынок Эта глава посвящена тому, как игры чувствуют себя на рынке. Про эффект Матфея, дилемму новатора, сегментацию рынка, кривую ценности. В общем, здесь мы заходим на территорию маркетинга и планирования продаж:) P.S. На этом обзор это книги заканчивается, так часть книги про "Процессы" очень хорошо пересекается с обычными процессами разработки, о которых я и так часто рассказываю. #Design #GameDesign #SystemDesign #SystemThinking #Management #SelfDevelopment
Prefer simple, straightforward solutions to overly clever and complicated, cool approachesи
Focus innovation on the domain, not technologyНу и финальный аккорд выступления посвящен тому, что архитектура до сих пор остается самой интересной областью в IT потому, что она имеет значение - если сделать ее плохо, то все развалится, а вот если сделать правильно, то успех еще не гарантирован:) P.S. RIP Стефан. Ты был крутым архитектором, консультантом и спикером. #Architecture #Software #Engineering
The CAP theorem’s impact on modern distributed database system design is more limited than is often perceived. Another tradeoff—between consistency and latency—has had a more direct influence on several well-known DDBSs. A proposed new formulation,
PACELC
, unifies this tradeoff with CAP.Фокус CAP теоремы на поведении распределенной системы во время разделения сети. Но большую часть времени система работает в состоянии, когда с сетью все в порядке. Поэтому интересно оценить а какоой tradeoff в этом случае. И это оказывается треугольник "consistency, availability, and latency", который автор упрощает до пары consistency и latency, так как
Availability and latency are arguably the same thing: an unavailable system essentially provides extremely high latencyДальше автор выводит необходимость репликации данных из требования высокой доступности и вероятности сбоев в распределенной системе. Он делает это от противного, то есть если этого не делать, то при достаточно долгом времени работы системы один из компонентов системы выйдет из строя, его данные будут потеряны, а это эффективно приведет к их недоступности. Дальше автор рассматривает варианты репликации данных
1. Data updates sent to all replicas at the same time 2. Data updates sent to an agreed-upon location first 3. Data updates sent to an arbitrary location first1) Здесь отправка обновлений происходит на все ноды. Есть два варианта - a. Pre-processing слоя нет - тут будет нарушена консистентность (линеаризуемость) из определения Gilbert and Lynch (из уже упоминавшегося доказательства CAP теоремы). - b. Такой слой есть - время уйдет на координацию узлов, если их много, а если узел в препроцессинге один, то мы будем тратить время на пересылку запросов к нему, что в гео-распределенной системе может быть затратно. 2) Здесь мы имеем мастер-ноду (для разных элементов данных у нас могут быть разные мастера). И в эту мастер-ноду летят все запросы на обновление, которые она выполняет и эффективно определяет порядок операций, который един для всех реплик. Здесь есть 3 возможности для репликации 1. Синхронная репликация - при апдейте мы ждем пока все реплики обновятся. Это консистентно, но увеличивает latency 2. Асинхронная репликация - тут мы обычно прихраниваем update в persistent storage, но успешной репликации не ждем и подтверждаем операцию. Дальше интересно посмотреть как мы читаем данные в этом случае - a. Если мы читаем с мастера, то мы не имеем проблем с consistency, но latency может быть большим, так как мастер далеко. Плюс при высокой нагрузке на мастер мы тоже получим проблемы с latency. - b. Если мы читаем с реплик, то потенциально может прочитать устаревшие данные 3. Комбинация синхронное и асинхронной - по-факту, это что-то из серии tunable consistency в Cassandra, где можно указывать кворум на запись и на чтение 3) Тут похоже на второй пункт, но мы отправляем обновления не в определенный мастер для конкретного элемента, а на произвольную ноду. Проблемы с consistency и latency здесь похожи на те, что во втором пункте. Дальше автор разбирает как эти tradeoffs работают в популярных на то время базах данных: Dynamo, Cassandra, PNUTS, Riak, ... и делается вывод, что дизайн решения в базах зачастую больше фокусируются на consistency/latency в условиях нормальной работы, а не на consistency/availability в условиях наступления partition. И дальше автор предлагает переписать CAP в PACELC с примерно такой формулировкой
If there is a partition (P), how does the system trade off availability and consistency (A and C); else (E), when the system is running normally in the absence of partitions, how does the system trade off latency (L) and consistency (C)?#Software #Architecture #DistributedSystems #SystemDesign
It is impossible for a web service to provide the following three guarantees: consistency, availability, partition-toleranceВсе эти свойства желательны в реальных системах. Но для того, чтобы доказать это утверждение, требуется для начала формализовать все три свойства 1) Начать стоит с consistency, где авторы идут в сторону atomic data objects или линеаризуемой консистентности (linearizable consistency)
Under this consistency guarantee, there must exist a total order on all operations such that each operation looks as if it were completed at a single instant. This is equivalent to requiring requests of the distributed shared memory to act as if they were executing on a single node, responding to operations one at a time.Такие гарантии косистентности пользователям проще воспринимать и для такой модели проще проектировать клиентское приложение, которое будет взаимодействовать с такой распределенной системой. 2) Второй характеристикой является availability, где для непрерывной доступности каждый запрос, попавший на несбойную ноду системы должен получить свой ответ. Таким образом любой алгоритм для генерации ответа сервисов должен оканчиваться в конечном счете (eventually terminate). Интересно, что это слабое определение доступности, так как нет верхней границы на время ответа - это позволяет unbounded computation. Но если рассматривать это с позиции устойчивости к разделению, то это может рассматриваться как сильное определение доступности - даже если происходят сбои в сети, каждый запрос должен завершиться. 3) Для моделирования partition-tolerance авторы предлагают считать, что в сети может теряться произвольное количество сообщений, что отправляются от одной ноде к другой. В итоге, мы можем моделировать любой паттерн потерь
When a network is partitioned, all messages sent from nodes in one component of the partition to nodes in another component are lost. (And any pattern of message loss can be modeled as a temporary partition separating the communicating nodes at the exact instant the message is lost.)Дальше авторы переходят к доказательствам 1) Начнем сначала с асинхронных систем
Theorem 1 It is impossible in the asynchronous network model to implement a read/write data object that guarantees the following properties: • Availability • Atomic consistency in all fair executions (including those in which messages are lost).Доказывается эта теорема на пальцах методом от противного. Представим, что такой алгоритм существует. Дальше представим систему из двух нод G1 и G2. Дальше считаем, что у нас теряются все сообщения между G1 и G2. Дальше происходит запись в G1 и позже чтение из G2. В итоге, чтение с G2 не сможет вернуть значение, что было записано в G1. В самой статье есть и более формальное доказательство. 2) В реальном мире у нас используются не полностью асинхронные системы, а частично синхронные. В них у нод есть свои часы, которые позволяют замерять время и использовать таймауты. Но даже в более мощном сетапе мы получаем похожий результат
Theorem 2 It is impossible in the partially synchronous network model to implement a read/write data object that guarantees the following properties: • Availability • Atomic consistency in all executions (even those in which messages are lost).Доказательство похоже на предыдущее как две капли воды:) Оставшаяся часть white paper посвящена Delayed-t consistency в частично синхронных системах, про которую мы тут говорить не будем. #Software #Architecture #DistributedSystems #SystemDesign
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
