Книжный куб
11.1K subscribers
2.66K photos
6 videos
3 files
1.96K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
Величайшие математические задачи (The Great Mathematical Problems)

Эта превосходная книга за авторством Иэна Стюарта, как-то напомнила мне почему я всегда любил математику ... которая обычно преподается в школе скучно и утилитарно, но за кулисами полна красивых загадок и очаровательных закономерностей:) В общем и целом, я рекомендую эту книгу к прочтению, так как автор постарался и простым и понятным языком изложил целый ряд задач, над которыми бились поколения ученых и которые двигали математику вперед, создавая новые области исследований. В этой книге вы прочитаете про:
- знаменитые задачи квадратуры круга, трех тел, эквивалентности классов P и NP
- теоремы о четырех красках, великую теорему Ферма
- гипотезы Кеплера, Римана, Пуанкаре
- и многое другое

Но суть не в том, чтобы разобрать эти проблемы, а в том, чтобы понять как математика развивается во времени и как ее различные области связаны друг с другом парадоксальными закономерностями, и как математика целиком связана с остальными науками.

P.S.
Так приятно читать книгу, восприятие которой требует напряжения мозга - а эта книга именно такова:)

#Math #PopularScience
👍15🔥4
Первый IT-фестиваль на коньках — IT’s Tinkoff on ICE

Через пару недель я отправлюсь с семьей покататься на коньках в Парк Горького, так как Tinkoff проводит там фестиваль, куда наши devrel позвали всех сотрудников, которые активно участвовали в развитии нашего IT бренда, выступая на конференциях, митапах, публикуя статьи или обучая людей.
Но это не закрытое мероприятие для спикеров, а фестиваль для широкой аудитории - зарегистрироваться может любой (на катке есть место для 3000 человек).

В общем, приходите, общайтесь, катайтесь на коньках, участвуйте в ледовом IT-квесте и главное получайте удовольствие.

P.S.
На катке будет
- теплый мерч, чтобы не замерзнуть
- зоны для детей и взрослых
- фудкорт с глинтвейном

Мероприятие будет 23 января 2023 в Москве, в Парке Горького в 18:30
https://meetup.tinkoff.ru/ice/
9👍8
Сказка о царе Салтане

У моего двухлетнего сына Кирюши вчера поднялась температура и он буквально уснул у меня на руках в 9 вечера. Я дал ему жаропонижающее и дальше до 12 еще успел дописать статью по одной крутой книге, а дальше тоже лег спать. В итоге, в 4 утра Кирюша проснулся, так как действие нурафена закончилось. Сразу он вставать не стал, но попросил включить на Алисе сказку. Так в 4 утра мы начали слушать сказку Пушкина о царе Салтане. В итоге, я дошел до мысли, что вся завязка сказки состоит в том, что царь с царицей не продумали схему коммуникации и допустили атаку MITM (man in the middle) через перхват гонцов и подмену сообщений. А не было бы этой уязвимости, то может быть мы и не слушали эту сказку с Кирюшей, а, например, продолжали спать.

P.S.
С четырех и до самого утра я успел подремать еще пару часиков, а потом пришла няня, а я ушел на работу

#ForKids #Sec
😁20👍12🤣2
Обзор книги “A Philosophy of Software Design” — Part I

Раньше я уже рассказывал здесь про John Ousterhout, создателя Raft, который на мероприятии “Talks at Google” рассказывал о философии проектирования программного обеспечения. В этом выступлении он за час рассказал краткое содержимое своей книги, которое мне очень понравилось. В итоге, я не смог удержаться и заказал бумажную версию книги, прочел ее и дальше решил написать краткий обзор. Первая часть обзора доступна на моем Medium - https://apolomodov.medium.com/review-a-philosophy-of-software-design-part-1-980697f52698

Очень рекомендую прочитать книгу в оригинале, она тонкая, но наполнена очень крутыми мыслями - по концентрации их она у меня на первом месте😁

#SoftwareDevelopment #SoftwareArchitecture #Software #SystemDesign #Philosophy #Architecture
👍11😁2
Explainable AI Explained for Developers • Joop Snijder & Willem Meints • GOTO 2022

Я возобновил свои походы в фитнес, где я обычно занимаюсь кардио на эллиптическом тренажере.
А так как крутить педали просто так скучно, то я обычно успеваю посмотреть какое-то выступление с конференции. Именно так я вчера смог посмотреть доклад про explainable AI с последней конференции GOTO, что проходила в Нидерландах. Сам доклад мне понравился
- спикеры рассказали как ML становится вездесущим
- потом начали рассказывать про то, как ML может помочь фейвовой компании, которая продает кофе по подписке
- рассказ перешел в демо по использованию Auto ML в Azure для предсказания оттока подписчиков
- а потом авторы начали задаваться вопросами, а что делать с результатами предсказаний - так они подошли к заявленной теме, а именно, что обычно требуется умение понимать результаты

Все вопросы в выступлении рассматриваются на уровне погружения, который есть у среднего разработчика без глубоких деталей ML и вот этого всего:) А на выходе слушатели получают неплохое понимание о том, что сейчас ML тоже стремится в сторону commodity (особенно с появлением Auto ML), но вот вопрос хранения данных, их подготовки, деплоя модели и интерпретации результатов требует определенных скилов у инженеров, которые при помощи Auto ML пока не решаются:)

#ML #Conference #Software
👍8
Путешествия во времени. История (Time Travel. A History)

Эта книга за авторством Джеймса Глика рассказывает истории развития концепции времени и путешествий по нему. Она начинается с Герберта нашего Уэллса с его машиной проходит сквозь парадоксы путешествий во времени и заканчивается нашим настоящим, когда мы живем здесь и сейчас в виртуальном пространстве, где «река информации образует "ленту" или "временную шкалу" ... но последовательность сообщений в этой шкале произвольна. Хронологическому их порядку едва ли можно доверять. Прошлое, настоящее, будущее ходят кругам и сталкиваются между собой ...»
В общем, книга интересно написана и содержит кучу референсов на мыслителей, поэтов, ученых, фантастов и даже популярные фильмы, такие как "Назад в Будущее" и "День Сурка". Я получил большое удовольствие путешествуя по страницам этой книги, постепенно собирая мозаику временных путешествий и разных подходов к этой теме на протяжении известной истории человечества:)

P.S.
Краткий анонс книги от автора заканчивается так: «Книга будет интересна всем путешественникам во времени»

#Time #Physics #PopularScience
👍10🆒2🔥1
Керлинг

Я два раза в жизни играл в керлинг:) Один раз на дне рождения друга лет десять назад, а второй раз - прямо перед новым годом со своими коллегами, когда у нас была предновогодняя встреча IT руководителей. Отдельно отмечу, что мне и моей команде удалось отличиться и помочь противоположной команде стать чемпионами - мы проиграли с таким счетом, что у них был лучшая разница +/- по камням среди всех команд.

P.S.
А я подтвердил свое мнение о том, что керлинг - это конечно весело, но это не мое:)
🔥15👍7🤣6🥰1
Обзор книги “A Philosophy of Software Design” — Part II

В предыдущей части обзора этой книги мы начали обсуждать крутую книгу John Ousterhout по философии software design. Мы успели рассмотреть основные концепции, изложенные в первых 11 главах книги. В этой статье мы рассмотрим вторую половину книги и начнем с пользы комментариев и продолжим обсуждением других способов сдерживания complexity.

Подробнее в моей статье на Medium - https://apolomodov.medium.com/review-a-philosophy-of-software-design-part-2-60999140d1d2

#SoftwareDevelopment #SoftwareArchitecture #Software #SystemDesign #Philosophy #Architecture
👍17🔥1
Prioritizing Technical Debt as If Time & Money Matters • Adam Tornhill • GOTO 2022

Крутой доклад от Адама Торнхилла, который продолжает тему complexity в разработке ПО, которая была главной в книге A Philosophy of Software Design, которую я вспоминал вчера.
Сначала автор приводит Lehman's "Laws" of Software Evolution, которые показывают почему вопрос управления сложностью важен
- Continuing change - система должна постоянно адаптироваться или она будет прогрессирующе становиться менее приемлемой
- Increasing complexity - по мере эволюции системы complexity возрастает, пока не будут выполнена работа по поддержке или уменьшению complexity
Это накопление complexity приводит к появлению технического долга, который замедляет time to market, снижает предсказуемость работы над системами, приводит к организационным проблемам, а также снижает возможности к инновациям.
Дальше автор предлагает способы его померить при помощи Behavioral Code Analysis, который состоит из трех компонент: code, people, context. Все это можно подтянуть из VCS. Автор предлагает мерить 2 параметра
- Code complexity - метрика сложности кода, про нее чуть дальше отдельно
- Code change frequency - метрика частоты изменения кода (тут просто количество изменений кода за период времени)
В сумме эти два параметра позволяют понять какие части кода являются сложными и которые приходится часто править.

Code Complexity автор предлагает мерить опять не одной метрикой, а используя набор метрик для оценки здоровья кода:
- На уровне модулей - low cohesion (слишком много ответственности на классе), brain class (low cohesion, + как минимум один Brain метод, который большой, сложный и централизует поведение модуля)
- На уровне функций - brain methods, copy-pasted logic
- На уровне имплементацииl - deeply nested logic, primitive obsession

Дальше автор показывает пример анализа кодовой базы Android для того, чтобы продемонстировать свою концепцию. Распределение частотности работы с разными файлами выглядит как распределение с длинным хвостом, поэтому часто изменяющихся файлов не так много и только часть из них сложные. Собственно нам надо начинать работу с нашим техдолгом именно с этих файлов, а остальные можно игнорировать - это прагматичный, экономически-обоснованный подход. Интересно, что автор утверждает, что это стандартная картина для всех проектов, что он видел. А дальше он находит проблемный файл ActivityManagerService.java и делает drill down, чтобы показать как найти место внутри этого файла, где сконцентрированы основные проблемы - собствеенно это он и называет X-Ray.

Дальше идет рассказ про legacy code, который он определяет следующим образом:
- Lacks in quality - стандартное определение
- We didn't write ourselves - не совсем стандартная часть:) которая мешает начать рефакторить свой код вовремя
Дальше автор рассказывает забавную историю про анализ трех разных проектов, где два были свои родные, а один приемный. Они были сравнимы по качеству, но переписать хотели только чужой проект, так как на него пало подозрение в том, что он legacy:)

Ну и напоследок автор рассказывает про то, что можно еще анализировать вклад разных людей в кодовую базу и оценивать количество знаний, сконцентрированных у каждого, а также что-то вроде bus factor для каждого мейнтейнера на случай того, чтобы минимизировать риск потери важной информации при уходе ключевых людей.

P.S.
У автора есть сайт https://codescene.com/ и книга "Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis", в которой этот подход подробно разобран.

#SoftwareDevelopment #SoftwareArchitecture #Software #SystemDesign #Architecture #TechDebt #Management
👍18🔥21🤔1
Философия в комиксах (Introducing Philosophy: A Graphic Guide)

Этот графический роман Дэйва Робинсона является отличным введением в такую сложную область как философия, в которой за много веков было столько течений и теорий, что сам черт ногу сломит с ними разбираться в деталях:) А вот автор их заворачивает в забавный текст, а иллюстратор, Джуди Грувс, сопровождает текст интересными картинками с неявными отсылками к другим философам.
Книга как обычно начинается с древних греков:
- Пифагор, Парменид, Зенон, Эмпедокл, Демокрит быстро пролетают и дальше автор останавливается на эре Сократа
- Сократ, Платон, Аристотель гораздо подробнее разбираются в книге, например, миф о пещере Платона или его утопия с государством, которым будут управлять философы, а также логика Аристотеля и научное познание
- дальше было время римлян, которые философией особо не занимались в отличие от более приземленных вешей
- и только в средние века эти размышления о бытие начались заново, но за стенами монастырей в приложении к вопросам религии, где себя проявили: Блаженный Августин, Ансельм Кентерберийский, Пьер Абеляр, Фома Аквинский, Вильям Оккам
- дальше наступила эпоха возрождения и вопросы философии вышли за пределы религиозных догм - можно вспомнить, Эразма Ротердамского, Николло Маккиавелли (но он больше политолог), Томас Гоббс
- дальше на небосводе появились философы-ученыые - Френсис Бэкон, Рене Декарт, Барух Спиноза, Вильгельм Лейбниц

А дальше все закручивается все интереснее по мере приближения к нашему времени, поэтому рекомендую читать оригинал.
Плюс лучше в оригинале почитать Карла Поппера с его теорией фальсификации начных теорий, а также Томаса Куна с его структурой научных революций, плюс Дериду с его деконструкцией, который упоминается в Technology Strategy Patterns:)

Другие тимы по этой теме
- Комикс "Философы в действии"
- Комикс "Государь" в виде краткой выжимки по книге Макиавелли и мое краткое саммари по книге Макиавелли
- Метакнига "50 великих книг по философии"

#Philosophy #PopularScience #Thinking
👍12🔥42
Плакат от МИФа «Креативные техники»

На одной из прошлых мифовских распродаж я купил этот плакат и только недавно дошли руки повесить его на стене в кабинете.
Забавно, что часть представленных избранных советов из разных книг я узнаю и так, потому что читал оригинальные книги.
В общем, нарисовано приятно, идеи неплохие - пусть висит:)

#Creativity
👍111🔥1
Distributed Systems, 4th Edition (Рубрика #Architecture)

Полгода назад я рассказывал как дочитал книгу ван Стина и Таненбаума по распределенным системам. Она настолько мне понравилась, что я написал краткое саммари первой главы, в которой авторы делали краткий обзор всех тем книги. Дальше эту книгу выбрали слушатели клуба Code of Architecture, чтобы мы начали читать и обсуждать ее ... А дальше авторы выпускают в январе 2023 года новое издание книги, доступное бесплатно на сайте авторов.
В общем, эта книга - отличный подарок к началу нового года:)

#Architecture #SoftwareArchitecture #DistributedSystems #Software #SystemDesign
🔥391👍1
Code of Architecture - Distributed Systems - Episode 1

Сегодня в 18:00 по Мск мы в рамках клуба Code of Architecture начнем обсуждать книгу Distributed Systems, причем сразу новое, четвертое издание.
Мы обсудим первую главу "Introduction", в которой поговорим про
— основные характеристики распределенных систем;
— их классификацию;
— цели проектирования;
— и техники масштабирования.

Приходите на Youtube канал IT's Tinkoff.

#CoA #Architecture #SoftwareArchitecture #DistributedSystems #Software #SystemDesign
👍17
NASA Systems Engineering Handbook

Кто в детстве не мечтал стать космонавтом? И несмотря на то, что мечты не сбылись, но вот книжку про то, как космонавты проектируют свои системы я себе заполучил, причем заполучил в бумаге.
Для тех, кому бумага не принципиальна, pdf доступен на сайте nasa.

Отдельно отмечу, что сегодня при обсуждении Distributed Systems мы упоминали проектирование для mission critical доменов, навроде медицинских устройств или космических аппаратов для космонавтов.

#SystemEngineering #Processes #Management
👍20