Что-то меня пробило на написание заметок последнее время, поэтому пока энтузиазм не спал раздаю долги.
Год назад я пришёл на хабр со статьёй "TCP(syn-flood)-netmap-generator производительностью 1,5 mpps", после которой многие писали и даже звонили с просьбой описать создание такой же «вилки» со спуффингом на максимуме возможностей 10GB сети. Я всем обещал, а руки всё не доходили.
Кто-то скажет, что это руководство для хакеров, но ведь свинья грязи найдёт, а те кому нужен этот инструмент в благонадёжных целях могу остаться ни с чем.
Архив за 14 июля 2014 - 5
SYN-флудим со спуффингом на 14 mpps или нагрузочная вилка V 2.0
2014-07-14 в 10:58, admin, рубрики: ddos, syn-flood, высокая производительность, системное администрированиеМастер-класс Адама Бина «Java EE: Архитектура, шаблоны и решения»: отзывы и впечатления участников
2014-07-14 в 10:50, admin, рубрики: adam bien, java, java ee, javascript, workshop, Адам Бин, архитектура Java-приложений, Блог компании Luxoft3 и 5 июня прошел мастер-класс в онлайн-формате «Java EE: Архитектура, шаблоны и решения» Адама Бина.
Адам Бин – Java Champion, Top Java Ambassador и JavaOne Rock Star – предложил аудитории практикум по проектированию архитектуры Java-приложений масштаба предприятия.
Адам Бин показал, как проектировать архитектуру Java-приложений масштаба предприятия и кластеров приложений.
Слушателям было предложено поработать с исходным кодом программы и принять участие в обсуждении краеугольных понятий, необходимых для того, чтобы научиться проектировать сопровождаемые системы.
В ходе мастер-класса был написан код для самых интересных частей решения. Читать полностью »
Многие не знают о тех мощных параметрах командной строки, что понимает интерпретатор Ruby. Они показывают как сильное влияние оказал на язык Perl и что Ruby отличный интсрумент общего назначения для командной строки.
Пусть есть задача обновить некоторые текстовые файлы, которые используются у нас в проекте. Данные выглядят как CSV, но так же содержат комментарии. Нам нужно отфильтровать некоторые записи по стране. Вот пример файла:
Читать полностью »
Эффективная многопоточность в Python
2014-07-14 в 10:34, admin, рубрики: django, futures, python, threads, многопоточностьХочу поделиться простым рецептом, как можно эффективно выполнять большое число http-запросов и других задач ввода-вывода из обычного Питона. Самое правильное, что можно было бы сделать — использовать асинхронные фреймворки вроде Торнадо или gevent. Но иногда этот вариант не подходит, потому что встроить event loop в уже существующий проект проблематично.
В моем случае уже существовало Django-приложение, из которого примерно раз в месяц нужно было выгрузить немного очень мелких файлов на AWS s3. Шло время, количество файлов стало приближаться к 50 тысячам, и выгружать их по очереди стало утомительным. Как известно, s3 не поддерживает множественное обновление за один PUT-запрос, а установленная опытным путем максимальная скорость запросов с сервера ec2 в том же датацентре не превышает 17 в секунду (что очень не мало, кстати). Таким образом, время обновления для 50 тысяч файлов стало приближаться к одному часу.
Питонисты с детства знают, что от использования потоков (тредов операционной системы) нет никакого толка из-за глобального лока интерпретатора. Но немногие догадываются, что как и любой лок, этот время от времени освобождается. В частности, это происходит при операциях ввода-вывода, в том числе и сетевых. А значит, потоки можно использовать для распараллеливания http-запросов — пока один поток ожидает следующего ответа, другой спокойно обрабатывает результат предыдущего или готовит следующий.
Получается, всего-то нужен пул потоков, который будет выполнять запросы. К счастью, такой пул уже написан. Начиная с версии 3.2 для унификации всей асинхронной работы в Питоне появилась библиотека concurrent.futures
. Для второй версии Питона есть бекпорт под именем futures. Код до безобразия прост:
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(concurrency) as executor:
for _ in executor.map(upload, queryset):
pass
Здесь concurrency
— число рабочих потоков, upload
— функция, выполняющую саму задачу, queryset
— итератор объектов, которые по одному будут передаваться в задачу. Уже этот код при concurrency в 150 смог пропихнуть на сервера Амазона ≈450 запросов в секунду.Читать полностью »
Weka проект для задачи распознавания тональности (сентимента)
2014-07-14 в 10:10, admin, рубрики: open source, weka, Алгоритмы, машинное обучениеЭто перевод моей публикации на английском языке.
Интернет полон статьями, заметками, блогами и успешными историями применения машинного обучения (machine learning, ML) для решения практических задач. Кто-то использует его для пользы и просто поднять настроение, как эта картинка:
Правда, человеку, не являющемуся экспертом в этих областях, подчас не так просто подобраться к существующему инструментарию. Есть, безусловно, хорошие и относительно быстрые пути к практическому машинному обучению, например, Python-библиотека scikit. Кстати, этот проект содержит код, написанный в команде SkyNet (автору довелось быть её лидирующим участником) и иллюстрирующий простоту взаимодействия с библиотекой. Если вы Java разработчик, есть пара хороших инструментов: Weka и Apache Mahout. Обе библиотеки универсальны с точки зрения применимости к конкретной задаче: от рекомендательных систем до классификации текстов. Существует инструментарий и более заточенный под текстовое машинное обучение: Mallet и набор библиотек Stanford. Есть и менее известные библиотеки, как Java-ML.
В этом посте мы сфокусируемся на библиотеке Weka и сделаем проект-заготовку или проект-шаблон для текстового машинного обучения на конкретном примере: задача распознавания тональности или сентимента (sentiment analysis, sentiment detection). Несмотря на всё это, проект полностью рабочий и даже под commercial-friendly лицензией, т.е. при большом желании вы можете даже применить код в своих проектах.Читать полностью »
Акселератор Qiwi Universe вместе с бизнес-инкубатором МГУ отобрал 12 проектов, которые получат больше $700 тысяч и пройдут акселерационную программу, сообщает компания в своем пресс-релизе.
Разработка игр под Android
2014-07-14 в 9:57, admin, рубрики: android, ebook, Блог компании Издательский дом «Питер», издательство питер, Программирование, разработка игр под android, Разработка под android, электронные книги
Всем привет! В нашем издательстве только что вышла книжка «Разработка игр под Android» авторства Дж Ди Марцио (J. F. DiMarzio), она же — «Android Game Recipes». Как видно из названия — данное компактное издание представляет собой не только пошаговое руководство для тех, кто только собирается начать писать игры под Android, но и полноценный cookbook, с решениями проблем и ответами на распространенные вопросы. Стоит отметить, что книга написана как помощник в решении конкретных вопросов и сценариев в процессе разработки игры, и подразумевает знакомство читателя с Java.
Читать полностью »
Базовая настройка Juniper серии SRX
2014-07-14 в 9:54, admin, рубрики: juniper srx, system administration, Сетевое оборудование, Сетевые технологии, системное администрированиеЗдесь уже есть несоклько статей про настройку маршрутизаторов Juniper SRX (например, раз, два, три и т.д.). В этой я постараюсь консолидировать полезную информацию, дополнив ее некоторыми приятными мелочами.
Всех заинтересовавшихся прошу под кат.
Читать полностью »
В помощь школьному сисадмину
2014-07-14 в 9:50, admin, рубрики: traffic inspector, Блог компании Smart-Soft, сеть, школаИнформатизация образования, школа будущего, федеральная целевая программа развития образования… Эти и подобные заголовки, использующиеся как лозунги, встречаются все чаще и чаще. И вроде бы, что-то даже делается. Школам поставляют оборудование (пусть и немного), программное обеспечение, их подключили к Интернету. Однако все эти благие начинания сталкиваются с катастрофической нехваткой нормальных специалистов, которые могли бы решить все возникающие в ходе информатизации школ проблемы. Может быть, для Москвы и Питера это и не столь критично. Но в регионах до сих пор во многих школах обязанности сисадмина выполняет учитель информатики (если он вообще есть в школе). А если и есть отдельный специалист, то это либо приходящий пару раз в неделю человек, либо студент, просто подрабатывающий параллельно учебе.
К чему весь этот разговор? А к тому, что если школы своими силами могут справиться с некими обычными ИТ-проблемами, то решение других задач может оказаться им не по зубам. Взять хотя бы требования к защите обучающихся от доступа к нежелательной информации. О том, что это нужно сделать, всем школам объявили (да и в законах это прописано). И о том, что за этим пристально следит прокуратура и наказывает «нарушителей» тоже (а многие школы это уже испытали «на своей шкуре»). Но вот о том, КАК это сделать, никто не говорит. По сути, школы предоставлены сами себе. И решают проблему контроля доступа детей к нежелательным сайтам как могут. А поскольку «можется» далеко не всегда хорошо (см. написанное выше), то у прокуратуры постоянно находится, кого «публично выпороть» и оштрафовать.
Предлагаем решение – серию видеоуроков, в которых максимально подробно расписан процесс настройки прокси-сервера Traffic Inspector для защиты школьников от нежелательной информации. Просмотрев их, можно самостоятельно выполнить все необходимые действия и создать надежную систему защиты, которая будем удовлетворять всем действующим нормативным актам.
В первом рассматривается процесс создания «черного» и «белого» списков. В нем подробно показано, как можно запретить доступ к определенным веб-проектам или, наоборот, запретить загрузку вообще всех сайтов, кроме явно указанных.