Как стать автором
Обновить
0
0
Zveroloff @Zveroloff

Пользователь

Отправить сообщение

Что делать если Instagram не дал доступ к API?

Время на прочтение3 мин
Количество просмотров103K
1 июня 2016 года Instagram отключит от своего API все приложения, которые не прошли модерацию. Что делать если вы в их числе?

Предыстория


Мы делаем сервис для постинга в Instagram по расписанию и используем API для получения информации об аккаунтах. Самим постингом занимаются телефоны в автоматическом режиме. Нам отказали в доступе к API после 1 июня (пробовали пройти модерацию два раза) поэтому было решено найти замену.

Сначала расскажу как мы использовали официальный API:
  1. При добавлении аккаунта забираем из Instagram информацию об аккаунте: имя, фото профайла, количество постов, подписчиков, подписок.
  2. Перед тем как опубликовать фото/видео мы запрашиваем количество постов, и тоже самое после публикации, если число постов увеличилось считаем публикацию успешной.
  3. Если публикация прошла успешно забираем ссылку на последнее фото в профайле.
  4. Если пользователь удаляет фото из нашего сервиса, то перед тем как выполнить задачу нужно проверить существует ли такой пост в Instagram (или его удалили).

Реализация


У Instagram есть веб-версия. С помощью нее в приватных аккаунтах можно получить информацию о количестве постов, подписок и подписчиков, а в публичных еще и сами посты, комментарии и лайки. Поэтому, в силу простоты получения, я подумал, что уже написаны подобные библиотеки. Пошел гуглить и нашел только для NodeJS. И для PHP нашелся какой-то код, но всем четырем пунктам не соответствовал. В итоге было решено писать свою библиотеку.
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии72

Исследование защищенности карты Тройка

Время на прочтение18 мин
Количество просмотров202K
Карта тройка

Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.

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

В ходе работы был успешно проведен реверс­-инжиниринг мобильного приложения «Мой проездной», что позволило получить доступ к памяти карты и изучить структуру хранения данных. Были найдены уязвимости, позволяющие выполнить подделку баланса, записанного на электронном кошельке карты Тройка. В результате чего стало возможным использование систем, поддерживающих карту, без оплаты.

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

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.

Читать дальше →
Всего голосов 380: ↑374 и ↓6+368
Комментарии348

Метрика рекомендательной системы imhonet.ru

Время на прочтение12 мин
Количество просмотров18K
Цель этого рассказа — поделиться способами решения проблемы, над которой работали авторы при разработке рекомендательного сервиса imhonet.ru. Поскольку проблема не является чисто научно-технической, а скорее находится на стыке технологий и бизнеса и может быть полезна более широкой аудитории, чем обычный технический отчёт, мы выбрали именно такой формат представления нашей работы — попытались написать рассказ настолько простым языком, насколько это возможно. Первая часть рассказа посвящена довольно подробному обоснованию того, как правильно измерять качество работы алгоритмов рекомендательной системы. А в конце иллюстративно перечислено несколько примеров, в которых мы проводили эти измерения для решения конкретных задач.


Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии8

Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)

Время на прочтение16 мин
Количество просмотров91K
То, о чем я попытаюсь сейчас рассказать, выглядит как настоящая магия.

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

Итак, магия:


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

Читать дальше →
Всего голосов 83: ↑82 и ↓1+81
Комментарии64

Использование сверточных сетей для поиска, выделения и классификации

Время на прочтение5 мин
Количество просмотров48K
Недавно ZlodeiBaal опубликовал статью «Нейрореволюция в головах и сёлах», в которой привел обзор возможностей современных нейронных сетей. Самым интересным, на мой взгляд, является подход с использованием сверточных сетей для сегментации изображений, про этот подход и пойдет речь в статье.

segnet.png


Уже давно появилось желание изучить сверточные сети и узнать что-то новое, к тому же под рукой есть несколько последних Tesla K40 с 12Гб памяти, Tesla c2050, обычные видеокарты, Jetson TK1 и ноутбук с мобильной GT525M, интереснее всего конечно попробовать на TK1, так как его можно использовать практически везде, хоть на столб фонарный повесить. Самое первое с чего начал, это распознавание цифр, тут конечно удивить нечем, цифры уже давно неплохо распознаются сетями, но при этом постоянно возникает потребность в новых приложениях, которые должны что-то распознавать: номера домов, номера автомобилей, номера вагонов и т.д. Все бы хорошо, но задача распознавания цифр является лишь частью более общих задач.
Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии24

Census Analyzer 1.0: новый инструмент для анализа данных

Время на прочтение3 мин
Количество просмотров16K
Привет, Хабр!

Мы в компании JetBrains только что выпустили Census Analyzer — новое веб-приложение для визуализации и анализа данных. Попробуйте его и расскажите нам, что вы думаете!

Census Analyzer является прототипом, “preview”-версией, призванной познакомить пользователей с принципами работы более глобального продукта по анализу данных, который пока в разработке. Но уже сейчас с помощью Census Analyzer вы можете в облаке анализировать данные Бюро переписи населения США (US Census Bureau), работать с графиками и сводными таблицами, составлять графические отчеты, публиковать их и делиться ими в сети.

Давайте посмотрим, чем интересен Census Analyzer.

image
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии34

Что такое RESTful на самом деле

Время на прочтение8 мин
Количество просмотров210K
А ваше приложение — RESTful? Чтобы ответить на этот вопрос нужно сначала разобраться что такое RESTful. Бытует мнение, что отдавать правильные коды ответов в HTTP — это уже RESTful. Или делать правильные идемпотентные HTTP-запросы — это вообще очень RESTful. Мы в Хекслете сделали практический курс по протоколу HTTP (отличия версий, отправка форм, аутентификация, куки и пр.), и в нем мы стараемся рассказать о правильном использовании запросов, но нужно понимать, что RESTful это не про HTTP, это вообще не про протоколы интернета. Современный веб и взаимодействие между браузером и сервером с помощью HTTP и URI могут удовлетворять принципам RESTful, а могут и не удовлетворять.

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

Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии103

Как покрыть мониторингом все слои инфраструктуры

Время на прочтение9 мин
Количество просмотров31K
image

Как-то я посчитал, что 1 минута простоя hh.ru в будни днем затрагивает около 30 000 пользователей. Мы постоянно решаем задачу снижения количества инцидентов и их длительности. Снизить количество проблем мы можем правильной инфраструктурой, архитектурой приложения — это отдельная тема, ее мы пока не будем брать во внимание. Поговорим лучше о том, как быстро понять, что происходит в нашей инфраструктуре. Тут как раз нам и помогает мониторинг.

В этой статье на примере hh.ru я расскажу и покажу, как покрыть мониторингом все слои инфраструктуры:
  • client-side метрики
  • метрики с фронтендов (логи nginx)
  • сеть (что можно добыть из TCP)
  • приложение (логи)
  • метрики базы данных (postgresql в нашем случае)
  • операционная система (cpu usage тоже может пригодиться)

Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии15

Конкурс kaggle по анализу данных анкетирования населения

Время на прочтение4 мин
Количество просмотров8.7K
На kaggle сейчас проходит конкурс USA Census по поиску интересных фактов в American Community Survey данных за 2013 год. Данные этого анкетирования выложены в свободный доступ, подробности можно найти здесь.
Kaggle выбрал для анализа два направления — персональные сведения (пол, возраст, семейное положение и т.д.) и сведения о домохозяйствах (различные характеристики жилья, доход домохозяйства, налоговые платежи и прочее). Хочу поделиться своими результатами, которые сфокусированы на различиях домохозяйств в зависимости от вида права собственности на их жилье — владение с ограничением (ипотека или заем), владение без ограничений и не владеют (аренда).


infographics: American Housing Survey Factsheets
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

Почему писать скрипты для борьбы с «браузером Амиго» — зло?

Время на прочтение9 мин
Количество просмотров80K
Прочитав пост про удаление ненужного софта мне в который раз стало очень грустно. Автор предлагает «эффективное решение» по избавлению от всякого нежелательного софта, вроде упомянутого «амиго». И если некоторые части скрипта еще можно назвать, ну хотя бы безвредными, то удаление и запрет на запись "%username%\AppData\Local\Apps" выглядит как откровенный саботаж. Плохо еще и то, что такой или аналогичный по механике «полезный скрипт» некоторые всерьез считают действенной мерой. Это далеко не первая статья, от которой у меня сводит скулы, вижу что многие не понимают с чего вообще нужно начинать настройку безопасности в Windows-среде.

Представляю читателям мое видение списка минимально необходимых настроек и действий (в первую очередь для Windows-домена), чтобы никогда не видеть непонятных браузеров и свести риск вредоносного ПО к абсолютному минимуму. Некоторые описанные решения могут показаться спорными, и мало того, они таковыми и являются. Но заранее прошу, увидев первое предложение какого-то пункта, не спешите писать комментарий, прочитайте мысль до конца, возможно у вас отпадут вопросы.
Почему я не знаю как выглядит браузер Амиго?
Всего голосов 90: ↑77 и ↓13+64
Комментарии203

У нас проблемы с промисами

Время на прочтение16 мин
Количество просмотров235K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

— Многие из нас используют промисы без действительного их понимания.

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи
Всего голосов 139: ↑136 и ↓3+133
Комментарии121

TemplateEngine.Docx — OpenSource .NET шаблонизатор docx документов

Время на прочтение7 мин
Количество просмотров47K


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

Хочу поделиться нашим opensource-решением для генерации docx документов, которое позволяет заполнять документы по шаблону, оформление которого можно менять в Word без переписывания кода.

Для начала — немного вводных.

Что нам было нужно от шаблонизатора


  • Шаблон создается в Word и сразу видно, на что будет похож результирующий документ, шаблон без лишнего мусора.
  • Результирующий документ после скачивания содержит все необходимые данные, не подтягивая их с внешних источников.
  • Возможность заполнять списки, таблицы, и иногда еще и таблицы с вложенными в них списками.
  • Шаблон можно доверить секретарю клиента, чтобы он мог сменить логотип, реквизиты компании, или как-либо еще подкорректировать оформление. И все это уже после сдачи проекта, не модифицируя наш код.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии21

Алгоритм извлечения информации в ABBYY Compreno. Часть 1

Время на прочтение7 мин
Количество просмотров30K
Привет, Хабр!

Меня зовут Илья Булгаков, я программист отдела извлечения информации в ABBYY. В серии из двух постов я расскажу вам наш главный секрет – как работает технология Извлечения Информации в ABBYY Compreno.

Ранее мой коллега Даня Скоринкин DSkorinkin успел рассказать про взгляд на систему со стороны онтоинженера, затронув следующие темы:

В этот раз мы опустимся глубже в недра технологии ABBYY Compreno, поговорим про архитектуру системы в целом, основные принципы ее работы и алгоритм извлечения информации!



Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии14

Предсказание выживания пассажиров Титаника при помощи Azure Machine Learning

Время на прочтение9 мин
Количество просмотров26K
Выражаем большое спасибо за подготовку статьи Кириллу Малеву из компании Merku. Кирилл больше 3х лет занимается практическим применением машинного обучения для разных объёмов данных. В компании решает задачи в области предсказания оттока клиентов и обработки естественного языка, большое внимание уделяя коммерциализации полученных результатов. Закончил магистратуру Болонского университета и НГТУ

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

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


предсказать вероятность спасения утопающих
Всего голосов 35: ↑29 и ↓6+23
Комментарии2

Как легко понять логистическую регрессию

Время на прочтение5 мин
Количество просмотров205K
Логистическая регрессия является одним из статистических методов классификации с использованием линейного дискриминанта Фишера. Также она входит в топ часто используемых алгоритмов в науке о данных. В этой статье суть логистической регрессии описана так, что она станет понятна даже людям не очень близким к статистике.

image
Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии2

Задачи вступительного экзамена в ШАД 2014

Время на прочтение14 мин
Количество просмотров63K


При поступлении в ШАД проверяются знания в рамках общей программы, включающей базовые разделы высшей алгебры, математического анализа, комбинаторики, теории вероятностей, а также основы программирования. Под катом подробно разобраны задачи вступительного экзамена в ШАД 2014 года. Внимание! Пост довольно объёмный, поэтому устраивайтесь поудобнее, вооружайтесь карандашом, если нужно, доставайте чай с печеньем. Убедитесь, что сделали все дела на вечер! Велика вероятность, что рассматриваемые ниже задачи поглотят ваш разум на несколько часов, а кому-то помешают вовремя лечь спать. Во всяком случае сегодняшний вечер обещает быть интересным. Добро пожаловать под кат
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии16

Иерархическая классификация сайтов на Python

Время на прочтение8 мин
Количество просмотров27K
Привет, Хабр! Как упоминалось в прошлой статье, немаловажной частью нашей работы является сегментация пользователей. Как же мы это делаем? Наша система видит пользователей как уникальные идентификаторы cookies, которые им присваиваем мы или наши поставщики данных. Выглядит этот id, например, так:

42bcfae8-2ecc-438f-9e0b-841575de7479

Эти номера выступают ключами в различных таблицах, но первоначальным value является, в первую очередь, URL страниц, на которых данная кука была загружена, поисковые запросы, а также иногда некоторая дополнительная информация, которую даёт поставщик – IP-адрес, timestamp, информация о клиенте и прочее. Эти данные довольно неоднородные, поэтому наибольшую ценность для сегментации представляет именно URL. Создавая новый сегмент, аналитик указывает некоторый список адресов, и если какая-то кука засветится на одной из этих страничек, то она попадает в соответствующий сегмент. Получается, что чуть ли не 90% рабочего времени таких аналитиков уходит на то, чтобы подобрать подходящий набор урлов – в результате кропотливой работы с поисковиками, Yandex.Wordstat и другими инструментами.
logo
Получив таким образом более тысячи сегментов, мы поняли, что этот процесс нужно максимально автоматизировать и упростить, при этом иметь возможность мониторинга качества алгоритмов и предоставить аналитикам удобный интерфейс для работы с новым инструментом. Под катом я расскажу, как мы решаем эти задачи.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии18

Московский хакатон по машинному обучению — 6-7 июня, в офисе Microsoft на Крылатском

Время на прочтение1 мин
Количество просмотров6K


Недавно мы провели отличный хакатон по Big Data – получили практически полный зал участников, которые за два дня сделали несколько интересных решений, использовавших в основном открытые источники данных. Время двигаться дальше – и мы делаем хакатон по машинному обучению. С использованием наших инструментов – Azure Machine Learning (для разработки экспериментов и моделей C#/Python/R), HDInsight (Hadoop в облаке), PowerBI (для визуализации).
Проводим в необычном месте – в нашем московском офисе.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии5

Не очень большие данные и определение тональности текста

Время на прочтение2 мин
Количество просмотров7.6K
Всякая идея имеет простое, понятное и неправильное решение.
Одно из таких решений я и опишу в этой статье.
Не пытайтесь повторить эти эксперименты дома.
А если попытаетесь — то претензии по сгоревшим процессорам не принимаются.

Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии12

99 ресурсов для продвижения стартапов

Время на прочтение3 мин
Количество просмотров48K


В адаптированной нами подборке вы сможете найти множество полезных источников по ряду маркетинговых задач, которые приходится решать всем бизнесам без исключения. Уверены, что каждый сможет найти что-то подходящее для своих проектов.
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии1
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность