[Из песочницы] Формула фана или почему мы играем в игры

Предупреждение: возможно уменьшение удовольствия от игр и фильмов, так как появится осознание и понимание как они устроены.

Как-то захотелось мне сделать игру и у меня возникли вопросы.
Почему мы играем? Из-за каких элементов игры мы получаем фан?

Далее, под словом «фан», имеется ввиду положительные эмоции.

Поиск в интернете точного ответа не дал. Кто-то пишет, что игрокам нравится делать то, что в реальном мире они не могут. Другие пишут, что важен сюжет. По таким описаниям хорошую игру не сделать.

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

Я решил провести мысленные эксперименты отбрасывая все лишнее из игр, чтобы определить минимальный набор элементов, при которых фан ещё есть, но если убрать хотя бы один элемент игры, то фан пропадает или уже не такой сильный.

Проделав этот эксперимент с играми в которые я играл, получился такой набор базовых элементов:
Читать дальше →
[Из песочницы] Формула фана или почему мы играем в игры
Source: habrahabr

[Перевод] Курс MIT «Безопасность компьютерных систем». Лекция 21: «Отслеживание данных», часть 1

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год

Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
Лекция 19: «Анонимные сети» Часть 1 / Часть 2 / Часть 3
Лекция 20: «Безопасность мобильных телефонов» Часть 1 / Часть 2 / Часть 3
Лекция 21: «Отслеживание данных» Часть 1 / Часть 2 / Часть 3 Читать дальше →
[Перевод] Курс MIT «Безопасность компьютерных систем». Лекция 21: «Отслеживание данных», часть 1
Source: habrahabr

Наши с вами персональные данные по-прежнему нагло продаются

Многие из вас читали мою сентябрьскую статью на хабре Наши персональные данные ничего не стоят, которая была посвящена бесконтрольной торговле всевозможными данными граждан России и стран бывшего СССР. Тема очень злободневна и я сильно рад, что написанный мною текст заставил задуматься тысячи людей, не только хабравчан, но и в общем-то далеких от IT читателей.

Все это очень познавательно и интересно, но только когда существует лишь на бумаге и в виде историй из интернета. Совсем иные впечатления, когда что-то начинает касаться лично тебя. По иронии судьбы, такая история произошла со мной в прошлом месяце.

Для начала, немного предыстории. Пять с половиной лет назад я переехал в Германию и сейчас сдаю в Москве квартиру в аренду. Жильцы запланировали съезжать, поэтому наступило время делать небольшой ремонт перед приглашением новых. Однако уже несколько лет меня преследовало желание сделать не просто ремонт, а качественный ремонт с небольшой перепланировкой, улучшив тем самым условия жизни моим будущим жильцам, которые получат жилье премиум-класса.

Кто бы мог подумать, что элементарное действие составления документов перепланировки приведет к встрече с адовой коррупцией и наглейшему пренебрежению законами о персональных данных?
Читать дальше →
Наши с вами персональные данные по-прежнему нагло продаются
Source: habrahabr

Делаем Modern Build

Привет, Хабр!

Каждый современный браузер сейчас позволяет работать с ES6 Modules.

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

Под катом рассказ о том, как я смог уменьшить размер приложения на 11% без ущерба для старых браузеров и своих нервов.

Читать дальше →
Делаем Modern Build
Source: habrahabr

[Перевод] Visual Studio 2019

Совсем недавно, на Microsoft Connect(); 2018, мы объявили о выпуске Visual Studio 2019 Preview 1. Это первая Preview-версия следующей Visual Studio. В ней мы сосредоточились на нескольких ключевых областях, таких как ускорение запуска и работы с проектами, хранящимися в репозиториях git, улучшение IntelliSense с помощью искусственного интеллекта (AI) (Visual Studio IntelliCode), упрощение совместной работы с коллегами путем интеграции Live Share и многое другое. Подробнее под катом!

Читать дальше →
[Перевод] Visual Studio 2019
Source: habrahabr

Zabbix Review: как организовать code review для конфигурации мониторинга

Code review — инженерная практика в терминах гибкой методологии разработки. Это анализ (инспекция) кода с целью выявления ошибок, недочетов, расхождения в стиле написания кода и понимания, решает ли код поставленную задачу.

Сегодня расскажу о том, как мы организовали процесс review для конфигурации мониторинга в Zabbix. Статья будет полезна тем, кто работает с системой мониторинга Zabbix, как в большой команде, так в одиночку, даже если у вас «десять хостов, что там ревьюить».

Читать дальше →
Zabbix Review: как организовать code review для конфигурации мониторинга
Source: habrahabr

[Перевод] Профилирование кода с LLVM

Проклятие недетерминизма


Моя первая попытка написать проход LLVM — люблю эти сегфолты

Недавно я столкнулся с интересной задачей — мне понадобился детерминированный и кросплатформенный способ определения времени выполнения кода С++. Под словом «детерминированный» я подразумеваю, что один и тот же код будет выполняться за одно и то же количество единиц времени. Под кроссплатформенностью я понимаю, что один и тот же код под Windows и под Ubuntu будет выполняться за одно и то же количество единиц времени.

Естественно, измерение времени на CPU не удовлетворяет этим условиям. Машинный код меняется в зависимости от архитектуры и операционной системы, и один и тот же код займёт различное количество времени при выполнении. Даже на одной и той же машине, такие факторы, как промахи кэша, будут играть большую роль — достаточную для того, чтобы исказить результаты измерения времени выполнения одного и того же кода. Мне нужно было что-либо более умное…
Читать дальше →
[Перевод] Профилирование кода с LLVM
Source: habrahabr

LDraw + Unity. Как я Lego генерировал

Всех с наступающим! Меня зовут Гриша, и я основатель CGDevs. Уже не за горами праздники, кто-то уже нарядил ёлку, поел мандаринов и во всю заряжается новогодним настроением. Но сегодня речь пойдёт не об этом. Сегодня мы поговорим про замечательный формат под названием LDraw и про плагин для Unity, который я реализовал и выложил в OpenSource. Ссылка на проект и исходники к статье, как всегда, прилагаются. Если вы так же, как и я любите лего – добро пожаловать под кат.


Читать дальше →
LDraw + Unity. Как я Lego генерировал
Source: habrahabr

[Перевод] Знакомство с тестированием в Python. Ч.1

Всем доброго!

От нашего стола к вашему… То есть от нашего курса «Разработчик Python», несмотря на стремительно приближающий Новый год, мы подготовили вам интересный перевод о различных методах тестирования в Python.

Это руководство для тех, кто уже написал классное приложение на Python, но еще не писал для
них тесты.

Тестирование в Python — обширная тема с кучей тонкостей, но не обязательно все усложнять. В несколько простых шагов можно создать простые тесты для приложения, постепенно наращивая сложность на их основе.

В этом руководстве вы узнаете, как создать базовый тест, выполнить его и найти все баги, до того как это сделают пользователи! Вы узнаете о доступных инструментах для написания и выполнения тестов, проверите производительность приложения и даже посмотрите на проблемы безопасности.

Читать дальше →
[Перевод] Знакомство с тестированием в Python. Ч.1
Source: habrahabr

Злоумышленники научились обходить двухфакторную аутентификацию Yahoo Mail и Gmail

На днях специалисты по информационной безопасности из компании Cerfta Lab опубликовали результаты изучения ряда взломов аккаунтов пользователей Yahoo Mail и Gmail. Как оказалось, у технологии двухфакторной аутентификации, используемой этими сервисами, есть ряд недостатков, которые и позволяют действовать злоумышленникам.

Авторы расследования считают, что взломы осуществлялись по заказу иранского правительства. Целью всей кампании была информация взломанных аккаунтов. Атака осуществлялась при помощи e-mail со скрытым изображением и скриптом.
Читать дальше →
Злоумышленники научились обходить двухфакторную аутентификацию Yahoo Mail и Gmail
Source: habrahabr