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

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

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

Генераторы непрерывно распределенных случайных величин

Время на прочтение15 мин
Количество просмотров119K
Генератор случайных чисел во многом подобен сексу: когда он хорош — это прекрасно, когда он плох, все равно приятно (Джордж Марсалья, 1984)

Популярность стохастических алгоритмов все растет. Многие из них базируются на генерации большого количества различных случайных величин. Далеко не всегда равномерно распределенных. Здесь я попытался собрать информацию о быстрых и точных генераторах случайных величин с известными распределениями. Задачи могут быть разными, разными могут быть и критерии. Кому-то важно время генерации, кому-то — точность, кому-то — криптоустойчивость, кому-то — скорость сходимости. Лично я исходил из предположения, что мы имеем некий базовый генератор, возвращающий псевдослучайное целое число, равномерно распределенное от 0 до некого RAND_MAX

unsigned long long BasicRandGenerator() {
    unsigned long long randomVariable;
    // some magic here
    ...
    return randomVariable;
}

и что этот генератор достаточно быстрый. Я имею ввиду, что дешевле сгенерировать с десяток случайных чисел, нежели чем посчитать логарифм или возвести в степень одно из них. Это могут быть стандартные генераторы: std::rand(), rand в MATLAB, Java.util.Random и т.д. Но имейте ввиду, что подобные генераторы редко подходят для серьезной работы. Зачастую они проваливают разные статистические тесты. А также, помните, что вы полностью зависите от них и лучше использовать свой собственный генератор, чтобы иметь представление о его работе.

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


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

Равномерное распределение





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

PostgreSQL: Приемы на продакшене

Время на прочтение9 мин
Количество просмотров90K
Можно прочитать много книг по базам данных, написать кучу приложений на аутсорс или для себя. Но при этом невозможно не наступить на грабли, при работе с действительно большими базами/таблицами особенно, когда downtime на большом проекте хочется свести к минимуму, а еще лучше совсем избежать. Вот здесь самые простые операции, как например изменение структуры таблицы может стать более сложной задачей. Наиболее интересные случаи, проблемы, грабли и их решения из личного опыта с которыми нам на проекте Pushwoosh пришлось столкнуться описаны под катом. В статье нет красивых картинок, зато есть много сухого текста.

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

Темная сторона мобильного трафика

Время на прочтение6 мин
Количество просмотров149K
Специально для Хабра мы взяли интервью с представителем “темной стороны” рынка мобильного трафика.
“Вы считаете, что работая с CPA агентствами вы приобретаете хоть сколько нибудь живой трафик? Вы верите в модель CPI? Угадаете долю живого трафика в подобных сетях? На самом деле, доля “серого” трафика намного больше, чем Вы могли подумать."
Интересно?
image
Перейти на темную сторону
Всего голосов 275: ↑228 и ↓47+181
Комментарии135

Автоматический поиск роутеров со стандартными паролями

Время на прочтение4 мин
Количество просмотров61K
Недавно мне пришла в голову банальная мысль, что большинство людей кладут на настройку своих роутеров, и на них можно зайти по дефолтным паролям. А много ли таких роутеров вдобавок открыты для входа из интернета, что делает их проходным двором? И как это по-быстрому проверить?

Итак, задача: просканировать какую-нибудь подсеть и найти уязвимые роутеры.

Условия выполнения: не более нескольких часов (на дворе всё-таки лето), используя только стандартные средства системы Linux. Да, я в курсе про проекты типа Kali и вагоны «хакерского» софта в них, но найти нужную программу, которая сделала бы это прямо «из коробки» мне сходу не удалось, а время-то идёт… Да и интереснее самому.

Первая мысль, которая приходит в голову: сканировать nmap'ом по открытому 80 порту. Но что делать с огромным зоопарком веб-морд? Ведь цель — не написать универсальный комбайн-уничтожитель роутеров, а небольшой proof-of-concept. А нет ли какой-нибудь унифицированной системы авторизации на роутерах? Конечно же есть — Telnet! Начинаем!
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии13

Создание «островка сетевой свободы» на основе VPS за 30 минут

Время на прочтение4 мин
Количество просмотров155K
В связи с вступлением в силу нашумевшего закона 149-ФЗ у многих хабравчан возник вопрос: а что будет дальше? Неужели в России появится аналог Великого Китайского Фаервола, который будет блокировать всё и вся? В данном туториале я хотел бы рассмотреть один из самых эффективных и безопасных способов обеспечения себе свободы информации — собственный VPS сервер, находящийся далеко за границей и связанного с вами с помощью зашифрованного VPN туннеля. В отличие от tor или i2p конфиденциальность передаваемой информации гарантированна, вряд ли кто-то будет пытаться расшифровать ваши данные или устраивать рейд на заграничный сервер (если конечно вы не хакер мирового масштаба).
Читать дальше →
Всего голосов 161: ↑124 и ↓37+87
Комментарии94

Приручаем JMeter

Время на прочтение6 мин
Количество просмотров156K
imageСегодня я хочу рассказать о замечательном инструменте, название которого вынесено в заголовок статьи. Разумеется, моей целью не является написание подробного руководства по Apache JMeter. В своей статье я хочу лишь зафиксировать ряд, на мой взгляд, не очевидных моментов, с которыми мне пришлось столкнуться в своей повседневной работе. Я надеюсь, что моя статья будет полезна (сразу предупреждаю, картинок будет много). 
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии3

Анализ SSL/TLS трафика в Wireshark

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


Как скрыть от посторонних конфиденциальную информацию?
Самое простое – зашифровать.
В Интернет и Интранет-сетях шифрацией данных управляет протокол SSL/TLS.
Солдат спит, служба идет.
Однако иногда возникает необходимость выполнить обратное – расшифровать перехваченный трафик.
Это может потребоваться как для отладки работы приложений, так и для проверки подозрительной сетевой активности.
Или в целях изучения работы SSL/TLS (очевидные, вредоносные цели не обсуждаются).

Как и при каких условиях можно расшифровать дамп SSL/TLS трафика в Wireshark?
Попробуем разобраться.

Читать дальше →
Всего голосов 48: ↑45 и ↓3+42
Комментарии16

Targetix — разработка full-stack RTB технологий

Время на прочтение3 мин
Количество просмотров11K
Здравствуйте.
Мы — группа разработки Targetix, и мы занимаемся разработкой всего, что имеет отношение к автоматизированным системам закупки рекламы на просторах интернета. Сразу оговорюсь, что статья ознакомительная, пробежимся по верхам, а детальные разборы отдельных моментов to be continued…
image
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии33

Черная археология дата майнинга

Время на прочтение4 мин
Количество просмотров28K
Есть темы, по которым очень мало статей по специальности data science, но которые представляют интерес для специалистов по безопасности. Это статистические исследования логинов и паролей пользователей – данные, добытые «черными археологами» дата майнинга.

image

Мне было интересно посмотреть некоторые закономерности и для этой цели я взял базу данных паролей, утёкших в 2014 году – от Яндекса, Гугла и Мейлру, объемом 6 миллионов записей.
Читать дальше →
Всего голосов 27: ↑19 и ↓8+11
Комментарии36

node.js для Java-разработчиков: первые шаги

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


У опытного программиста, сталкивающегося с новой технологией для решения конкретной прикладной задачи, сразу возникает множество практических вопросов. Как правильно установить платформу? Где и что будет лежать после установки? Как создать каркас проекта, как он будет структурирован? Как разбивать код на модули? Как добавить библиотеку в проект? Где вообще взять готовую библиотеку, которая делает то, что нужно? Как и в чём отлаживать код? Как написать модульный тест?

Ответы на эти вопросы можно при желании легко найти в сети, но придётся перечитать дюжину статей, и на каждый вопрос ответов будет, скорее всего, несколько. Некоторое время назад мне понадобилось написать небольшой туториал по node.js, который бы позволил быстро запустить разработку и познакомить новых программистов в проекте с этой технологией. Рассчитан он на опытных Java-разработчиков, которые и язык JavaScript хорошо знают, но node.js как платформа для бэкэнда для них в новинку.

Думаю, что данная статья будет полезна не только разработчикам из мира Java, но и всем, кто начинает работу с платформой node.js.


Читать дальше →
Всего голосов 39: ↑26 и ↓13+13
Комментарии107

Sublime Text 3 — пользовательская подсветка синтаксиса

Время на прочтение4 мин
Количество просмотров71K
Расширяемость Sublime Text не знает границ. Для тех, кому мало стандартных функций, на Хабре уже рассказывали о том, как создать сниппет, как написать простой плагин, как написать сложный плагин и еще много много чего. Про ручную настройку подсветки синтаксиса толком ничего не смог найти: для кого-то слишком очевидно, кому-то просто не нужна, а кому-то и наверняка же пригодится.

Итак, задача: имея какие-нибудь абстрактные логи доступа в wonder-net:

!->14/02 16:44:22 [134.249.51.251:39951>80] (t1 19) >HTTP  in:504 out:34  Time:156
GET /516874233**21893/ HTTP/1.1 SCOD=00
!->14/02 16:44:24 [134.249.51.251:49507>80] (t1 20) 
GET /44058858**409377/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 22) 
GET /41494377**562173/ HTTP/1.1 SCOD=00
!->14/02 16:54:11 [195.18.13.107:1721>80] (t2 23) >HTTP  in:385 out:10138  Time:156
GET /5211537**1172048/ HTTP/1.1 SCOD=00
!->14/02 16:54:24 [195.18.13.107:1727>80] (t1 30) >HTTP  in:423 out:1220  Time:187
GET /5211537**6447554/ HTTP/1.1 SCOD=23
!->14/02 18:07:24 [82.145.208.159:43634>80] (t2 52) 
GET /4149437**8265377/ HTTP/1.1 SCOD=00
!->14/02 18:09:41 [82.145.208.174:41708>80] (t2 61) 
GET /4149497**5750155 / HTTP/1.1 SCOD=00
!->14/02 18:51:39 [82.145.210.33:55210>80] (t1 66) >HTTP  in:543 out:34  Time:0
GET /5168757**9478487/ HTTP/1.1 SCOD=00
!->14/02 18:51:40 [82.145.210.33:55332>80] (t1 68) >HTTP  in:544 out:1243  Time:141
GET /4149497**0456701 / HTTP/1.1 SCOD=00
!->14/02 18:51:46 [82.145.210.33:57345>80] (t1 73) >HTTP  in:544 out:1243  Time:125
GET /5168742**0521893/ HTTP/1.1 SCOD=00

выделить:
Дату-время — фиолетовым курсивом;
Номер карты — желтым курсивом, если не в черном списке или красным, если иначе;
ip-адрес — темно-зеленым, если не в черном списке или красным, если иначе;
scod=хх — темно-зеленым если 00 или красным, если иначе.
Приступим
Всего голосов 41: ↑38 и ↓3+35
Комментарии20

Chatbot на нейронных сетях

Время на прочтение5 мин
Количество просмотров60K
Недавно набрел на такую статью. Как оказалось некая компания с говорящим названием «наносемантика» объявила конкурс русских чатботов помпезно назвав это «Тестом Тьюринга»». Лично я отношусь к подобным начинаниям отрицательно — чатбот — программа для имитации разговора — создание, как правило, не умное, основанное на заготовленных шаблонах, и соревнования их науку не двигают, зато шоу и внимание публики обеспечено. Создается почва для разных спекуляций про разумные компьютеры и великие прорывы в искусственном интеллекте, что крайне далеко от истины. Особенно в данном случае, когда принимаются только боты написанные на движке сопоставления шаблонов, причем самой компании «Наносемантика».

Впрочем, ругать других всегда легко, а вот сделать что-то работающее бывает не так просто. Мне стало любопытно, можно ли сделать чатбот не ручным заполнением шаблонов ответа, а с помощью обучения нейронной сети на образцах диалогов. Быстрый поиск в Интернете полезной информации не дал, поэтому я решил быстро сделать пару экспериментов и посмотреть что получится.
Читать дальше →
Всего голосов 28: ↑24 и ↓4+20
Комментарии9

Полная энергетическая автономия или как выжить с солнечными батареями в глубинке (часть 6. Дачник Edition)

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


Глядя на Яндекс.Карты в пятницу вечером, можно с уверенностью утверждать, что дачный сезон начался. В преддверии майских праздников это чувствуется особенно остро. А на даче главное что? Нет, не рассада и соседская газонокосилка. На даче главное — покой. Этот покой поможет обеспечить заранее грамотно спланированная энергосистема, зарезервированная от поломок сетей или вообще автономная. В этой статье я, как и обещал, сделаю обзор трех своих солнечных контроллеров, а во второй половине отвечу на массу вопросов, которая накопилась за 6 статей. На какие-то вопросы я отвечал в комментариях, о чем-то обещал рассказать позже. Самое главное, что в этой статье Вы найдете ответы на вопрос: «Как сделать так, чтобы было электричество?» и больше не возвращаться к этому пункту.



Кнопка
Всего голосов 29: ↑27 и ↓2+25
Комментарии10

26 полезных советов из области email-маркетинга от самых успешных компаний со всего мира

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


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

Конверсии просто так не происходят; также и электронные письма сами по себе не приносят результата. Эти 26 советов опираются на опыт ведения email-маркетинга нескольких наиболее успешных компаний со всего мира.
Читать дальше →
Всего голосов 17: ↑12 и ↓5+7
Комментарии7

Антифрод. Быстро, дешево… отлично (часть 1)

Время на прочтение6 мин
Количество просмотров48K
Эта статья представляет собой описание эксперимента по созданию системы обнаружения мошеннических платежей по банковским картам.

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

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

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

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

Get Started!


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

Не менее интенсивно растет количество мошеннических операций и разнообразие видов мошенничества. Россия, наряду с Англией, Францией, Германией, Испанией, входит в топ-5 европейский стран по годовому объему мошеннических операций с банковским картами. Общий объем потерь от мошенничества по картам в 2013 году в Европе превысило 1 млрд. евро. На Россию приходится 110 млн. евро, из них 2,4 млн. евро мошенничество при оплате через интернет.

Полная цепочка участников проведения online-платежа при покупке товара/услуги через интернет в общем случае выглядит приблизительно так:

Online Payment Flow

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

Аквапоника своими руками с применением микроконтроллера

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

Всем привет. Как-то на просторах Интернета мне попался интересный американский проект. Суть проекта в том, что можно выращивать различные агрокультуры, используя не почву, а, так сказать, симбиоз рыб с растениями. Получается замкнутый цикл. Вы кормите и выращиваете рыб, их продукты жизнедеятельности, растворённые в воде, являются питательной средой для растений. А эти растения, получая питательные вещества для роста из воды, очищают её. Весь процесс повторяется по кругу. Данный метод называется «аквапоника».
Читать дальше →
Всего голосов 112: ↑112 и ↓0+112
Комментарии122

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

Время на прочтение15 мин
Количество просмотров28K
No Fraud

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

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

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

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

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

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

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

Цель


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

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии6

Настраиваем OpenVPN на Linux Server'e с авто-подключением iOS устройств за 5 минут

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

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

Сегодня я расскажу о том, как за 5 минут настроить работающий VPN On Demand на iOS устройстве при наличии своего Linux сервера.
VPN On Demand — VPN Который подключается по запросу / переподключается при разрыве

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

Стальной манипулятор HEXAPOD

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

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

Читать дальше →
Всего голосов 91: ↑88 и ↓3+85
Комментарии26

MMORPG без лишних деталей: год спустя

Время на прочтение2 мин
Количество просмотров20K
Здравствуй, сообщество.

Прошёл год, с моего рассказал о нашей независимой браузерке: MMORPG без лишних деталей. За этот год произошло много разных событий, которые тебе, сообщество, не интересны — мало ли кто что в своей игрушке делает. Поэтому рассказывать о них я не буду.

Расскажу лучше о трёх вещах, которые тебя точно заинтересуют: о нашей статистике, оригинальном генераторе текста и общедоступном API.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии1

Информация

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