Очень бесит в поисковой выдаче qaru.site, который по факту является автоматически переведенными ответами со stackoverflow.com.
Благо добрые люди написали блокировщики поисковой выдачи. Сначала попробовал блокировщик от гугла, но оказалось что он уже мертв). Но нашелся более удачный вариат Google Hit Hider, который работает, кстати, не только для гугл поиска.
Советую скачать Violentmonkey (потому что он опен сорсный) и установить непосредственно скрипт для блокировки.
И все работает отлично!
Благо добрые люди написали блокировщики поисковой выдачи. Сначала попробовал блокировщик от гугла, но оказалось что он уже мертв). Но нашелся более удачный вариат Google Hit Hider, который работает, кстати, не только для гугл поиска.
Советую скачать Violentmonkey (потому что он опен сорсный) и установить непосредственно скрипт для блокировки.
И все работает отлично!
Duff's device - пример извращения, которое так любят создавать программисты.
Это раскрутка цикла вкупе с необычной возможность языка С - сквозная конструкция do{}while.
И именно это необычное свойство позволяет создать облегченный потоки на голом языке C.
Можно почитать статью Операционная система из говна и палок, там описан подход с указанием всех источников.
register n = (count + 7) / 8; /* count > 0 assumed */
switch (count % 😍
{
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
Это раскрутка цикла вкупе с необычной возможность языка С - сквозная конструкция do{}while.
И именно это необычное свойство позволяет создать облегченный потоки на голом языке C.
Можно почитать статью Операционная система из говна и палок, там описан подход с указанием всех источников.
Wikipedia
Устройство Даффа
оптимизированная реализация последовательного копирования
Есть кучу реально крутых проектов, которые меняют мир к лучшему.
А есть fartscroll.js 🙂
А есть fartscroll.js 🙂
Кнут за найденные в своей книге "Искусство программирования" опечатки платит по одному шестнадцатиричному доллару.
Советую почитать статью, как чувак заработал целых 0x$3 доллара.
Советую почитать статью, как чувак заработал целых 0x$3 доллара.
Something Something Programming
I Got a Knuth Check for 0x$3.00
Donald Knuth is a computer scientist who is so committed to the correctness of his books that he offers one US hexadecimal dollar ($2.56, 0x$1.00) for any “bug” found in his books, where a bug is anything that is “technically, historically, typographically…
Forwarded from DevBrain
Для тех, кто частенько обновляет версии Python. Будьте бдительны, планируется зачистка стандартной библиотеки в 3.9 и 3.10: http://www.opennet.ru/opennews/art.shtml?num=50726
www.opennet.ru
Намечена большая чистка стандартной библиотеки Python
Разработчики проекта Python опубликовали предложение (PEP 594) по проведению значительной чистки стандартной библиотеки. К выносу из стандартной библиотеки Python предлагаются как явно устаревшие и узкоспециализированные возможности, так и компоненты, в которых…
Даже если ваш аккаунт и пароль хранится в виде хеша и никогда не передается серверу явно, при угоне базы можно восстановить по хешу ваши креды. Тут можно скачать словарь таких хешей:)
https://crackstation.net/crackstation-wordlist-password-cracking-dictionary.htm
Поэтому:
1) Пользователи - не используейте одни и те же пароли
2) Разработчики - дополнительно солите хеш (можно даже несколько раз), когда кладете в базу.
https://crackstation.net/crackstation-wordlist-password-cracking-dictionary.htm
Поэтому:
1) Пользователи - не используейте одни и те же пароли
2) Разработчики - дополнительно солите хеш (можно даже несколько раз), когда кладете в базу.
crackstation.net
CrackStation's Password Cracking Dictionary (Pay what you want!)
Download CrackStation's password cracking wordlist.
Livelock - аналог deadlock, только система не блокируется, а занимается бесполезной работатой и ее состояние постоянно меняется, но тем не менее она зациклилась.
https://deadlockempire.github.io/
Клевый онлайн тренажер для понимания сути проблем синхронизации потоков.
Зарядка для ума и прокачка твоего технического скила!
Клевый онлайн тренажер для понимания сути проблем синхронизации потоков.
Зарядка для ума и прокачка твоего технического скила!
deadlockempire.github.io
The Deadlock Empire
Slay dragons, learn
concurrency! Play the cunning Scheduler, exploit flawed
programs and defeat the armies of the Parallel Wizard.
concurrency! Play the cunning Scheduler, exploit flawed
programs and defeat the armies of the Parallel Wizard.
Еще одна интересная проблема связанная с синхронизацией потоков.
Есть два потока - с высоким приоритетом 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