Search
Write a publication
Pull to refresh
3
0
Дмитрий Куликов @DmitryKulikov

User

Send message

Обнаружены поддельные сертификаты для доменов Google

Reading time2 min
Views22K
20-го марта 2015 года Google получил информацию о существовании поддельных цифровых сертификатов для нескольких своих доменов. Сертификаты были выданы промежуточным центром сертификации, относящимся к компании MCS Holdings. Промежуточный сертификат этой компании был выдан CNNIC (China Internet Network Information Center — административное агентство, управляющее доменом cn и подконтрольное Министерству Информатизации Китая).

CNNIC включен во все основные списки доверенных сертификационных центров и поэтому выданным им сертификатам доверяет большинство браузеров и операционных систем. Chrome на всех операционных системах и Firefox версий 33 и старше отклоняют поддельные сертификаты для доменов Google из-за того, что их публичные ключи вшиты в бинарники браузеров, что, однако, не решает проблему вероятного существования поддельных сертификатов для других доменов.

Google оперативно оповестил CNNIC и разработчиков других браузеров об этом инциденте и заблокировал все выданные компанией MCS Holdings сертификаты путём обновления CRLSet. CNNIC ответили 22-го марта и объяснили, что у них был договор с MCS Holdings о том, что эта компания будет выпускать сертификаты только для доменов, которые будут ею зарегистрированы. Однако, вместо того, чтобы хранить приватный ключ в безопасном аппаратном хранилище, MCS прошила его в свой продукт — man-in-the-middle прокси-сервер. Эти устройства позволяли на лету сгенерировать поддельные сертификаты для посещаемых пользователями https-ресурсов, позволяя, к примеру, компаниям следить за своими работниками таким образом, что у тех не возникало подозрений в том, что их текущее соединение не является безопасным. Ситуация похожа на случай с ANSSI в 2013-ом году.
Читать дальше →

Frame object в Python. Что с ним можно, а что нельзя (в production и другом приличном месте) делать

Reading time6 min
Views28K
О Python на Хабре было много хороших статей. Как об особенностях реализации, так и о прикладных фичах, отсутствующих в других мейнстримных языках. Однако я с удивлением обнаружил (поправьте, если не прав), что есть одна важная тема, не раскрытая ни на Хабре, ни в русскоязычном интернете вообще. Эта статья будет посвящена такой штуке, как stack frame. Скорее всего она не скажет ничего, ну или может с учетом последнего пункта почти ничего нового опытным python-разработчикам, однако будет полезна новичкам (а может и вредна, но все примеры ниже).

Я постарался написать статью так, чтобы её было удобно читать, открыв параллельно repl и бездумно копировать туда код эксперементируя. Поэтому по возможности большая часть примеров имеет вид «однострочники в интерпретаторе».

Начнем мы немного издалека, с того что заметим, что Traceback это тоже объект, а потом найдем где там стековый кадр и уже перейдем к делу.
Читать дальше →

Первые две недели курса CS188.1x Artificial Intelligence или самообучение алгоритмам ИИ

Reading time4 min
Views13K
Как вы думаете, что машины с искусственным интеллектом сегодня уже умеют делать, а что нет?


На фото робот, умеющий складывать полотенца.

В дистанционном курсе CS188.1x Artificial Intelligence от Калифорнийского университета в Беркли профессор Dan Klein приводит список некоторых задач в области искусственного интеллекта. Часть из них уже решены (полностью или частично), а другая часть — еще нет. Курс посвящен алгоритмам ИИ, на которых базируются многие современные интеллектуальные системы. Хочется вкратце поделиться тем, с чего он начинается и подробней рассказать про первое практическое задание.
Читать дальше →

QGIS — основной инструмент для работы с пространственной информацией. Обзор тематических ресурсов для начинающих

Reading time2 min
Views32K
Котики всегда волновали IT сообщество. А вот вопросы развития геоинформационных систем волновали не всегда. Раньше сфера ГИС была узкой и специфичной областью в IT-индустрии, где все участники знали друг друга. Однако с появлением популярных интернет картографических сервисов, а также мобильных приложений, каждая домохозяйка смогла освоить технологии, которые раньше были доступны гуру в области ГИС и ДДЗ.

Яндекс и Гугл сделали все, чтобы жизнь пользователей при использовании картографических приложений была комфортной. Однако когда обыватель начинает позволять себе большее, его жизнь резко усложняется. Данный обзор призван сократить круги ада в освоении новой специальности. Здесь нет ничего сложного, однако, как в любой специализации, есть масса нюансов.
Читать дальше →

DataSync API от Яндекс.Диска: облако для приложений и структурированных данных

Reading time5 min
Views28K
Для синхронизации данных в приложениях не подходят обычные «файловые» облачные хранилища. Слишком много проблем с консистентностью данных приходится решать самим авторам приложений. Поэтому сегодня мы открываем всем желающим технологию DataSync API, которую команда Яндекс.Диска разрабатывала для собственных сервисов Яндекса. Она позволяет синхронизировать структурированные данные между облачным хранилищем и устройствами. API использует логин Яндекса, который есть почти у каждого пользователя интернета в России и у многих в других странах. DataSync мультиплатформенный и не завязан только на Android или iOS.



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

Уже более двух лет Яндекс.Браузер работает на технологиях синхронизации Я.Диска. В ближайшем будущем другие крупные сервисы Яндекса начнут объединять свои платформы на DataSync. Под катом — больше подробностей о том, как он устроен, зачем нужен, и примеры, на которых можно посмотреть и попробовать, как всё работает.
Читать дальше →

Мешок слов и сентимент-анализ на R

Reading time5 min
Views23K
Эта статья подготовлена по мотивам (первой части) учебного задания Bag of Words Kaggle, но это не перевод. Оригинальное задание сделано на Python. Я же хотел оценить возможности языка R для обработки текстов на естественном языке и заодно попробовать реализацию Random Forest в обертке R-пакета caret.

Смысл задания – построить «машину», которая будет определенным образом обрабатывать обзоры фильмов на английском языке и определять тональность обзора, относя его к одному из двух классов: негативные/позитивные. В качестве обучающей выборки в задании используется набор данных с двадцатью пятью тысячами ревю из IMDB, размеченных неизвестными добровольцами.
Читать дальше →

R в качестве инструмента мониторинга цен

Reading time6 min
Views18K
В данной статье хотел бы коснуться такой темы как мониторинг конкурентов. Понимаю, что у данной темы есть как много сторонников, ведь так или иначе мониторинг необходим для успешного развития почти любой компании, так и противники, которые защищают интересы своего бизнеса от мониторщиков.

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

Сравнение библиотек глубокого обучения на примере задачи классификации рукописных цифр

Reading time21 min
Views53K
Кручинин Дмитрий, Долотов Евгений, Кустикова Валентина, Дружков Павел, Корняков Кирилл

Введение


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

Глубокое обучение (deep learning) рассматривает методы моделирования высокоуровневых абстракций в данных с помощью множества последовательных нелинейных трансформаций, которые, как правило, представляются в виде искусственных нейронных сетей. На сегодняшний день нейросети успешно используются для решения таких задач, как прогнозирование, распознавание образов, сжатие данных и ряда других.
Читать дальше →

Быстрая нейронная сеть для каждого

Reading time3 min
Views226K
Данная статья продемонстрирует возможность легко написать свою нейронную сеть на языке Javа. Дабы не изобретать велосипед, возьмем уже хорошо проработанную библиотеку Fast Artificial Neural Network. Использование нейронных сетей в своих Java-проектах — реально. Часто можно услышать упреки в адрес Java касательно скорости выполнения. Хотя разница не так велика — подробно об этом можно узнать в публикации «Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»». Мы будем использовать обертку вокруг библиотеки FANN.
Читать дальше →

Лекции Технопарка. 3 семестр. Проектирование высоконагруженных систем

Reading time3 min
Views74K


И снова в эфире наша постоянная рубрика «Лекции Технопарка». На этот раз предлагаем вам ознакомиться с материалами курса «Проектирование высоконагруженных систем». Цель курса — получение студентами навыков проектирования высокоэффективных программных систем.
Читать дальше →

Антифрод (часть 4): аналитическая система распознания мошеннических платежей

Reading time15 min
Views29K
No Fraud

В заключительной четвертой части статьи подробно обсудим наиболее сложную с технической точки зрения часть antifraud-сервиса – аналитическую систему распознания мошеннических платежей по банковским картам.

Выявление различного рода мошенничеств является типичным кейсом для задач обучения с учителем (supervised learning), поэтому аналитическая часть антифрод-сервиса, в соответствии с лучшими отраслевыми практиками, будет построена с использованием алгоритмов машинного обучения.

Для стоящей перед нами задачи воспользуемся Azure Machine Learning – облачным сервисом выполнения задач прогнозной аналитики (predictive analytics). Для понимания статьи будут необходимы базовые знания в области машинного обучения и знакомство с сервисом Azure Machine Learning.

Что уже было сделано? (для тех, кто не читал предыдущие 3 части, но интересуется)
В первой части статьи мы обсудили, почему вопрос мошеннических платежей (fraud) стоит так остро для всех участников рынка электронных платежей – от интернет-магазинов до банков – и в чем основные сложности, из-за которых стоимость разработки таких систем подчас является слишком высокой для многих участников ecommerce-рынка.

Во 2-ой части были описаны требования технического и нетехнического характера, которые предъявляются к таким системам, и то, как я собираюсь снизить стоимость разработки и владения antifraud-системы на порядок(и).

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

В заключительной четвертой части у нас следующая цель…

Цель


В этой части я опишу проект, на первом шаге которого мы обучим четыре модели, используя логистическую регрессию, персептрон, метод опорных векторов и дерево решений. Из обученных моделей выберем ту, которая дает большую точность на тестовой выборке и опубликуем ее в виде REST/JSON-сервиса. Далее для полученного сервиса напишем программного клиента и проведем нагрузочное тестирование на REST-сервис.

Читать дальше →

Асинхронная работа с Tarantool на Python

Reading time12 min
Views26K
На Хабре уже есть статьи о NoSQL СУБД Tarantool и о том, как его используют в Mail.Ru Group (и не только). Однако нет рецептов того, как работать с Tarantool на Python. В своей статье я хочу рассказать о том, как мы готовим Tarantool Python в своих проектах, какие проблемы и сложности при этом возникают, плюсы, минусы, подводные камни и, конечно же, «в чем фишка». Итак, обо всем по порядку.



Tarantool представляет собой Application Server для Lua. Он умеет хранить данные на диске, обеспечивает быстрый доступ к ним. Tarantool используется в задачах с большими потоками данных в единицу времени. Если говорить о цифрах, то это десятки и сотни тысяч операций в секунду. Например, в одном из моих проектов генерируется более 80 000 запросов в секунду (выборка, вставка, обновление, удаление), при этом нагрузка равномерно распределяется по 4 серверам с 12 инстансами Tarantool. Не все современные СУБД готовы работать с такими нагрузками. Кроме того, при таком количестве данных, очень дорого ожидание выполнения запроса, поэтому сами программы должны быстро переключаться от одной задачи к другой. Для эффективной и равномерной загрузки CPU сервера (всех его ядер) как раз нужен Tarantool и асинхронные приемы в программировании.
Читать дальше →

Завершен аудит кода TrueCrypt

Reading time1 min
Views91K
Сайт Open Crypto Audit Project сообщает о завершении второй стадии аудита кода популярного открытого средства шифрования TrueCrypt, разработчики которого 28 мая 2014 года очень странно покинули сцену, посоветовав переходить на BitLocker — решение для шифрования данных от Microsoft. По сути, аудит кода завершен, ребятам из OCAP осталось только написать финальный документ с выводами.

Согласно результатам аудита, никакой закладки в TrueCrypt 7.1a нет. Аудиторы отметили только 4 потенциально нехороших места, которые не приводили к компрометации каких-либо данных при обычных условиях:
  1. Отсутствие проверки подлинности зашифрованных данных в заголовке тома
  2. Смешивание ключевого файла происходит не криптографически устойчивым образом
  3. Реализация AES может быть уязвима к атаке по времени
  4. CryptAcquireContext может оказаться неинициализированным без сообщений об ошибке
Читать дальше →

Машинное обучение в навигационных устройствах: определяем маневры машины по акселерометру и гироскопу

Reading time10 min
Views27K
Программы, которые доступны нам сегодня для автомобильной навигации оказывают большую помощь водителям. Они помогают нам ориентироваться в незнакомой местности и объезжать пробки. Это большой труд людей со всего мира, который сделал нашу жизнь проще. Но нельзя останавливаться на достигнутом, технологии идут вперед и качество программ также должно расти.

image

Сегодня, на мой взгляд, одна из проблем навигационных устройств – это то, что они не ведут пользователя по полосам. Эта проблема увеличивает время в пути, пробки и аварийность. Недавно google maps начали отображать разметку дороги перед поворотом, что уже хороший результат, но и тут можно многое улучшить. Карты не знают на какой полосе сейчас находится машина, средствами gps узнать это проблематично, у gps слишком большая погрешность для этого. Если бы мы знали текущую полосу, то знали бы скорость движения по полосами и могли бы задолго подсказывать пользователю в явном виде, на какую полосу и когда ему лучше перестроиться. Например, навигатор говорил бы “Продолжайте держаться этой полосы до перекрестка” или “Перестройтесь на крайнюю левую полосу”.

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

IBM анонсирует аналитические инструменты для работы с базами данных Twitter

Reading time5 min
Views5.1K


IBM и Twitter представили первые в отрасли облачные сервисы, которые позволяют бизнес-профессионалам и разработчикам извлекать ценную информацию из данных Twitter. В процессе реализации проекта IBM и Twitter тесно сотрудничали с более чем 100 клиентами, и уже сегодня предоставляют корпоративным заказчикам возможность применять социальные данные для принятия бизнес-решений.

Twitter не похож ни на один другой источник данных в мире, представляя собой глобальную информационную платформу для ведения диалогов на самые разнообразные темы в режиме реального времени. Для того чтобы использовать Twitter-данные с целью принятия важных решений, бизнес-профессионалы должны делать нечто большее, чем проводить анализ общественного мнения – они должны отличать сигнал от шума. IBM помогает достичь этого, обогащая и анализируя данные Twitter в сочетании с миллионами источников данных из других информационных потоков, таких как прогнозы погоды, продажи, учет товарных запасов. Такой подход позволяет находить важные связи, которые помогают принимать более взвешенные решения.
Читать дальше →

Как оценивать работу программиста? Мнение сотрудников Яндекса

Reading time7 min
Views59K
Давно идут споры о том, что такое работа программиста — ремесло, навык или искусство. При этом постоянно встаёт вопрос оценки результата. О том, как разные разработчики и руководители в Яндексе подходят к вопросу оценки работы программиста, мы поговорим в этом посте.



В Яндексе работают сотни программистов, и результаты их работы влияют на сервисы, которыми пользуются миллионы людей. Когда на тебе такая ответственность, нужно уметь остановиться и оценить, что можно сделать лучше, в чем ты сильнее всего и где эти твои навыки пригодятся еще. Для этого надо уметь оценить и свою работу, и работу людей, с которыми ты вместе что-то создаешь. О том, как это делать, мы и спросили наших коллег.
Читать дальше →

Как попасть в топ на Kaggle, или Матрикснет в домашних условиях

Reading time9 min
Views32K
Хочу поделиться опытом участия в конкурсе Kaggle и алгоритмами машинного обучения, с помощью которых добрался до 18-го места из 1604 в конкурсе Avazu по прогнозированию CTR (click-through rate) мобильной рекламы. В процессе работы попытался воссоздать оригинальный алгоритм Мактрикснета, тестировал несколько вариантов логистической регрессии и работал с характеристиками. Обо всём этом ниже, плюс прикладываю полный код, чтобы можно было посмотреть, как всё работает.

Рассказ делю на следующие разделы:
1. Условия конкурса;
2. Создание новых характеристик;
3. Логистическая регрессия – прелести адаптивного градиента;
4. Матрикснет – воссоздание полного алгоритма;
5. Ускорение машинного обучения в Python.
Читать дальше →

Основы пространственной и частотной обработки изображений. Лекции от Яндекса

Reading time18 min
Views65K
Мы продолжаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе — девять лекций. Первая из них уже была опубликована. В ней рассказывалось о том, в каких областях встречается анализ изображений, его перспективах, а также о том, как устроено наше с вами зрение. Вторая лекция посвящена основам обработки изображений. Речь пойдет о пространственной и частотной области, преобразовании Фурье, построении гистограмм, фильтре Гаусса. Под катом — слайды, план и дословная расшифровка лекции.
Читать дальше →

Лекции Технопарка. 2 семестр. Базы данных

Reading time4 min
Views87K


Очередной пост в рамках нашей постоянной рубрики «Лекции Технопарка». В этот раз предлагаем вашему вниманию лекции, посвящённые базам данных. Цель курса — получение студентами знаний в области проектирования реляционных баз данных, эффективной работы с базами данных, оптимизации запросов и схем данных, изучение особенностей использования баз данных в проектах с высокой нагрузкой и/или использующих большие массивы данных, noSQL и его применение для решения прикладных задач в WWW.
Читать дальше →

Даниил Дубровкин: «Оpen source не значит, что это бесплатно и что это никому не принадлежит»

Reading time8 min
Views15K
Представляем шестой выпуск подкаста о технологиях, процессах, инфраструктуре и людях в IT-компаниях. Сегодня в гостях у “CTOcast” — Даниил Дубровкин (Daniel Doubrovkine), технический директор компании Artsy и open source энтузиаст.
Читать дальше →

Information

Rating
Does not participate
Location
Саров (Нижегородская обл.), Нижегородская обл., Россия
Date of birth
Registered
Activity