Архив за 15 июня 2016

Я знаю людей, которые искренне недоумевают по поводу того, что функциональное программирование не очень популярно. К примеру, сейчас я читаю книжку «Из смоляной ямы» (Out of the Tar Pit), в которой авторы после аргументов в пользу функционального программирования говорят:
Читать полностью »

Усложнённую технику рандомизированного отклика первой применила Google для сбора статистики Chrome. Последует ли Apple этому примеру?

Об авторе. Мэтью Грин: криптограф, профессор университета Джонса Хопкинса, автор блога о разработке криптографических систем
Опубликовано 14 июня 2016 года

Что такое дифференциальная приватность - 1Вчера на выступлении WWDC компания Apple представила ряд новых функций для безопасности и защиты конфиденциальных данных, в том числе одну функцию, которая вызвала особое внимание… и замешательство. А именно, Apple объявила об использовании новой техники под названием «дифференциальная приватность» («Differential Privacy», сокращённо: DP), чтобы улучшить защиту приватность при сборе конфиденциальных данных пользователей.

У большинства людей это вызвало немой вопрос: «что за...???», потому что мало кто раньше слышал о дифференциальной приватности, а уж тем более понимает, что это значит. К сожалению, Apple не отличается кристальной открытостью, когда дело касается секретных инргедиентов, на которых работает их платформа, так что остаётся надеяться, что в будущем она решит опубликовать больше информации. Всё, что мы знаем на данный момент, содержится в руководстве для Apple iOS 10 Preview.
Читать полностью »

Пишем сериализатор для сетевой игры на C++11 - 1Написать этот пост меня вдохновила замечательная статья в блоге Gaffer on Games «Reading and Writing Packets» и неуёмная тяга автоматизировать всё и вся (особенно написание кода на C++!).

Начнём с постановки задачи. Мы пишем сетевую игру (и сразу MMORPG, конечно же!), и независимо от архитектуры у нас возникает необходимость постоянно посылать и получать данные по сети. У нас, скорее всего, возникнет необходимость посылать несколько разных типов пакетов (действия игроков, обновления игрового мира, просто-напросто аутентификация, в конце концов!), и для каждого у нас должна быть функция чтения и функция записи. Казалось бы, не вопрос сесть и написать спокойно эти две функции и не нервничать, однако у нас сразу же возникает ряд проблем.

  • Выбор формата. Если бы мы писали простенькую игру на JavaScript, нас бы устроил JSON или любой его самописный родственник. Но мы пишем серьёзную многопользовательскую игру, требовательную к трафику; мы не можем позволить себе отправлять ~16 байт на float вместо четырёх. Значит, нам нужен «сырой» двоичный формат. Однако, двоичные данные усложняют отладку; было бы здорово, если бы мы могли менять формат в любой момент, не переписывая целиком все наши функции чтения/записи.
  • Проблемы безопасности. Первое правило сетевой игры: не доверяй данным, присланным клиентом! Функция чтения должна уметь оборваться в любой момент и вернуть false, если что-то пошло не так. При этом использовать исключения считается неважной идеей, поскольку они слишком медленные. Мамкин хакер пусть и не сломает ваш сервер, но вполне может ощутимо замедлить его беспрерывными эксепшнами. Но вручную писать код, состоящий из if'ов и return'ов, неприятно и неэстетично.
  • Повторяющийся код. Функции чтения и записи похожи, да не совсем. Необходимость изменить структуру пакета приводит к необходимости поменять две функции, что рано или поздно приведёт к тому, что вы забудете поменять одну из них или поменяете их по-разному, что приведёт к трудно отлавливаемым багам. Как справедливо замечает Gaffer on Games, it is really bloody annoying to maintain separate read and write functions.

Всех интересующихся тем, как Бендер выполнил своё обещание и при этом решил обозначенные проблемы, прошу под кат.
Читать полностью »

Днём 15 июня редакция Roem.ru спросила «Яндекс» о популярности «Дзен». Последний — это лента ссылок, разбавленная рекламными объявлениями. С 8 июня 2016 года «Дзен» встроен в Яндекс.Браузер (кроме «Браузера» под iPad, где «Читать полностью »

Сегодня научная коллаборация LIGO-Virgo объявила об обнаружении гравитационных волн от второго источника и обнародовала результаты первого научного цикла наблюдений (всего три события за четыре месяца наблюдений). Статья опубликована в Physical Review Letters.

На заре гравитационно-волновой астрономии: второе наблюдение слияния черных дыр - 1

Читать полностью »

Злоумышленники могут узнать информацию о карте через системы дистанционного обслуживания

Банк России: держатели карт национальной платежной системы «Мир» могут пострадать от действий хакеров - 1

ЦБ предупредил о том, что держатели карт национальной платежной системы «Мир» на первых порах работы этой системы могут стать жертвами злоумышленников, пишет «РБК». Консультант центра мониторинга и реагирования на компьютерные атаки в кредитно-финансовый сфере (FinCERT) Банка России Александр Чебарь на заседании комитета Торгово-промышленной палаты по финансовым рынкам и кредитным организациям сообщил, что такие карты могут быть уязвимы на начальном этапе использования через дистанционные каналы обслуживания.

По словам Александра Чебаря, уровень защиты карт национальной платежной системы соответствует уровню безопасности международных платежных систем. «Однако с точки зрения работы самих пользователей карт да, возможен небольшой провал в течение первого времени использования этих карт. То есть явный провал с точки зрения хищения денежных средств. Атака будет не на саму карту, а на какие-то системы, которые дополняют эту карту, например на системы дистанционного банковского обслуживания, чтение информации о платежной карте», — сообщил он.
Читать полностью »

Обновлено 21:08: Сергей Орловский уточнил: «Мы больше не будем делать игры только для России, с прицелом на российскую аудиторию, как основную. И не будем запускать локализации зарубежных игр».


Основатель и руководитель Nival Сергей Орловский сообщил Roem.ru, Читать полностью »

Как чуден и глубок русский курлык
— Генератор постов

Обработка естественного языка (natural language processing, NLP) — тема, на мой взгляд, очень интересная. Во-первых, задачи тут чисто алгоритмические: на вход принимаем совершенно примитивный объект, строчку, а извлечь пытаемся вложенный в него смысл (ну или хотя бы частичку смысла). Во-вторых, необязательно быть профессиональным лингвистом, чтобы решать эти задачи: достаточно знать родной язык на более-менее приличном уровне и любить его.

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

Бессвязность текстов в нынешней версии «Генератора» вызвана тем, что на самом деле никакого анализа он производить не умеет. Просто в одних случаях «предсказывает» продолжение предложения по собранным биграммам, а в других — заменяет в готовом предложении некоторые слова на другие, которые заканчиваются похоже. Вот и вся начинка.

Конечно, хочется сделать что-нибудь поинтереснее. Беда в том, что модные сейчас нейросети не очень-то применимы здесь: им нужно много ресурсов, большую обучающую выборку, а в браузере у пользователя соцсети всего этого нет. Поэтому я решил изучить вопрос работы с текстами с помощью алгоритмов. К сожалению, готовых инструментов для работы с русским языком на JavaScript найти не удалось, и я решил сделать свой маленький велосипед.
Читать полностью »

Несколько советов для начинающих

Лазерная резка: как избежать неудачи при работе с резаком? - 1

Cтанки лазерной резки c ЧПУ нельзя назвать дешевыми, но средней руки предприниматель уже может себе позволить такую систему. Некоторые модели из Китая стоят около $4000. Лазером можно делать все — вырезать корпуса приборов, отдельные элементы конструкции, наносить изображения на металл, дерево, кожу и пластик.

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

Партнерский канал Admitad, поставляющий интернет-магазинам клиентов с помощью веб-мастеров, представил отчет о своей работе за 2015 год. Канал проанализировал 3% оборота покупок российского e-commerce объемом 19,7 млрд рублей и выяснил, как распределяются потоки клиентов по сегментам и сезонам в сравнении с позапрошлым годом.

Читать полностью »