Pull to refresh
0
0
G3N1USS @G3N1USS

User

Создание и тестирование Firewall в Linux, Часть 2.1. Введение во вторую часть. Смотрим на сеть и протоколы. Wireshark

Reading time 4 min
Views 16K
Содержание первой части:


Содержание второй части:

2.1 — Введение во вторую часть. Смотрим на сеть и протоколы. Wireshark.
2.2 — Таблицы Firewall. Transport Layer. Структуры TCP, UDP. Расширяем Firewall.
2.3 — Расширяем функциональность. Обрабатываем данные в user space. libnetfilter_queue.
2.4 — Бонус. Изучаем реальную Buffer Overflow атаку и предотвращаем с помощью нашего Firewall'а.
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 4

[ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

Reading time 9 min
Views 85K
Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
Читать дальше →
Total votes 158: ↑149 and ↓9 +140
Comments 15

[ В закладки ] Зоопарк архитектур нейронных сетей. Часть 1

Reading time 10 min
Views 89K


Это первая часть, вот вторая.
За всеми архитектурами нейронных сетей, которые то и дело возникают последнее время, уследить непросто. Даже понимание всех аббревиатур, которыми бросаются профессионалы, поначалу может показаться невыполнимой задачей.

Поэтому я решил составить шпаргалку по таким архитектурам. Большинство из них — нейронные сети, но некоторые — звери иной породы. Хотя все эти архитектуры подаются как новейшие и уникальные, когда я изобразил их структуру, внутренние связи стали намного понятнее.
Читать дальше →
Total votes 51: ↑50 and ↓1 +49
Comments 14

Глубинное обучение: возможности, перспективы и немного истории

Reading time 7 min
Views 20K
Последние несколько лет словосочетание «глубинное обучение» всплывает в СМИ слишком часто. Различные журналы вроде KDnuggets и DigitalTrends стараются не упустить новости из этой сферы и рассказать о популярных фреймворках и библиотеках.

Даже популярные издания вроде The NY Times и Forbes стремятся регулярно писать о том, чем заняты ученые и разработчики из области deep learning. И интерес к глубинному обучению до сих пор не угасает. Сегодня мы расскажем о том, на что способно глубинное обучение сейчас, и по какому сценарию оно будет развиваться в будущем.



/ фото xdxd_vs_xdxd CC
Читать дальше →
Total votes 21: ↑16 and ↓5 +11
Comments 3

Batch Normalization для ускорения обучения нейронных сетей

Reading time 5 min
Views 67K

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


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


В какой-то момент, знакомясь с представленным в 2015 году методом Batch Normalization от компании Google мне, для решения задачи связанной с распознаванием лиц, удалось существенно улучшить скорость работы нейросети.



За подробностями прошу под кат.

Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 3

Понимание сборки мусора и отлов утечек памяти в Node.js

Reading time 7 min
Views 33K
Плохие отзывы в прессе о Node.js часто относятся к проблемам с производительностью. Это не значит, что с Node.js больше проблем, чем с другими технологиями. Просто пользователь должен иметь в виду некоторые особенности её работы. Хотя у технологии пологая кривая обучения, обеспечивающие её работу механизмы довольно сложные. Необходимо понять их, чтобы предотвратить появление ошибок производительности. И если что-то пойдет не так, необходимо знать, как быстро привести всё в порядок. В этой статье Даниэль Хан рассказывает о том, как Node.js управляет памятью и как отследить связанные с памятью проблемы.


Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Comments 4

Установка и запуск Android-приложений на Linux

Reading time 1 min
Views 186K
image

Как известно, многие Android-приложения можно нативно запускать на Chrome OS благодаря библиотеке Chrome App Runtime.

С помощью расширений chromeos-apk и ARChon запуск Android APK стал возможен и на других ОС.

В этой публикации я расскажу, как установить произвольное Android-приложение на Ubuntu 14.04.
Читать дальше →
Total votes 30: ↑26 and ↓4 +22
Comments 29

Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

Reading time 12 min
Views 160K

Вступление


Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

Надеюсь что эта статья будет полезна:
1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
2. Профессионалам, которые хотят закрыть «дыры» и пробелы
3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Total votes 86: ↑81 and ↓5 +76
Comments 64

Введение в разработку слайд-шоу на JavaScript

Reading time 26 min
Views 86K
В этой статье мы опишем основные принципы построения слайд-шоу на JavaScript, то, из чего они строятся (HTML, CSS, JavaScript) и техники, которые используются при их создании.

JS-код будет представлен в двух видах – ванильном и jQuery. Это сделано специально, чтобы подчеркнуть: в современных браузерах даже простой JS можно прекрасно использовать, особенно комбинируя его с анимациями и переходами CSS. jQuery хорош, если нам не хочется волноваться насчёт несовместимостей браузеров или использовать более простой API. Предоставленный код преследует лишь в демонстрационные цели.

В примерах с ванильным JS я использую простейший метод инициализации объектов, init(). Этот метод занимается вызовом нужного кода для создания экземпляра объекта через new. В этой ветке на Stack Overflow всё объясняется подробнее. Почему объекты, а не функции? Для ответа на этот вопрос понадобилась бы отдельная статья – но, в общем, просто чтобы код был более организованным и простым для повторного использования.
Читать дальше →
Total votes 19: ↑15 and ↓4 +11
Comments 6

DDoS, в поисках силы

Reading time 4 min
Views 21K
Думаю, многие слышали о DNS amplification и NTP amplification атаках. Много было написано про эти два частных случая UDP-based Amplification атак. Какие ещё протоколы могут быть использованя для усиления? В этом контексте в статье предлагаю рассмотреть протокол tftp.

Давайте вернемся немного назад и вспомним, что представляет собой UDP-based Amplification атаки. Вся реализация сводится к двум пунктам:

  • 1) Отправка на уязвимый сервис специального UDP пакета с поддельным адресом отправителя (адресом жертвы
  • 2) Ответ сервиса на адрес жертвы пакетом в разы превышающим размер первоначального.

Таким образом, получается, что каждый отправленный нами бит к жертве приходит «усиленным» на коэффициент. Вот список протоколов и их коэффициентов усиления по версии us-cert.gov:



Это далеко не полный список, существуют и другие «интересные» протоколы, например, tftp. Ему и будет далее посвящена моя статья.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 9

Трёхмерный фон для сайта в реальном времени на JavaScript при помощи three.js

Reading time 5 min
Views 37K


Обучающий материал с ресурса Phyramid, у которых именно такая шапка сайта.



Обновив в 2014 свой сайт, мы сделали трёхмерный фон в шапке, состоящий из геометрических фигур в 3D Max. Но потом мы подумали, что было бы гораздо круче генерить его в реальном времени на JS. Сказано – сделано, и при помощи замечательного фреймворка three.js мы сделали простенькую сценку. И вот, как это было.

Замечание по стилю кода: мы сначала хотели использовать только функциональный стиль, но из-за особенностей веба и работы алгоритма переключились на ООП.
Читать дальше →
Total votes 31: ↑27 and ↓4 +23
Comments 10

Выразительный JavaScript: Проект: программа Paint

Reading time 16 min
Views 40K

Содержание




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

Жоан Миро


Материал предыдущих глав даёт вам всё необходимое для создания простого веб-приложения. Именно этим мы и займёмся.

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


Простая программа рисования
Читать дальше →
Total votes 42: ↑39 and ↓3 +36
Comments 3

Измерение пропускной способности Ethernet канала

Reading time 4 min
Views 139K
Возникла задача измерить пропускную способность Ethernet канала и предоставить отчет, причем измерения нужно проводить 24 часа. Какими способами это можно сделать?

Чем


  • Сервис speedtest.net — измеряет ширину канала Интернет до некого сервера. Нам не подходит так как данный сервис меряет не конкретный канал связи, а всю линию до определенного сервера, так же измеряемый канал связи не имеет выхода в Интернет;
  • Скачать объемный файл из одного конца канала в другой. Не совсем подходит так как отсутствует необходимая точность измерения;
  • Iperf — клиент-серверная утилита, позволяющая проводить измерения заданное время с предоставлением простенького отчета. С ней мы сейчас и поработаем.

Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Comments 24

Вёрстка визитных карточек в LaTeX

Reading time 6 min
Views 22K
Доброго всем дня!

На хабре уже немало статей о том, как и где применяется вёрстка в LaTeX. От стандартных научных статей и презентаций до календарей и резюме.

Основным достоинством LaTeX изначально являлось освобождение пишущего от необходимости думать о расположении текста на страничке: автор пишет контент, а движок размещает всё в нужных местах.

Отсюда непреодолимое желание начать сверлить пилой и пилить буравчиком решить при помощи LaTeX задачу, требующую полного контроля расположения текста на странице. Классический пример — вёрстка визиток, которой мы и займёмся.
Читать дальше →
Total votes 27: ↑21 and ↓6 +15
Comments 21

Фильмы IT-тематики

Reading time 2 min
Views 15K
imageВ свое время, в 1995-ом году, на меня произвел впечатление фильм «Хакеры». Можно
сказать, он стал мотиватором моей дальнейшей ИТ-карьеры. Далеко не эталон киноискусства, однако
стремление стать похожим на героев фильма, продолжилось в самообразовании. Далее первый выклянченный компьютер, первые строчки кода, начало проб и ошибок. Когда уже были написаны эти самые «хэлоу-ворды», «калькуляторы», затем испробованы несколько *nix'ов — на руки попалась болванка с «Antitrust». В одноголосном переводе и гиблом качестве. К слову, это не помешало, пересмотреть фильм пару десятков раз. Что послужило более зрелому стремлению, чем быть всемогущим кул-хакером. Под катом, перечислю увиденные мной фильмы IT-тематики, с кратким описанием. В основном из двухтысячных. Неувиденное или забытое, будем добавлять.

Читать дальше →
Total votes 227: ↑191 and ↓36 +155
Comments 210

Нейронные сети. Часть 1. Основы искусственных нейронных сетей

Reading time 6 min
Views 145K
Доброго времени вам суток, уважаемое Хабрасообщество.

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

UPD: данный текст в основном является обобщением из прочитанной литературы. Он не написан мною лично. По крайней мере эта часть.
UPD2: Скорей всего продолжения данной темы не будет, так как хабрапользователь stepan_ovchinnikov, который является смотрителем данного блога, считает, что нет смысла писать здесь то, что можно прочитать из многочисленной литературы, которая есть по нейронным сетям. Так что извините.

Возможно первая часть будет в чем-то похожа на предыдущий пост хабрапользователя Kallisto, но я считаю, что стоит более детально рассмотреть строение искусственного нейрона, у меня есть, что добавить, ну и, плюс ко всему, я хочу написать полноценную и законченную серию постов про нейросети, не опираясь на уже написанное. Надеюсь вам будет полезен данный материал.
Ну что, всем, кому интересно, прошу под кат
Total votes 73: ↑65 and ↓8 +57
Comments 59

Преобразование текста в речь на Android

Reading time 2 min
Views 33K
Android предоставляет полезную функцию, которая преобразовывает текст в речь (TTS), и воспроизводит текст на разных языках. Это руководство объясняет, как создать данную функцию. В этом уроке я также объясню, как изменить тип языка, громкость и уровень скорости.

Исходники

Ниже я представил видео конечного результата.



Читать дальше →
Total votes 14: ↑8 and ↓6 +2
Comments 5

Делаем загрузочно-установочную флешку

Reading time 2 min
Views 773K
После поста о восстановлении флешек, оказалось, что у многих теперь есть рабочие, бесхозные флешки, которые обязательно нужно задействовать. Почему бы не сделать из них загрузочные флешки с дистрибутивами необходимых ОС? Это может здорово пригодиться при установке/переустановке операционных систем на нетбуки, где отсутствуют приводы оптических носителей. А иногда может даже ускорить процесс установки и сделать его намного тише на компьютере, где привод есть.
Хотя на Хабре уже описывались варианты создания загрузочных флешек, но вариант, который предлагаю я — слишком прост и по своему универсален, чтобы обойти его стороной.

image
Читать дальше →
Total votes 161: ↑142 and ↓19 +123
Comments 54

Восстанавливаем флешки

Reading time 4 min
Views 878K
Хотя со временем флешки становятся все дешевле и объемнее это не значит, что при любом сбое ее можно выбросить и приобрести другую. Хотя многие именно так и делают, даже на задумываясь о том, что ситуацию еще можно спасти. В свое время мы тряслись за каждую флоппи-дискету, почему же не поковыряться и с флешкой, чтобы дать ей вторую или даже не третью жизнь. Думаю, у многих в столе рядом с компьютером найдется какая-нибудь «мертвая» флешка-брелок, которую выбросить жалко из-за того, что она красивая или, хотя бы потому, что какое-то время назад она была полезна. Конечно, иногда флешки «умирают» раз и навсегда, но зачастую они находятся в состоянии «клинической смерти», а как известно, такое состояние обратимо.

image
Читать дальше →
Total votes 182: ↑175 and ↓7 +168
Comments 138

Краткое введение в SIM-карты

Reading time 6 min
Views 218K
Когда на вопрос «кем вы работаете?» я отвечал «разработчиком ПО для SIM-карт», даже технически подкованные люди частенько удивлялись. Многие думают, что SIM-карта это «что-то типа флешки».

В этой статье я постараюсь кратко рассказать что такое SIM-карта (и смарт-карты в общем), зачем она нужна и что у нее внутри.

На самом деле SIM-карта — это частный случай контактной смарт-карты с микропроцессором. По сути, представляет из себя достаточно защищенный микрокомпьютер с CPU, ROM (опционально), RAM и NVRAM (которая выступает в качестве аналога жесткого диска в PC), с аппаратными генераторами случайных чисел и аппаратной реализацией крипто-алгоритмов.

В некотором приближении архитектуру микропроцессорной смарт-карты можно представить так:
Архитектура смарт-карты

Читать дальше →
Total votes 474: ↑470 and ↓4 +466
Comments 180

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity