Pull to refresh
3
0

Пользователь технологий

Send message

Сегодня стать ZCPE может каждый

Reading time2 min
Views5.8K
Пользуясь случаем, хотелось бы лишний раз напомнить о существовании сертификации PHP инженеров. На дворе уже 2018й и мир увидела PHP 7.2, сертификация постоянно обновляется. Текущая версия: ZCPE-2017. Получить сертификат сейчас, или все же дождаться выхода обновленной версии — решать вам.
Читать дальше →

Вся правда о linux epoll

Reading time10 min
Views60K

Ну или почти вся...



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


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


Anyone can wield an axe, but it takes a true warrior to make it sing melees melody.

Я предполагаю, что читатель знаком с epoll, по крайней мере прочел страницу man. О epoll, poll, select написано достаточно много, чтобы каждый кто разрабатывал под Linux, хоть раз о нем слышал.

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

Беспроводная HD-видеокамера без батарейки

Reading time4 min
Views20K

ASIC беспроводной HD-видеокамеры. Фото: Вашингтонский университет

Обратное рассеяние (backscattering) — физическое явление, при котором происходит отражение волн, частиц или сигналов в обратном направлении, то есть в сторону источника. Оно традиционно используется в астрономии, фотографии и УЗИ. Но оказывается, что это явление можно использовать для электроники, сенсоров и радиопередатчиков.

В лаборатории сенсорных систем Вашингтонского университета разработали HD-видеомодуль, который передаёт видеопоток 720p и 1080p на 60 FPS с энергопотреблением 321 и 806 мкВт, соответственно. Это в 1000−10000 раз меньше, чем у существующих беспроводных камер. Другими словами, модулю вполне хватит энергии, извлекаемой из окружающей среды (WiFi, свет, вибрация, разница температур, излучение СВЧ и проч.).

Этого удалось добиться за счёт устранения из устройства «лишней» электроники, в том числе АЦП и видеокодера. Сигнал с сенсора передаётся в аналоговом виде через широтно-импульсный модулятор с обратным рассеянием.
Подробнее

Заряжаем АА, ААА и другое цилиндрическое и аккумуляторное

Reading time10 min
Views325K
На ныне покойном Geektimes есть (или был) блог Gearbest и он был (или есть) уныл. Их маркетологи зачем-то раз за разом втюхивают одни и те же телефоны и планшеты, тогда как на сайте (впрочем, как и на Ali) есть куча других отличных товаров для гиков. Поэтому, можно я поделюсь своими маленькими китайскими открытиями?



У меня есть дети. Дети = выброшенные батарейки. Т.е. там есть еще промежуточные звенья типа больших роботов, мечей, орущих робокошек, которые катаются по дому и мерцают как мечта эпилептика и так далее. Но все приводит к одному — выброшенным батарейкам.

Благодаря Алексею Надежину мы уже знаем, что лучшими по соотношению цена/емкость являются либо батарейки Ikea и Ашан, либо GP Super. Тем, собственно и жили.
UPD: в комментариях указали, что Алексей провел новое исследование. С учетом обновления цен до текущих, получается, что лучше выглядят батарейки Pairdeer и Lexman из Леруа Мерлен. Ну и опять же Ашан.
Однако, вывалив в специальный контейнер очередную порцию дохлых батареек и испытав на себе полуночный плач ярославны о том, что любимая кукла не работает, пришел к простому выводу — пора переходить на аккумуляторы. Причем, если будут аккумуляторы, неплохо бы их как-то еще и заряжать. Полез гуглить простые зарядки и тут мне открылся “о дивный новый мир”.
Читать дальше →

Fail2ban 0.10: Новые возможности. Тест открыт

Reading time3 min
Views20K

Это анонс новой версии fail2ban (пока тестовая альфа-ветка), в которой помимо многих других улучшений и вкусностей, хоть и с опозданием, все же появилась давно запланированная поддержка IPv6.
Время, будь оно не ладно — летит с бешеной скоростью.

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

RabbitMQ tutorial 2 — Очередь задач

Reading time7 min
Views226K


В продолжение первого урока по изучению азов RabbitMQ публикую перевод второго урока с официального сайта. Все примеры, как и ранее, на python, но по-прежнему их можно реализовать на большинстве популярных ЯП.
Читать дальше →

phpDaemon — фреймворк асинхронных приложений

Reading time6 min
Views45K
Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Читать дальше →

Symfony + RabbitMQ Быстрый старт для молодых

Reading time9 min
Views62K
Всем доброго времени суток, друзья.

Сегодня захотелось поговорить о том, как можно работать с RabbitMQ в Symfony и совсем чуть-чуть о некоторых подводных комнях. В конце я напишу парочку интересных моментов о кролике (рус. перевод «rabbit») для тех, кто совсем в танке.

Я не буду рассказывать про сам RabbitMQ, поэтому если вы пока и этого не знаете, почитайте следующие переводы:

Статья 1
Статья 2
Статья 3
Статья 4
Статья 5

Не бойтесь примеров на перле или пайтоне — это не страшно, все достаточно понятно из исходного кода.

+ Все достаточно подробно описано, когда я читал это в свое время, достаточно было интерпретировать код мысленно, чтобы понять как что и зачем.

Если вы уже знаете, что такое консумер и почему в нем нужно делать $em->clear() + gc_collect_cycles, а после закрывать соединение с базой данных, то, скорее всего, вы ничего нового для себя не узнаете. Статья скорее для тех, кто не хочет разбираться с AMQP протоколом, но которым нужно прямо сейчас применять очереди и выбор почему-то бездумно пал на RabbitMQ, а не тот же легковесный beanstalkd.

Если же у вас микросервисная архитектура и вы ждете, что я расскажу вам как сварить коммуникацию между компонентами через AMQP, как красиво делать RPC, то я сам чего-то подобного очень давно жду на Хабре…
Читать дальше →

Демоны на PHP

Reading time4 min
Views76K
Памятка начинающему экзорцисту.

Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.

Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
  • Запускаться из консоли и отвязываться от неё
  • Всю информацию писать в логи, ничего не выводить в консоль
  • Уметь плодить дочерние процессы и контролировать их
  • Выполнять поставленную задачу
  • Корректно завершать работу

Отвязываемся от консоли


// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
    // Выходим из родительского, привязанного к консоли, процесса
    exit();
}
// Делаем основным процессом дочерний.
posix_setsid();

// Дальнейший код выполнится только дочерним процессом, который уже отвязан от консоли

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

Архитектура платежной системы. Банальности, проверенные опытом

Reading time26 min
Views52K
Главное в платежной системе — взять денежки, перевести записи из одной таблички в ту же самую табличку со знаком «минус». Звучит не очень сложно, пока не пришли юристы. Платежные системы во всем мире облагаются огромным количеством всевозможных отягощений и указаний. Поэтому в рамках разработки платежной системы приходится все время балансировать на грани между тяжелым enterprise и вполне нормальным масштабируемым web-приложением.

Под катом рассказ Филиппа Дельгядо (dph) на Highload++ про опыт, накопившийся за несколько лет работы над платежной системой для российского легального букмекерского бизнеса, про ошибки, но и про некоторые достижения, и про то, как грамотно смешать, но не взбалтывать, web с enterprise.


Как понять, что ваш сайт взломали?

Reading time5 min
Views18K
В настоящее время взломы сайтов становятся массовым, поставленным на поток процессом. Сайты могут взламывать ради использования их мощностей (популярный нынче майнинг, участие в ботнете и т.д.). Также злоумышленники могут быть заинтересованы в краже содержимого вашего ресурса или продвижении собственного контента (реклама, фишинг). В любом случае, злоумышленники постараются выжать максимум из успешного взлома, то есть остаться незамеченными как можно дольше, извлекая из взломанного сайта как можно больше выгоды.


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

Операционные системы с нуля; уровень 3 (старшая половина)

Reading time28 min
Views16K

В этой части мы допишем обработку прерываний и возьмёмся за планировщик. Наконец-то у нас появятся элементы многозадачной операционной системы! Разумеется это только начало темы. Одно прерывание таймера, один системный вызов, базовая часть простого планировщика потоков. Ничего сложного. Однако этим мы подготовим плацдарм для создания полноценной системы, которая будет заниматься самыми настоящими процессами безо всяких "но". Прямо как в этих ваших линупсах и прочих. До конца этого курса осталось уже чуть менее половины.


Нулевая лаба


Первая лаба: младшая половина и старшая половина


Вторая лаба: младшая половина и старшая половина


Третья лаба: младшая половина

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

Domain Driven Design на практике

Reading time12 min
Views294K
Эванс написал хорошую книжку с хорошими идеями. Но этим идеям не хватает методологической основы. Опытным разработчикам и архитекторам на интуитивном уровне понятно, что надо быть как можно ближе к предметной области заказчика, что с заказчиком надо разговаривать. Но не понятно как оценить проект на соответствие Ubiquitous Language и реального языка заказчика? Как понять, что домен разделен на Bounded Context правильно? Как вообще определить используется DDD в проекте или нет?

Последний пункт особенно актуален. На одном из своих выступлений Грег Янг попросил поднять руки тех, кто практиукует DDD. А потом попросил опустить тех, кто создает классы с набором публичных геттеров и сеттеров, располагает логику в «сервисах» и «хелперах» и называет это DDD. По залу прошел смешок:)

Как же правильно структурировать бизнес-логику в DDD-стиле? Где хранить «поведение»: в сервисах, сущностях, extension-методах или везде по чуть-чуть? В статье я расскажу о том, как проектирую предметную область и какими правилами пользуюсь.
Читать дальше →

Микросегментация сетей в примерах: как эта хитро закрученная штука реагирует на разные атаки

Reading time10 min
Views35K


Раньше, когда нужно было что-то разграничить (например, сервера с обработкой платежей и терминалы юзеров офиса), просто строили две независимых сети с мостом-файерволом в середине. Это просто, надёжно, но дорого и не всегда удобно.

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

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

Направленные ИТ-атаки в сфере крупного бизнеса: как это происходит в России

Reading time7 min
Views69K


Несколько лет назад государство решило, что направленные атаки — это угроза государственной безопасности. На базе Минобороны в этом году были созданы специальные ИБ-войска для защиты военно-информационных систем и систем связи. При этом банки, крупная розница, предприятия нефтегазовой сферы и другие крупные компании находятся в гражданском секторе. Их защищаем мы и другие гражданские команды.

Характеристики направленной атаки обычно такие:
  • Работает профессиональная группа, как правило, мотивированная финансово или по приказу. Случайные цели редки, чаще всего выбираются сегменты отраслей или отдельные предприятия.
  • Наиболее частые векторы — сочетание 0-day и социнжиниринга. 0-day уязвимости часто закупаются у специальных «разведчиков» под крупные атаки.
  • Если атака была обнаружена и пресечена, то высока вероятность скорого возврата по другому вектору. Атака идёт до результата.
  • Основная цель — корпоративные секреты, исходники кода, переписка топ-менеджмента.
  • Возможен возврат после первичной атаки. Был пример Nortel с атакой, когда группа пришла назад через 10 лет.
  • Атаки скрытые, обычно тут не бывает никаких понтов. Приоритет — максимально зачистить логи и другие следы.

У нас на защите есть банки, розница, страховые и много кто ещё. Расскажу о практике и решениях.
Читать дальше →

Принудительное введение в системы управления конфигурациями

Reading time9 min
Views39K

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


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


Введение для отшельников, которые не слышали что такое configuration management systems


Уже многие годы (по айтишным меркам — три поколения как) существуют программы, которые позволяют автоматизировать процесс конфигурации серверов. Все эти программы сложные, они вторгаются в святую святых администраторов и заставляют их делать "всё не так, как раньше". Их изучение и интернализация (признание, что "так надо и так правильно") — абсолютный must have в карьере любого системного администратора.


Главная боль любой системы управления конфигурациями


Главная боль состоит в том, что система управления конфигурациями ломает привычную автоматику пальцев. Раньше вы могли поднять веб-сервер за 2 минуты почти не глядя на экран. Теперь вам предлагают потратить на абсолютно те же самые действия минут 15-20 (если вы хорошо знаете систему управления конфигурациями) или даже несколько дней (!!!!!), если вы её изучаете.


Это преступление против личной эффективности. Уменьшить её в десять (0xA) раз — и это они называют прогрессом?

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

Многопроцессовые демоны на PHP

Reading time3 min
Views44K
Зачем может понадобиться писать демоны на PHP?
  • Выполнение трудоемких фоновых задач;
  • выполнение задач, которые длятся больше, чем время ожидания при HTTP-запросе (30 секунд);
  • выполнение задач на более высоком уровне доступа, чем серверный процесс (читай — под рутом).

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

Как вовремя заметить DDOS: сценарий использования сервиса мониторинга для раннего обнаружения

Reading time2 min
Views5.5K
Первый шаг в борьбе с DDOS-ом — заметить его. Особенно важно узнать о нем на ранних стадиях, когда он еще не развернулся на полную мощность, ибо тогда даже для администратора доступ к серверу может быть значительно затруднен. Ниже предлагается несколько способов раннего обнаружения DDOS с помощью сервиса мониторинга сайтов ХостТрекер.

Причиной написания этой статьи стала реальная история одного клиента, который регулярно подвергался ддосу и нуждался в инструменте для его диагностики.


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

Функциональная безопасность – старшая сестра информационной безопасности, Часть 1 из 7

Reading time7 min
Views46K
image

Безопасности на хабре посвящен целый хаб, и, пожалуй, никто особенно не задумывается, что именно вкладывается в понятие «безопасность», и так все ясно: информационная безопасность (security). Однако, есть еще и другая сторона безопасности, safety, связанная с рисками для здоровья и жизни людей, а также окружающей среды. Поскольку информационные технологии сами по себе опасности не представляют, то обычно говорят о функциональной составляющей, то есть о безопасности, связанной с правильным функционированием компьютерной системы. Если информационная безопасность стала критична с появлением интернета, то функциональная безопасность рассматривалась и до появления цифрового управления, ведь аварии происходили всегда.

Данная статья начинает серию публикаций на тему функциональной безопасности.

Информационной безопасности АСУ ТП посвящено немало статей на хабре. Функциональной безопасности авторы тоже касались, как в хабе по SCADA, так и в хабе по промышленному программированию АСУ ТП, но, как мне показалось, несколько вскользь. Поэтому я предлагаю короткую информацию об этом важном свойстве, от которого напрямую зависит, получит ли SkyNET контроль над человечеством.
В статье сделаны некоторые обобщения для АСУ ТП, а также для встроенных и кибер-физических систем.
Читать дальше →

Пневмоника и влажные мечты стимпанка

Reading time13 min
Views66K
“Пневмоавтоматика с каждым годом приобретает все большее значение для современной техники. Пневматические приборы широко применяются при автоматизации производственных процессов и при управлении энергетическими установками”

Л.А.Залманзон Пневмоника. Струйная пневмоавтоматика. изд. Наука, М. 1965


Рисунок 1: Fluidic Kit by Tekniska musee


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


Введение


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



Рисунок 2: Эффект прилипания струи


Мы видим, как струя воды соприкоснувшись с горбом ложки тут же прилипает к ее стенке, заметно искривляясь. Это явление известно давно и описывалось многими исследователями, в том числе такими видными как Юнг и Рейнольдс. Свое название “Эффект Коанда”, однако это явление получило по имени работавшего во Франции румынского изобретателя Анри Коанда, который в начале прошлого века предложил использовать его для ряда технических приложений.

Information

Rating
Does not participate
Registered
Activity