Расчет приоритета комбинаций в техасском холдеме (покере) на PHP

Автор: admin от 13-08-2017, 22:25, посмотрело: 57

В этой статье я расскажу про мой способ расчета приоритета комбинаций в техасском холдеме (покере с 2 карманными картами и 5 общими). Условно разделю статью на 6 частей: Создание массива карт, Расчет Стрита, Расчет Флеша и Стрит Флеша, Расчет Парных комбинаций, Окончательный расчет, Вывод на экран. Код пишу в процедурном стиле.

Цель: получить на выходе программы удобочитаемый результат, доступный для дебаггинга и отладки еще на стадии написания кода. Для достижения поставленной цели делаю разницу между комбинациями в 1e+2 (100) раз.

Примерный вид того, что должно получиться в итоге, где 2 последние карты считаю карманными, а первые 5 общими:

Расчет приоритета комбинаций в техасском холдеме (покере) на PHP

Категория: Программирование

 

Итак, вы решили развернуть OpenStack

Автор: admin от 13-08-2017, 21:00, посмотрело: 102

Итак, вы решили развернуть OpenStack
Вы наверняка слышали об OpenStack. Блин, да о нем говорят на каждом более-менее связанном мероприятии. Все кому не лень пропагандируют OpenStack. Модно, молодежно, все уже есть, Open Source, вливайся давай. И вот наслушавшись тонны маркетингового булшита, вы решаетесь: Будем ставить OpenStack!



Я не проводил специальных изысканий на этот счет, но отрицательных отзывов о нем вроде бы не так много, по крайней мере на русском. На первый взгляд все выглядит просто фантастически. Что ж, извольте представить мой личный пост ненависти к OpenStack.
->

Категория: Админитстрирование » Системное администрирование

 

Безопасный OpenVPN на VPS за несколько минут

Автор: admin от 13-08-2017, 16:30, посмотрело: 129

Введение


В связи с последними событиями и возможной блокировкой публичных VPN сервисов созрела идея облегчить жизнь людям и сделать скрипт для быстрой установки OpenVPN со всеми настройками и легким выпуском сертификатов.

Скрипт позволяет одной командой создать работающий сервер и создать файлы конфигурации для клиентов в unified формате (то есть с сертификатами, включёнными в файл конфигурации). Кстати, эти файлы подходят для мобильных устройств.

Скрипт создавался для машин с CentOS 7.x или Ubuntu Server 17.x, использование на Ubuntu 16.x. возможно, но там OpenVPN 2.3.x в репозиториях. При необходимости можно добавить другие дистрибутивы, но обычно при покупке VPS можно выбрать систему и это не так важно.

Категория: Системное администрирование, Информационная безопасность, Сетевые технологии

 

Security Week 32: В репозиторий npm проник шпион, Disney запретят следить за детьми, Juniper запатчил годовалый баг

Автор: admin от 13-08-2017, 15:05, посмотрело: 51

Security Week 32: В репозиторий npm проник шпион, Disney запретят следить за детьми, Juniper запатчил годовалый багJS-разработчики порой творят друг с другом страшные вещи. Нет бы мирно кодить и радоваться каждому коммиту! Но в ряды травоядных мирных программистов затесался злодей, подкинувший в репозиторий npm пачку вредоносных пакетов. npm – стандартный менеджер пакетов в Node.js, и обладает облачным репозиторием, полным всяких полезнейших пакетов.



Негодяй, скрывающий свое бесчестное имя под ником HuskTask рассудил так, что людям свойственно ошибаться, и нет ничего естественнее, чем, например, пропустить дефис в cross-env. И залил в репозиторий свой пакет с именем crossenv. И еще несколько, именованных по тому же принципу. В результате какое-то количество пользователей загрузили в свои проекты пакеты от HuskTask, понятия не имея, что там за код внутри.



Один из пользователей таки заглянул в crossenv и побежал в твиттер бить тревогу. Как оказалось, этот пакет содержит скрипт, который добывает из переменных окружения важную информацию (например, учетные данные от npm), кодирует ее в строку, и отправляет POST-запросом на сервер npm.hacktask.net.
->

Категория: Информационная безопасность

 

Использование ImGui с SFML для создания инструментов для разработки игр

Автор: admin от 13-08-2017, 11:50, посмотрело: 73

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

Данная статья — вольный перевод моей статьи на русский с некоторыми небольшими изменениями и улучшениями. Хотелось бы показать как просто и полезно использовать ImGui с SFML. Приступим.



Использование ImGui с SFML для создания инструментов для разработки игр

Введение



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



Вот какие инструменты я создал с помощью ImGui для своей игры:



Использование ImGui с SFML для создания инструментов для разработки игр
Редактор уровней

->

Категория: Программирование, Веб-разработка, Game Development

 

Пассивное устройство, маршрутизация и Штрих-Принт С

Автор: admin от 13-08-2017, 08:25, посмотрело: 81

Что это за чушь?



Наверняка задались Вы вопросом при прочтении заголовка. Признаюсь, меня посетили точно такие же мысли при прочтении документации от Штриха к весам Штрих-Принт С.



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

Категория: Админитстрирование » Сетевые технологии

 

Метод оптимизации Trust-Region DOGLEG. Пример реализации на Python

Автор: admin от 13-08-2017, 08:25, посмотрело: 60

Метод оптимизации Trust-Region DOGLEG. Пример реализации на Python


Trust-region метод (TRM) является одним из самых важных численных методов оптимизации в решении проблем нелинейного программирования (nonlinear programming problems). Метод базируется на определении региона вокруг лучшего решения, в котором квадратичная модель аппроксимирует целевую функцию.



Методы линейного поиска (line search) и методы trust-region генерируют шаги с помощью аппроксимации целевой функции квадратичной моделью, но использую они эту модель по-разному. Линейный поиск использует её для получения направления поиска и дальнейшего нахождения оптимального шага вдоль направления. Trust-region метод определяет область (регион) вокруг текущей итерации, в котором модель достаточно аппроксимирует целевую функцию. В целях повышения эффективности направление и длина шага выбираются одновременно.



Trust-region методы надежны и устойчивы, могут быть применены к плохо обусловленным задачам и имеют очень хорошие свойства сходимости. Хорошая сходимость обусловлена тем, что размер области TR (обычно определяется модулем радиус-вектора) на каждой итерации зависит от улучшений сделанных на предыдущих итерациях.
->

Категория: Программирование

 

Блокировка операций как защита от вредоносных программ

Автор: admin от 13-08-2017, 08:25, посмотрело: 72

Блокировка операций как защита от вредоносных программ


Не так давно в сети появился доклад инженера Google Даррена Билби «Защита Гибсона в эпоху Просвещения», посвящённый фейлу антивирусов и другим бесполезным методам информационной безопасности.

В двух словах, речь в нем идет о том, что взломанные почтовые ящики стали ключевой темой предвыборных президентских дебатов, что трояны-вымогатели шифруют файлы на корпоративных компьютерах, а «тостеры контролируют большие участки интернета» (возможно, под «тостерами» Даррен имел в виду видеокамеры наблюдения, которыми заддосили одного из крупнейших DNS-провайдеров).

И что противопоставляет этим методам кибератак индустрия компьютерной безопасностью? Да практически ничего нового, констатирует Билби, всё те же убогие и неэффективные старые инструменты. По его мнению, продавцы таких решений просто «впаривают магию», вешая лапшу на уши наивных покупателей.

Что, по сути, нам предлагает классический антивирус? В подавляющем большинстве сканер файлов для поиска вируса по сигнатуре и эвристический анализатор для файлов, против которых бессилен сканер (например, сжатых или зашифрованных). У каждого из этих методов свои достоинства и недостатки, но в общем Билби прав, на протяжении многих лет используется устаревшая технология, а с другой стороны и предложить что-то принципиально новое тоже достаточно сложно. Но можно. К примеру, за последнее десятилетие получили развитие «песочницы», но особого распространения по определенным причинам не снискали, возможно из-за сложностей в обслуживании, ведь массовое решение должно быть простым как сковородка и надежным как лом. Все гениальное просто, хоть и не все простое – гениально.

Категория: Информационная безопасность

 

Переосмысление PID 1. Часть 2

Автор: admin от 13-08-2017, 02:15, посмотрело: 58

В продолжение первой части…



Распараллеливание служб сокетов



Этот вид синхронизации при загрузке приводит к опоследовательности (последовательный запуск служб) существенной части процесса загрузки. Не было бы круто если бы мы могли избавиться от цены синхронизации и опоследовательности? Что ж, мы можем на самом деле избавиться. Для этого, нам необходимо понять, что на самом деле службы (демоны) требуют друг от друга, и почему их запуск откладывается. Для традиционных демонов (служб) Unix, есть только один ответ на этот вопрос: они ждут до тех пор, пока демон предоставляющий свои службы не будет готов принимать соединения. Обычно это AF_UNIX сокет в файловой системе, но это может таже быть AF_INET сокет. Для примера: клиенты D-Bus ждут /var/run/dbus/system_bus_socket, чтобы сконнектиться к нему, клиенты syslog ждут /dev/log, клиенты CUPS ждут /var/run/cups/cups.sock и NFS точки монтирования ждут /var/run/rpcbind.sock и порт IP портмаппера и т.д. А теперь задумайтесь об этом, на самом деле есть только одна вещь чего ждут остальные.
->

Категория: Системное администрирование, Linux