Еще одна интересная проблема связанная с синхронизацией потоков.
Есть два потока - с высоким приоритетом High и низким приоритетом Low. Им обоим нужен экслюзивный доступ к некому распределенному ресурсу Res. Если поток Low захватит ресурс Res раньше, чем High, то возникает ситуация называемая Priority Inversion - т.е. более приоритая задача ожидает менее приоритетную.
Это проблема не приводит к бескончным циклам и зависанием, но может привести к значительному снижению производительности и к ложным срабатываниям мониторинговых систем.
Есть два потока - с высоким приоритетом High и низким приоритетом Low. Им обоим нужен экслюзивный доступ к некому распределенному ресурсу Res. Если поток Low захватит ресурс Res раньше, чем High, то возникает ситуация называемая Priority Inversion - т.е. более приоритая задача ожидает менее приоритетную.
Это проблема не приводит к бескончным циклам и зависанием, но может привести к значительному снижению производительности и к ложным срабатываниям мониторинговых систем.
Wikipedia
Priority inversion
undesirable computing scheduling scenario
Forwarded from Книги для программистов
Maykl_A_Di_Spetsio_-_Prevoskhodnye_Golovolomki.pdf
26 MB
Превосходные головоломки, развивающие критическое мышление
Майкл А. Ди Специо.
В этой книге 83 задачи известного американского мастера головоломок, развивающие способность логически мыслить, правильно воспринимать и анализировать реальные факты и события, уверенно ориентироваться в огромном количестве информации. Необычные ситуации и юмор делают решение этих задач особенно интересным.
#book
Майкл А. Ди Специо.
В этой книге 83 задачи известного американского мастера головоломок, развивающие способность логически мыслить, правильно воспринимать и анализировать реальные факты и события, уверенно ориентироваться в огромном количестве информации. Необычные ситуации и юмор делают решение этих задач особенно интересным.
#book
Forwarded from Книги для программистов
[Gleizer_D.,_Madhav_S.]_Mnogopolzovatelskie_igrue.pdf
6.9 MB
Многопользовательские игры. Разработка сетевых приложений
Глейзер Д., Мадхав С.
Сетевые многопользовательские игры - это многомиллиардный бизнес, привлекающий десятки миллионов игроков. Эта книга на реальных примерах рассказывает об особенностях разработки таких игр и основах построения надежной многопользовательской архитектуры.
Вы узнаете об основах сетевого программирования с точки зрения разработчиков игр, управлении игрой через передачу данных, сетевых обновлениях, обеспечении надежной работы и научитесь создавать безопасный и масштабируемый код. Не останутся без внимания игровые сервисы и облачные технологии.
Эта книга пригодится всем кто хочет узнать, как создаются сетевые игры.
#book #gamedev
Глейзер Д., Мадхав С.
Сетевые многопользовательские игры - это многомиллиардный бизнес, привлекающий десятки миллионов игроков. Эта книга на реальных примерах рассказывает об особенностях разработки таких игр и основах построения надежной многопользовательской архитектуры.
Вы узнаете об основах сетевого программирования с точки зрения разработчиков игр, управлении игрой через передачу данных, сетевых обновлениях, обеспечении надежной работы и научитесь создавать безопасный и масштабируемый код. Не останутся без внимания игровые сервисы и облачные технологии.
Эта книга пригодится всем кто хочет узнать, как создаются сетевые игры.
#book #gamedev
Вести свой блог, конечно, тяжело. На это нужно много времени.
Но я все равно постараюсь выкладывать интересные вещи, которые будут полезны. Сегодня это понятие Bus Factor - мера сосредоточения информации среди отдельных членов проекта; фактор означает количество участников проекта, после потери которых (в оригинале — «попадания» которых под автобус или грузовик, варианты: увольнения, заболевания, рождения ребёнка, несчастного случая и других форс-мажорных обстоятельств) проект не сможет быть завершён оставшимися участниками.
Но я все равно постараюсь выкладывать интересные вещи, которые будут полезны. Сегодня это понятие Bus Factor - мера сосредоточения информации среди отдельных членов проекта; фактор означает количество участников проекта, после потери которых (в оригинале — «попадания» которых под автобус или грузовик, варианты: увольнения, заболевания, рождения ребёнка, несчастного случая и других форс-мажорных обстоятельств) проект не сможет быть завершён оставшимися участниками.
Wikipedia
Bus factor
measurement of the risk of losing key experts on a team
https://stackoverflow.com/questions/8911440/c-sharp-float-expression-strange-behavior-when-casting-the-result-float-to-int
Сегодня в очередной раз столкнулся с проблемой в математике с плавающей точкой, но в этот раз в C#.
По приведенной ссылке все, в принципе, хорошо описывается, но удивлению моему не было приделу, так как поведение отличное от C++.
А именно:
Почему так?
Тип выражения time/bonus - это float. Так нам говорит стандарт C#. Да и (time/bonus).GetType() пишет System.Single.
Приведение к инту отбрасывает значимую часть. Вo float значение выглядит как 500.0000002, отбрасываем - получаем 500.
НО компилятор волен (т.е. зависит от реализации, а точнее от платформы) промежуточные значения оставлять с более высокой точностью, т.е. в первом случае double. 500 в double 499.99999998 (или как-то так). Отбрасываем, получаем 499 :)
В общем, в очередной раз убеждаюсь, что нет платформонезависимых языков.
Сегодня в очередной раз столкнулся с проблемой в математике с плавающей точкой, но в этот раз в C#.
По приведенной ссылке все, в принципе, хорошо описывается, но удивлению моему не было приделу, так как поведение отличное от C++.
А именно:
int time = 550;Ожидается, что value1 и value2 должны быть равны, но нет :) value1 - 499 и value2 - 500
float bonus = 1.1f;
var value1 = (int)(time/ bonus);
var floatValue = time/ bonus;
var value2 = (int)(time/bonus);
Почему так?
Тип выражения time/bonus - это float. Так нам говорит стандарт C#. Да и (time/bonus).GetType() пишет System.Single.
Приведение к инту отбрасывает значимую часть. Вo float значение выглядит как 500.0000002, отбрасываем - получаем 500.
НО компилятор волен (т.е. зависит от реализации, а точнее от платформы) промежуточные значения оставлять с более высокой точностью, т.е. в первом случае double. 500 в double 499.99999998 (или как-то так). Отбрасываем, получаем 499 :)
В общем, в очередной раз убеждаюсь, что нет платформонезависимых языков.
Stack Overflow
C# Float expression: strange behavior when casting the result float to int
I have the following simple code :
int speed1 = (int)(6.2f * 10);
float tmp = 6.2f * 10;
int speed2 = (int)tmp;
speed1 and speed2 should have the same value, but in fact, I have :
speed1 = 61
s...
int speed1 = (int)(6.2f * 10);
float tmp = 6.2f * 10;
int speed2 = (int)tmp;
speed1 and speed2 should have the same value, but in fact, I have :
speed1 = 61
s...
https://www.facebook.com/aslanbeily/posts/2547154415327407
Очень интересный прецедент в IT-сфере. Это начало?
Очень интересный прецедент в IT-сфере. Это начало?
https://habr.com/ru/company/pvs-studio/blog/465575/
В новом стандарте появится новый оператор упорядочивания, который может избежать кучи проблем в реализации операторов сравнения. Одно из очень полезных нововведений.
В новом стандарте появится новый оператор упорядочивания, который может избежать кучи проблем в реализации операторов сравнения. Одно из очень полезных нововведений.
Хабр
Операции сравнения в C++20
Встреча в Кёльне прошла, стандарт C++20 приведён к более или менее законченному виду (по крайней мере до появления особых примечаний), и я хотел бы рассказать об...
https://zifter.github.io/programming/gamedev/2019/09/03/particle-bug.html
Статья о давно исправленном баге, но от этого не менее интересном
Статья о давно исправленном баге, но от этого не менее интересном
zifter.github.io
Как не стоит генерировать частицы
Forwarded from DevBrain
В сети появился документ с набором правил и подходов, которые практикуются в компании Google по code review: https://google.github.io/eng-practices/review/reviewer/
А вы практикуете code review в своей команде? Комментарий можно оставить к этому посту, нажав на кнопку Add a comment
А вы практикуете code review в своей команде? Комментарий можно оставить к этому посту, нажав на кнопку Add a comment
eng-practices
How to do a code review
Google’s Engineering Practices documentation
Forwarded from DevBrain
Вот и состоялся релиз python 3.8. Отличный релиз с большим набором интересных фич.
Кому любопытно узнать что там нового - почитайте мой июльский пост: https://khashtamov.com/ru/python38-overview/
Скачать релиз https://www.python.org/downloads/release/python-380/
Кому любопытно узнать что там нового - почитайте мой июльский пост: https://khashtamov.com/ru/python38-overview/
Скачать релиз https://www.python.org/downloads/release/python-380/
Khashtamov
Обзор Python 3.8
Релиз Python 3.8 намечен на октябрь 2019 года, но уже сейчас у каждого есть возможность пощупать набор новых фишек языка. Пока пишу этот пост, на официальном сайте доступна версия python 3.8b2.Итак…
https://www.levels.fyi/salary/Google/
А вот тут можно узнать о зарплатах в Google.
А вот тут можно узнать о зарплатах в Google.
http://xgu.ru/wiki/ssh-copy-id
ssh-copy-id - утилита для копирования публичных ключей на удаленные машины.
ssh-copy-id - утилита для копирования публичных ключей на удаленные машины.
https://habr.com/ru/company/jugru/blog/159689/
Интересный способ оценки продукта\компании. Чем больше баллов набрано - тем выше вероятность, что в компании работать перспективно и приятно :)
Интересный способ оценки продукта\компании. Чем больше баллов набрано - тем выше вероятность, что в компании работать перспективно и приятно :)
Хабр
Тест Джоэла как инструмент собеседуемого
Многие хабровачане наверняка знакомы с тестом Джоэла ( перевод ). Если в двух словах, Джоэл Спольски предлагает на основе выбранных им критериев оценить любому инженеру, насколько хороша его команда....
https://www.hcidata.info/inet.htm
Internet- общедоступная сеть.
Intranet - сеть, недоступная извне.
Extranet - сеть, частично доступная извне для авторизованных пользователей.
Internet- общедоступная сеть.
Intranet - сеть, недоступная извне.
Extranet - сеть, частично доступная извне для авторизованных пользователей.
www.hcidata.info
Internet, Intranet, and Extranet terms explained
Internet, Intranet, Extranet - What do these terms actually mean?