Search
Write a publication
Pull to refresh
0
@alekssanderread⁠-⁠only

Product Manager

Send message

Item-based коллаборативная фильтрация своими руками

Reading time10 min
Views20K
Робот-рекомендатель

Одной из наиболее популярных техник для построения персонализированных рекомендательных систем (RS, чтобы не путать с ПиСи) является коллаборативная фильтрация. Коллаборативная фильтрация бывает двух типов: user-based и item-based. User-based часто используется в качестве примера построения персонализированных RS [на хабре, в книге Т.Сегаран,...]. Тем не менее, у user-based подхода есть существенный недостаток: с увеличением количества пользователей RS линейно увеличивается сложность вычисления персонализированной рекомендации.

Когда количество объектов для рекомендаций большое, затраты на user-based подход могут быть оправданы. Однако во многих сервисах, в том числе и в ivi.ru, количество объектов в разы меньше количества пользователей. Для таких случаев и придуман item-based подход.

В этой статье я расскажу, как за несколько минут можно создать полноценную персонализированную RS на основе item-based подхода.
Читать дальше

Шпионское ПО официально использует полиция в 30 странах

Reading time2 min
Views23K
Слежка за гражданами со стороны правительства и тайная установка вредоносных программ на телефоны пользователей — это уже не научная фантастика и не какие-то теории заговора, а обычная практика в повседневной деятельности правоохранительных органов.

Микко Хюппёнен (Mikko Hypponen), директор по исследованиям финской антивирусной компании F-Secure выступил с докладом на хакерской конференции Black Hat, которая проходит в эти дни в Лас-Вегасе. В своём выступлении он сказал, что шпионское ПО официально использует полиция как минимум в 30 странах.

Собственно, история вредоносных программ, созданных для государственных нужд, ведётся с момента обнаружения Stuxnet — вероятно, первого вируса, сделанного под непосредственным присмотром президента в рамках операции под кодовым названием «Олимпийские игры».

«Ещё недавно мысль о том, что демократическое западное правительство будет вовлечено в написание вредоносных программ казалась смешной, — говорит Хюппёнен. — Мысль о том, что одно демократическое западное государство разработает шпионскую программу для слежки за другим демократическим государством? Именно это мы наблюдаем сейчас».
Читать дальше →

Хакеры воровали криптовалюту подменой BGP-анонсов mining pool'ов

Reading time1 min
Views21K
image

По информации от команды Dell SecureWorks Counter Threat Unit, неизвестные лица анонсировали IP-адреса крупных mining pool'ов криптовалют Bitcoin, Dogecoin, HoboNickels и Worldcoin в течение 4 месяцев: с 3 февраля по 12 мая 2014 года. Провернуть такое было возможно из-за отсутствия как проверки подлинности сервера, так и шифрования в протоколе Stratum, который используется большинством пулов.

Первые ноты подозрительной активности заметил пользователь caution с форума bitcointalk 22 марта. Его майнеры подключились к неизвестному IP-адресу и, по какой-то причине, перестали майнить.

Злоумышленники анонсировали IP-адреса пулов только на короткое время, вероятно, всего в течение нескольких минут или секунд, завершали TCP-соединение, всем переподключившимся майнерам отправляли команду reconnect с указанием адреса своего mining pool, затем убирали анонс. Всего им удалось заполучить около $83000 за все 4 месяца.
Читать дальше →

Распределённые вычисления: немного теории

Reading time9 min
Views58K
Девять лет назад я начал «в свободное от основной работы время» преподавать компьютерные дисциплины в одном из университетов Санкт-Петербурга. И только сравнительно недавно к своему удивлению обнаружил, что в наших вузах практически отсутствуют курсы с фокусом на проблематику распределённых вычислений. И даже на Хабре эта тема не раскрыта в достаточной мере! Надо прямо сейчас исправлять ситуацию.

Этой теме я и хотел посвятить статью или даже серию статей. Но потом решил выложить своё учебное пособие по основам распределённых вычислений, вышедшее в свет в этом году (читай, небольшую книгу объемом 155 страниц). В итоге получился гибрид – статья со ссылкой на книгу. Книга распространяется бесплатно и доступна в электронном виде.

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

Должен признать, что у меня нет готового заученного ответа, который я могу выдать не задумываясь. Поэтому каждый раз приходится напрягаться извилинами, и каждый раз ответы и аргументы получаются разными. Вот и сейчас всё как впервые…
Читать дальше →

Асинхронный JavaScript: без колбеков и промисов

Reading time7 min
Views42K
Наверное, каждый, кто использовал JavaScript, когда-либо сталкивался (или столкнётся в будущем) с асинхронными вызовами. Может быть, это будет обращение к базе на стороне сервера. Может быть — работа с таймером для создания анимации на сайте.

Для того, чтобы «побороть» асинхронность, используются разные инструменты от промисов до смены языка программирования. Но иногда очень хочется бросить всё и написать на чистом JS линейный код:

timeout(1000);
console.log('Hello, world!');


Можно ли реализовать нечто подобное? Разумеется, можно.
В данной статье мы рассмотрим один опасный, но действенный способ.
Читать дальше →

Учимся логично делать прототипы

Reading time9 min
Views65K
Зачем вам это?

  • Если вы знаете как делать сайт, этот метод поможет вам убедить заказчика, почему вы предлагаете ему именно этот вариант.
  • Если вы заказываете сайт, то сэкономите от 2 до 10 часов объяснений что вам нужно и зачем.
  • Если вы стартапер, то вся ваша команда сможет участвовать в создании нового сайта или лэндинга. Тот самый случай, когда одна голова хорошо, а команда лучше.
  • Если вы учите стартаперов, то сможете помочь им выглянуть из позиции «я знаю как надо» и без сопротивления подвести их к началам CusDev-a.

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

Релиз Android-x86 4.4: ставим Android на ПК без проблем

Reading time1 min
Views305K
android-x86_02

Сейчас Android OS — одна из наиболее популярных операционных систем для мобильных устройств, самой разной конфигурации. Тем не менее, некоторые разработчики достаточно давно работают и над тем, чтобы Android без проблем можно было установить на ПК, ноутбук либо планшет с процессором Intel/AMD.

Есть несколько способов проделать подобную операцию, и один из наиболее беспроблемных — работа с новым релизом Android-x86. Это модицифированная версия Android Open Source Project (AOSP), установке Android на ноутбуках/десктопных ПК с чипами AMD и Intel.

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

Сбой в DNS у регистратора R01 и несколько роковых случайностей

Reading time2 min
Views30K
Сегодня один из старейших регистраторов R01 объявил о сбое в DNS.
В связи с этим хочу рассказать вам маленькую поучительную историю о том, как это едва не убило нашу компанию.

По роду деятельности мы saas-аналитика для веба. Наше основное оружие — javascript файл, который собирает статистику. Файл раздается на множество сайтов наших пользователей, поэтому мы обязаны обеспечить его безупречную стабильность, недоступность нашего сайта не должна никак влиять на сайты наших клиентов. И мы потратили много сил на то чтобы обеспечить полную стабильность: положили скрипт в отличный мощный CDN, сделали свой домен, чтобы абстрагировать этот CDN (чтобы можно было в любой момент сменить CDN, если он даст сбой или станет слишком дорогим). Но не учли одну мелочь: DNS-сервер находился у регистратора.
Читать дальше →

Как я играл в банк

Reading time6 min
Views55K
Привет, Хабр!
Лето, все в отпуске. У всех расходы. Где взять денег? У банка!
Только за этот июль крупнейший банк России выдал кредитов физическим лицам на 73 545 493 тыс. руб. Ипотечные займы Северо-Западного отделения составляет 53% от общего портфеля, потребительские кредиты — 32%, согласно пресс-релизу . Средний размер ипотечного займа за март 2014 составил порядка 1.5 млн рублей. Средний размер автокредита составляет
не менее 0.5 млн рублей. Спасибо lany за предоставленные ссылки.
Исходя из вышеприведенных цифр, можно предположить, что банк умудрился за месяц выдать кредит около двумстам тысячам человек.
Конечно, в этом банке используют скоринговые системы.
Я узнал про скоринговые системы пару лет назад и был потрясен. Сама идея, что бездушная машина может принимать решение о выдаче кредита на основе статистических данных, не выходила из головы. Я захотел поиграть в банк и проверить, выдаст ли компьютер кредиты моим друзьям, just for fun. Настоящие скоринговые системы я никогда не видел, но решил, что это и неважно, напишу сам.
Сказано — сделано.

Исходники на репе в гитхабе.

Осторожно, много изображений!
Читать дальше →

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №119 (4 — 10 августа 2014)

Reading time6 min
Views40K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


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

Allure — фреймворк от Яндекса для создания простых и понятных отчётов автотестов [для любого языка]

Reading time4 min
Views168K
Прежде чем начать рассказ про наш очередной opensource-инструмент, давайте я поясню, для чего мы его сделали. Я довольно много общаюсь с коллегами-тестировщиками и разработчиками из разных компаний. И, по моему опыту, автоматизация тестирования ─ один из самых непрозрачных процессов в цикле разработки ПО. Посмотрим на типичный процесс разработки функциональных автотестов: ручные тестировщики пишут тест-кейсы, которые нужно автоматизировать; автоматизаторы что-то делают, дают кнопку для запуска; тесты падают, автоматизаторы разгребают проблемы.



Я вижу здесь сразу несколько проблем: ручные тестировщики не знают, насколько автотесты соответствуют написанным тест-кейсам; ручные тестировщики не знают, что именно покрывается автотестами; автоматизаторы тратят время на разбор отчётов. Как ни странно, но все три проблемы вытекают из одной: результаты выполнения тестов понятны только автоматизаторам — тем, кто эти тесты писал. Именно это я и называю непрозрачностью.

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

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

Работа по контракту в Лондоне

Reading time11 min
Views95K

Вид на City, сердце деловой Великобритании

Перед тем как перейти «на контракт» я работал в постоянным сотрудником в Лондоне в небольшой (700 серверов / 8 коллег) компании. Моя специализация — Wintel engineer, то есть я могу работать к в суппорте так и в техподдержке проектов. Все что связано с продуктами Microsoft. Я подумывал об уходе с постоянной работы, однако волею судеб пришлось уйти совершенно неподготовленным. Именно отсюда начинается мой рассказ о контрактниках в Великобритании.
Читать дальше →

Как использовать Томита-парсер в своих проектах. Практический курс

Reading time19 min
Views45K

Привет, меня зовут Наталья, я работаю в Яндексе разработчиком в группе извлечения фактов. Весной мы рассказали о том, что такое Томита-парсер и для чего он используется в Яндексе. А уже этой осенью исходники парсера будут выложены в открытый доступ.

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





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

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

Android Планшет вместо Авто магнитолы

Reading time9 min
Views535K
Сейчас многие владельцы автотранспорта сталкиваются с проблемой убогости штатных и космической дороговизны хороших магнитол с современными функциями. Вот и я купив машину 2010 года не смог ужиться с CD проигрывателем и поспешил поставить вместо него таблетку — Планшет. В статье описаны аспекты не освещённые в остальных источниках информации. В частности не как физически врезать планшет в машину, а как всё настроить так чтобы было приятно и удобно пользоваться.
image
Читать дальше →

Виртуальная реальность и игры от третьего лица

Reading time2 min
Views36K


Многие ли из вас играли сутки напролёт в Лару Крофт aka Tomb Raider? А в Splinter Cell, Assassin’s Creed? И напоследок вопрос недели: есть тут поклонники GTA? Мы не зря перечислили именно эти игры. Что их объединяет, помимо насилия и зашкаливающей популярности? Правильно, вид от третьего лица. Проводя сутки в этих играх, мало кто из нас задумывался над некоторой противоестественностью позиции, с которой игрок наблюдает и управляет процессом.
Читать дальше →

О формуле Байеса, прогнозах и доверительных интервалах

Reading time9 min
Views69K
На Хабре много статей по этой теме, но они не рассматривают практических задач. Я попытаюсь исправить это досадное недоразумение. Формула Байеса применяется для фильтрации спама, в рекомендательных сервисах и в рейтингах. Без нее значительное число алгоритмов нечеткого поиска было бы невозможно. Кроме того, это формула явилась причиной холивара среди математиков.

image

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

Конструктор для «Умного Дома» — от идеи до воплощения

Reading time16 min
Views162K


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

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

FAQ по программированию под Android от новичка, и для новичков

Reading time16 min
Views158K
Предисловие к FAQ.

Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
На данный момент выпущено 7 программ и две находятся в разработке.
Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

Надеюсь, что приведенные примеры окажутся полезными.
Читать дальше →

Атаки шейпинга в сетях low latency или почему Tor не спасает от спецслужб

Reading time6 min
Views88K


Тайминг-атаки являются известным слабым местом сети Tor и неоднократно обсуждались, в том числе на Хабре, где можно найти порядка 10 статей, так или иначе затрагивающих эту тему. Зачем нужна еще одна? Существует достаточно распространенное заблуждение, что подобные атаки всегда требуют статистического анализа и достаточно сложны в реализации. Ранее опубликованные статьи относятся именно к такому классу атак. Мы рассмотрим вполне реалистичный сценарий, в котором достаточно единственного запроса для деанонимизации пользователя сети.

Поскольку вопрос возможности деанонимизации пользователей Tor в очередной раз активно обсуждается в рунете, я публикую «печатную» версию фрагмента своей презентации с PHDays 2014. Приведенная ниже атака не специфична для Tor и может быть использована против любых low latency средств сокрытия источника трафика – VPN, цепочки прокси и даже их комбинации.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity