Git Merge vs Rebase
Одной из самых мощных возможностей Git является работа с ветками.
Однако при работе с ними нам нужно интегрировать изменения из одной ветки в другую, и способов сделать это несколько.
Есть два основных метода:
1. Merge (слияние)
Когда вы сливаете ветку A в ветку B (с помощью
У этого коммита два родителя — по одному от каждой ветки, что символизирует объединение их истории.
- Это неразрушающая операция, которая сохраняет точную историю проекта.
- Merge особенно полезен в командной работе, когда важно сохранить целостность и хронологию изменений.
Минус: merge-коммиты могут "засорять" историю, усложняя отслеживание конкретных изменений.
2. Rebase (перебазирование)
Когда вы перебазируете ветку A на ветку B (с помощью
"Давайте сделаем вид, что изменения из ветки A были сделаны поверх последних изменений ветки B."
- Rebase переписывает историю проекта, создавая новые коммиты для каждого из исходных коммитов.
- Результат — чистая, линейная история.
Минус: может быть проблематично, если над веткой работают несколько человек, ведь перебазирование переписывает историю, что усложняет совместную работу при уже опубликованных ветках.
Когда что использовать?
- Merge — когда важно сохранить полную историю и вы работаете с общими ветками. Идеально для слияния feature-веток в
- Rebase — для личных веток или когда нужна чистая, линейная история для удобства отслеживания изменений.
👉 @Bookflow
Одной из самых мощных возможностей Git является работа с ветками.
Однако при работе с ними нам нужно интегрировать изменения из одной ветки в другую, и способов сделать это несколько.
Есть два основных метода:
1. Merge (слияние)
Когда вы сливаете ветку A в ветку B (с помощью
git merge), Git создаёт новый merge-коммит.У этого коммита два родителя — по одному от каждой ветки, что символизирует объединение их истории.
- Это неразрушающая операция, которая сохраняет точную историю проекта.
- Merge особенно полезен в командной работе, когда важно сохранить целостность и хронологию изменений.
Минус: merge-коммиты могут "засорять" историю, усложняя отслеживание конкретных изменений.
2. Rebase (перебазирование)
Когда вы перебазируете ветку A на ветку B (с помощью
git rebase), это означает:"Давайте сделаем вид, что изменения из ветки A были сделаны поверх последних изменений ветки B."
- Rebase переписывает историю проекта, создавая новые коммиты для каждого из исходных коммитов.
- Результат — чистая, линейная история.
Минус: может быть проблематично, если над веткой работают несколько человек, ведь перебазирование переписывает историю, что усложняет совместную работу при уже опубликованных ветках.
Когда что использовать?
- Merge — когда важно сохранить полную историю и вы работаете с общими ветками. Идеально для слияния feature-веток в
main или develop.- Rebase — для личных веток или когда нужна чистая, линейная история для удобства отслеживания изменений.
Важно: не делайте rebase публичной истории. Если ветка уже опубликована и с ней работают другие, переписывание истории приведёт к конфликтам и путанице.
👉 @Bookflow
👍8❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤮1
🚀 Вебинар: Тестируем скорость сайтов как профи с WebPageTest!
Привет, backend-разработчик! Ты уверен, что твой сайт летает, а не ползет, как улитка в пробке? 🐌💨
Бесплатный вебинар по WebPageTest покажет, как измерить скорость твоего веб-приложения без магии и шаманских бубнов: регистрация
Разберем:
✅ Как тестировать скорость правильно (спойлер: F5 – не метод)
✅ Что скрывает архитектура WebPageTest
✅ Как читать результаты тестов и не плакать
После вебинара ты сможешь:
🔹 Выбирать систему тестирования
🔹 Проводить тесты так, чтобы даже Google позавидовал
🔹 Анализировать результаты и чинить тормоза
📅 Регистрируйся → получишь напоминалку перед стартом: регистрация
P.S. Если хочешь прокачаться в оптимизации на 100%, приходи на курс «Оптимизация производительности веб-приложений». Не упусти шанс сделать сайты быстрее, чем твой коллег успевает сказать «Это не баг, это фича»! 😉
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Привет, backend-разработчик! Ты уверен, что твой сайт летает, а не ползет, как улитка в пробке? 🐌💨
Бесплатный вебинар по WebPageTest покажет, как измерить скорость твоего веб-приложения без магии и шаманских бубнов: регистрация
Разберем:
✅ Как тестировать скорость правильно (спойлер: F5 – не метод)
✅ Что скрывает архитектура WebPageTest
✅ Как читать результаты тестов и не плакать
После вебинара ты сможешь:
🔹 Выбирать систему тестирования
🔹 Проводить тесты так, чтобы даже Google позавидовал
🔹 Анализировать результаты и чинить тормоза
📅 Регистрируйся → получишь напоминалку перед стартом: регистрация
P.S. Если хочешь прокачаться в оптимизации на 100%, приходи на курс «Оптимизация производительности веб-приложений». Не упусти шанс сделать сайты быстрее, чем твой коллег успевает сказать «Это не баг, это фича»! 😉
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Что_каждый_системный_программист_должен_знать_о_параллелизме.pdf
1.3 MB
Что каждый системный программист должен знать о параллелизме
Мэтт Клайн
Системные программисты хорошо знакомы с такими инструментами, как мьютексы, семафоры и условные переменные.
Но как они работают? Как писать параллельный код, когда этих инструментов нет — например, при работе ниже уровня операционной системы в встраиваемой среде или когда нельзя блокировать выполнение из‑за жёстких временных ограничений? И если компилятор и процессор «сговариваются», превращая ваш код в то, чего вы не писали, выполняя его в порядке, которого вы не ожидали, то как вообще работают многопоточные программы?
Параллелизм — это сложная и неочевидная тема, но давайте попробуем разобрать некоторые её основы.
👉 @Bookflow
Мэтт Клайн
Системные программисты хорошо знакомы с такими инструментами, как мьютексы, семафоры и условные переменные.
Но как они работают? Как писать параллельный код, когда этих инструментов нет — например, при работе ниже уровня операционной системы в встраиваемой среде или когда нельзя блокировать выполнение из‑за жёстких временных ограничений? И если компилятор и процессор «сговариваются», превращая ваш код в то, чего вы не писали, выполняя его в порядке, которого вы не ожидали, то как вообще работают многопоточные программы?
Параллелизм — это сложная и неочевидная тема, но давайте попробуем разобрать некоторые её основы.
👉 @Bookflow
👍3
Детальный обзор полей Галуа
"Попросите Якоби или Гаусса публично высказать своё мнение — не о истинности, а о важности этих теорем. Позже, я надеюсь, найдутся люди, которым будет выгодно разобраться во всём этом хаосе."
Этими словами заканчивалось письмо Эвариста Галуа, написанное для своего друга Огюста Шевалье за два дня до его смерти от полученных на дуэли ран на 21 году жизни. Ни Якоби, ни Гаусс в его теоремах не разобрались, зато спустя 15 лет разобрался Жозеф Лиувилль и опубликовал работы Галуа, ставшие впоследствии фундаментом современной алгебры, известные сейчас как теория Галуа. В статье расскажу про одну из частей этой теории - поля Галуа, получившая настолько повсеместное применение в криптографии и избыточном кодировании, что Intel и AMD выпустили набор процессорных расширений для эффективной реализации операций над этими полями.
Заметка! Если вам довелось использовать/реализовывать поля Галуа, то большая часть статьи для вас скорее всего будет не интересна, но возможно в последних разделах будет что-то для вас новое.
https://habr.com/ru/articles/916740/
👉 @Bookflow
"Попросите Якоби или Гаусса публично высказать своё мнение — не о истинности, а о важности этих теорем. Позже, я надеюсь, найдутся люди, которым будет выгодно разобраться во всём этом хаосе."
Этими словами заканчивалось письмо Эвариста Галуа, написанное для своего друга Огюста Шевалье за два дня до его смерти от полученных на дуэли ран на 21 году жизни. Ни Якоби, ни Гаусс в его теоремах не разобрались, зато спустя 15 лет разобрался Жозеф Лиувилль и опубликовал работы Галуа, ставшие впоследствии фундаментом современной алгебры, известные сейчас как теория Галуа. В статье расскажу про одну из частей этой теории - поля Галуа, получившая настолько повсеместное применение в криптографии и избыточном кодировании, что Intel и AMD выпустили набор процессорных расширений для эффективной реализации операций над этими полями.
Заметка! Если вам довелось использовать/реализовывать поля Галуа, то большая часть статьи для вас скорее всего будет не интересна, но возможно в последних разделах будет что-то для вас новое.
https://habr.com/ru/articles/916740/
👉 @Bookflow
👍4❤3
📌7 распространённых асимптотических сложностей алгоритмов
1. O(1) — Константное время
- Время выполнения не зависит от размера входных данных.
- Пример: доступ к элементу массива по индексу.
2. O(log n) — Логарифмическое время
- Время выполнения растёт медленно при увеличении размера входных данных. Обычно встречается в алгоритмах, которые на каждом шаге делят задачу пополам.
- Пример: бинарный поиск в отсортированном массиве.
3. O(n) — Линейное время
- Время выполнения растёт прямо пропорционально размеру входных данных.
- Пример: поиск элемента в массиве перебором всех элементов.
4. O(n log n) — Линейно-логарифмическое время
- Время выполнения растёт чуть быстрее линейного, включает логарифмическое число операций для каждого элемента.
- Пример: сортировка массива быстрой сортировкой или сортировкой слиянием.
5. O(n²) — Квадратичное время
- Время выполнения пропорционально квадрату размера входных данных.
- Пример: сортировка пузырьком, где сравниваются и при необходимости меняются местами все пары элементов.
6. O(2ⁿ) — Экспоненциальное время
- Время выполнения удваивается с каждым новым элементом во входных данных. Такие алгоритмы становятся непрактичными для больших входных размеров.
- Пример: генерация всех подмножеств множества.
7. O(n!) — Факториальное время
- Время выполнения пропорционально факториалу размера входных данных.
- Пример: генерация всех перестановок множества.
♻️ Сделай репост, чтобы помочь другим.
👉 @Bookflow
1. O(1) — Константное время
- Время выполнения не зависит от размера входных данных.
- Пример: доступ к элементу массива по индексу.
2. O(log n) — Логарифмическое время
- Время выполнения растёт медленно при увеличении размера входных данных. Обычно встречается в алгоритмах, которые на каждом шаге делят задачу пополам.
- Пример: бинарный поиск в отсортированном массиве.
3. O(n) — Линейное время
- Время выполнения растёт прямо пропорционально размеру входных данных.
- Пример: поиск элемента в массиве перебором всех элементов.
4. O(n log n) — Линейно-логарифмическое время
- Время выполнения растёт чуть быстрее линейного, включает логарифмическое число операций для каждого элемента.
- Пример: сортировка массива быстрой сортировкой или сортировкой слиянием.
5. O(n²) — Квадратичное время
- Время выполнения пропорционально квадрату размера входных данных.
- Пример: сортировка пузырьком, где сравниваются и при необходимости меняются местами все пары элементов.
6. O(2ⁿ) — Экспоненциальное время
- Время выполнения удваивается с каждым новым элементом во входных данных. Такие алгоритмы становятся непрактичными для больших входных размеров.
- Пример: генерация всех подмножеств множества.
7. O(n!) — Факториальное время
- Время выполнения пропорционально факториалу размера входных данных.
- Пример: генерация всех перестановок множества.
♻️ Сделай репост, чтобы помочь другим.
👉 @Bookflow
👍8❤4
📌10 обязательных алгоритмов для работы с графами
1. Поиск в глубину (DFS)
2. Поиск в ширину (BFS)
3. Топологическая сортировка
4. Алгоритм объединения-поиска (Union Find)
5. Обнаружение циклов
6. Поиск связных компонентов
7. Проверка на двудольность графа
8. Заливка области (Flood Fill)
9. Минимальное остовное дерево
10. Кратчайший путь
♻️ Поделись, чтобы помочь другим подготовиться!
👉 @Bookflow
1. Поиск в глубину (DFS)
2. Поиск в ширину (BFS)
3. Топологическая сортировка
4. Алгоритм объединения-поиска (Union Find)
5. Обнаружение циклов
6. Поиск связных компонентов
7. Проверка на двудольность графа
8. Заливка области (Flood Fill)
9. Минимальное остовное дерево
10. Кратчайший путь
♻️ Поделись, чтобы помочь другим подготовиться!
👉 @Bookflow
👍4
Давай программировать стек TCP/IP. Part 1: Ethernet & ARP
Написание собственного стека TCP/IP может показаться сложной задачей. Действительно, за более чем тридцать лет существования TCP накопилось множество спецификаций. Однако основная спецификация на удивление компактна — важные части включают разбор заголовков TCP, автомат конечных состояний, контроль перегрузок и вычисление времени ожидания повторной передачи.
Наиболее распространенные протоколы второго и третьего уровней — Ethernet и IP, соответственно, — в сравнении с TCP гораздо проще. В этой серии статей мы реализуем минимальный стек TCP/IP в пространстве пользователя для Linux.
Цель этих публикаций и создаваемого ПО исключительно образовательная — углубленное изучение сетевого и системного программирования.
TUN/TAP устройства
Чтобы перехватывать сетевой трафик низкого уровня из ядра Linux, мы будем использовать TAP-устройство Linux. Если кратко, TUN/TAP устройства часто применяются приложениями в пространстве пользователя для работы с трафиком на уровне L3 и L2 соответственно. Популярным примером является туннелирование, когда пакет инкапсулируется внутри полезной нагрузки другого пакета.
Преимущество TUN/TAP устройств в том, что их легко настроить в программе в пространстве пользователя, и они уже используются во множестве программ, таких как OpenVPN.
Поскольку мы хотим строить стек сетевого взаимодействия, начиная со второго уровня, нам потребуется TAP-устройство. Мы создаем его следующим образом:
https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/
#cpp
👉 @Bookflow
Написание собственного стека TCP/IP может показаться сложной задачей. Действительно, за более чем тридцать лет существования TCP накопилось множество спецификаций. Однако основная спецификация на удивление компактна — важные части включают разбор заголовков TCP, автомат конечных состояний, контроль перегрузок и вычисление времени ожидания повторной передачи.
Наиболее распространенные протоколы второго и третьего уровней — Ethernet и IP, соответственно, — в сравнении с TCP гораздо проще. В этой серии статей мы реализуем минимальный стек TCP/IP в пространстве пользователя для Linux.
Цель этих публикаций и создаваемого ПО исключительно образовательная — углубленное изучение сетевого и системного программирования.
TUN/TAP устройства
Чтобы перехватывать сетевой трафик низкого уровня из ядра Linux, мы будем использовать TAP-устройство Linux. Если кратко, TUN/TAP устройства часто применяются приложениями в пространстве пользователя для работы с трафиком на уровне L3 и L2 соответственно. Популярным примером является туннелирование, когда пакет инкапсулируется внутри полезной нагрузки другого пакета.
Преимущество TUN/TAP устройств в том, что их легко настроить в программе в пространстве пользователя, и они уже используются во множестве программ, таких как OpenVPN.
Поскольку мы хотим строить стек сетевого взаимодействия, начиная со второго уровня, нам потребуется TAP-устройство. Мы создаем его следующим образом:
/*
* Taken from Kernel Documentation/networking/tuntap.txt
*/
int tun_alloc(char *dev)
{
struct ifreq ifr;
int fd, err;
if( (fd = open("/dev/net/tap", O_RDWR)) < 0 ) {
print_error("Cannot open TUN/TAP dev");
exit(1);
}
CLEAR(ifr);
/* Flags: IFF_TUN - TUN device (no Ethernet headers)
* IFF_TAP - TAP device
*
* IFF_NO_PI - Do not provide packet information
*/
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
if( *dev ) {
strncpy(ifr.ifr_name, dev, IFNAMSIZ);
}
if( (err = ioctl(fd, TUNSETIFF, (void *) &ifr)) < 0 ){
print_error("ERR: Could not ioctl tun: %s\n", strerror(errno));
close(fd);
return err;
}
strcpy(dev, ifr.ifr_name);
return fd;
}
https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/
#cpp
👉 @Bookflow
👍4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Carfinger
Игра в жанре автогонок с управлением жестами рук, где вы можете управлять игрой всего лишь несколькими пальцами в воздухе.
- Установите необходимые libarary .Mediapipe .opencv
- Запустите на python 3.10 запустите любую игру в жанре автогонок.
- Запустите редактор python от имени администратора запустите файл game_control.py
https://github.com/ayaankhan28/Carfinger
👉 @Bookflow
Игра в жанре автогонок с управлением жестами рук, где вы можете управлять игрой всего лишь несколькими пальцами в воздухе.
- Установите необходимые libarary .Mediapipe .opencv
- Запустите на python 3.10 запустите любую игру в жанре автогонок.
- Запустите редактор python от имени администратора запустите файл game_control.py
https://github.com/ayaankhan28/Carfinger
👉 @Bookflow
👍5👀1
⚙️ Микросервисы начинают тормозить под нагрузкой?
💡 Узнайте, как масштабировать и оптимизировать систему с помощью CQRS и Event Sourcing на .NET Aspire.
На открытом вебинаре «Оптимизация микросервисов с CQRS и Event Sourcing на .NET Aspire» 19 августа в 20:00 МСК разберем:
◽️ Ограничения классических микросервисов при высокой нагрузке.
◽️ Принципы разделения команд и запросов (CQRS) и хранения истории через Event Sourcing.
◽️ Практическую реализацию: сервис заказов с «команда-обработчик» и хранением событий в MongoDB.
◽️ Конфигурацию проекций для чтения данных.
❗️ Вы освоите оркестрацию через .NET Aspire (API Gateway, Order Service, база событий), внедрите логирование и трейсинг через OpenTelemetry, а также протестируете создание заказа, обновление статуса и визуализацию потока событий.
➡️ Посетите открытый урок и получите скидку на большое обучение «C# ASP.NET Core разработчик»: https://vk.cc/cOAUR7
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
💡 Узнайте, как масштабировать и оптимизировать систему с помощью CQRS и Event Sourcing на .NET Aspire.
На открытом вебинаре «Оптимизация микросервисов с CQRS и Event Sourcing на .NET Aspire» 19 августа в 20:00 МСК разберем:
◽️ Ограничения классических микросервисов при высокой нагрузке.
◽️ Принципы разделения команд и запросов (CQRS) и хранения истории через Event Sourcing.
◽️ Практическую реализацию: сервис заказов с «команда-обработчик» и хранением событий в MongoDB.
◽️ Конфигурацию проекций для чтения данных.
❗️ Вы освоите оркестрацию через .NET Aspire (API Gateway, Order Service, база событий), внедрите логирование и трейсинг через OpenTelemetry, а также протестируете создание заказа, обновление статуса и визуализацию потока событий.
➡️ Посетите открытый урок и получите скидку на большое обучение «C# ASP.NET Core разработчик»: https://vk.cc/cOAUR7
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Media is too big
VIEW IN TELEGRAM
Они думали, что ад остался на Марсе…
Они ошибались.
DOOM возвращается — теперь в виде лёгкого, как бензопила в руках Мародёра, и безжалостного, как ракета в лицо кибердемону, порта на Go.
Никаких платформенных цепей. Никакого CGo. Только чистая ярость и кросс-компиляция, рвущая реальность на куски.
🔸 Запускается везде, где бьётся сердце Go
🔸 Минимум балласта — только стандартная библиотека Go
🔸 Полная линейка ада: DOOM, DOOM II, Ultimate DOOM, Final DOOM
🔸 WAD — твой пропуск в бездну: приноси своих демонов
🔸 Память в бронежилете: защита от переполнений буфера (но не от зубов какодемона)
🔸 Оружие массового поражения — кросс-компиляция под любую цель
Подготовься.
Натяни броню.
И перезаряди BFG…
https://github.com/AndreRenaud/gore
👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍2
Promises Training
Проект помогает углубить фронтенд-разработчику свои знания о промисах в Javascript.
Практикуйтесь в работе с promises с помощью коллекции интерактивных задач. Этот репозиторий предоставляет платформу для оттачивания навыков, дополненную автоматизированными тестами для мгновенной обратной связи и проверки вашего прогресса.
https://github.com/henriqueinonhe/promises-training
👉 @Bookflow
Проект помогает углубить фронтенд-разработчику свои знания о промисах в Javascript.
Практикуйтесь в работе с promises с помощью коллекции интерактивных задач. Этот репозиторий предоставляет платформу для оттачивания навыков, дополненную автоматизированными тестами для мгновенной обратной связи и проверки вашего прогресса.
https://github.com/henriqueinonhe/promises-training
👉 @Bookflow
👍4
Пишем игру для NES на C
Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригинальную игру Nintendo, которая будет играть на настоящей консоли NES (или эмуляторе).
Давайте поговорим о NES.
Выпущена в Японии (Famicom) в 1983 году, в США — в 1985 году.
Процессор — Ricoh 2A03, 1.79 МГц, клон 6502 (без десятичного режима) со звуковой схемой. Чип 6502 был очень популярен в то время и использовался, например, в Apple II и Atari 2600.
https://nesdoug.com/
👉 @Bookflow
Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригинальную игру Nintendo, которая будет играть на настоящей консоли NES (или эмуляторе).
Давайте поговорим о NES.
Выпущена в Японии (Famicom) в 1983 году, в США — в 1985 году.
Процессор — Ricoh 2A03, 1.79 МГц, клон 6502 (без десятичного режима) со звуковой схемой. Чип 6502 был очень популярен в то время и использовался, например, в Apple II и Atari 2600.
https://nesdoug.com/
👉 @Bookflow
👍8
В 2002 году мир математики стал свидетелем исторического момента, когда российский математик Григорий Перельман представил первую из трех новаторских работ, представивших доказательство неуловимой гипотезы Пуанкаре. Эта гипотеза ставила в тупик математиков более столетия, что сделало ее одной из самых сложных нерешенных проблем в этой области.
Работа Перельмана была поистине революционной. Он успешно сориентировался в запутанном лабиринте топологии и в конечном итоге предоставил строгое и элегантное доказательство своей гипотезы. Его достижение потрясло математическое сообщество и сразу же привлекло внимание коллег и экспертов со всего мира.
В знак признания своих исключительных достижений Григорий Перельман был награжден престижной медалью Филдса в 2006 году, что считается высшей наградой в математике. Однако реакция Перельмана на эту похвалу была столь же нетрадиционной, как и его математическое путешествие. Совершив беспрецедентный шаг, он отказался от медали Филдса, избегая всеобщего внимания и традиционных атрибутов успеха. Его затворнический и скромный характер стал очевиден миру.
Но отказ Перельмана принять признание на этом не ограничился. Математический институт Клея также пообещал существенное финансовое вознаграждение в один миллион долларов за доказательство гипотезы Пуанкаре. Поступок, который еще больше сбил с толку многих, Перельман отказался и от этой значительной суммы. Его цитировали: «Меня не интересуют деньги или слава; я не хочу, чтобы меня выставляли напоказ, как животное в зоопарке».
Действия Перельмана оставили в мире больше вопросов, чем ответов. Его отказ как от медали Филдса, так и от премии в миллион долларов пролил свет на его глубоко укоренившиеся ценности и приоритеты. Это выдвинуло на первый план математика, движимого не похвалами или богатством, а непоколебимой преданностью делу чистой математики и поиску истины.
Вклад Григория Перельмана в математику и его загадочная личность оставили неизгладимый след в этой области. Его решение отказаться от признания и богатства в пользу интеллектуальной честности служит свидетельством чистоты его математических занятий. В анналах математики он остается уникальной фигурой, блестящим умом, который разрешил одну из величайших математических загадок нашего времени и решил сделать это на своих собственных условиях.
👉 @Bookflow
Работа Перельмана была поистине революционной. Он успешно сориентировался в запутанном лабиринте топологии и в конечном итоге предоставил строгое и элегантное доказательство своей гипотезы. Его достижение потрясло математическое сообщество и сразу же привлекло внимание коллег и экспертов со всего мира.
В знак признания своих исключительных достижений Григорий Перельман был награжден престижной медалью Филдса в 2006 году, что считается высшей наградой в математике. Однако реакция Перельмана на эту похвалу была столь же нетрадиционной, как и его математическое путешествие. Совершив беспрецедентный шаг, он отказался от медали Филдса, избегая всеобщего внимания и традиционных атрибутов успеха. Его затворнический и скромный характер стал очевиден миру.
Но отказ Перельмана принять признание на этом не ограничился. Математический институт Клея также пообещал существенное финансовое вознаграждение в один миллион долларов за доказательство гипотезы Пуанкаре. Поступок, который еще больше сбил с толку многих, Перельман отказался и от этой значительной суммы. Его цитировали: «Меня не интересуют деньги или слава; я не хочу, чтобы меня выставляли напоказ, как животное в зоопарке».
Действия Перельмана оставили в мире больше вопросов, чем ответов. Его отказ как от медали Филдса, так и от премии в миллион долларов пролил свет на его глубоко укоренившиеся ценности и приоритеты. Это выдвинуло на первый план математика, движимого не похвалами или богатством, а непоколебимой преданностью делу чистой математики и поиску истины.
Вклад Григория Перельмана в математику и его загадочная личность оставили неизгладимый след в этой области. Его решение отказаться от признания и богатства в пользу интеллектуальной честности служит свидетельством чистоты его математических занятий. В анналах математики он остается уникальной фигурой, блестящим умом, который разрешил одну из величайших математических загадок нашего времени и решил сделать это на своих собственных условиях.
👉 @Bookflow
❤24👍6🫡2👎1