Search
Write a publication
Pull to refresh
82
0
Евгений Романенко @FessAectan

Founder of ViStep.RU

Send message

Этот пудель кусается: использование дыр в протоколе SSL 3.0

Reading time7 min
Views36K


Интересующиеся веб-безопасностью хабражители уже в курсе очередной уязвимости в SSL, именуемой POODLE. Мы подробно рассмотрим, что же собой представляет эта уязвимость и каким именно образом позволяет злоумышленнику добраться до, казалось бы, защищенных данных пользователя, а также расскажем, как с этим зверем справилась команда Mail.Ru Group.
Читать дальше →

Как отлаживать свой мозг

Reading time4 min
Views211K
Перевод статьи Оливера Эмбертона (Oliver Emberton) «How to debug your brain». Оригинал можно найти здесь.

Наши мозги – самое глючное барахло после Internet Explorer.


Для воспроизведения одного распространенного бага, попробуйте приказать себе «пойти в тренажерку». Мозги большей части людей в ответ обновят статус в Facebook и примутся за просмотр роликов с котятами. Это не ожидаемое поведение.

image

К счастью, я разработал заплатку. Но сперва давайте я расскажу, как работает весь этот мозг.
Читать дальше →

Живительная флешка

Reading time10 min
Views523K
На данный момент в сети имеется целая куча различных инструкций по созданию дежурной рабочей сисадминской флешки, но, к сожалению, многие из них уже устарели и просто не подходят под современные задачи.

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


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

Помнить все: Evernote и Anki

Reading time12 min
Views259K


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

Я хочу достичь следующих целей при использовании системы:

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

Ниже я напишу о методах и правилах, которые составляют данную систему. Статья будет состоять из нескольких разделов:

  • Мой опыт по описанному вопросу
  • Проблемы запоминания
  • Теоретическое разрешение проблем
  • Практическое разрешение проблем с Evernote
  • Практическое разрешение проблем с Anki
Читать дальше →

Почтовый офис Яндекса: как мы сделали сервис, анализирующий результаты рассылок в реалтайме

Reading time4 min
Views26K
У Яндекса есть сервис для добросовестных рассыльщиков писем — Почтовый офис. (Для недобросовестных у нас в Почте есть Антиспам и кнопка «Отписаться».) С его помощью они могут понимать, какое количество их писем пользователи Яндекс.Почты удаляют, сколько времени их читают, насколько дочитывают. Меня зовут Антон Холодков, и я занимался разработкой серверной части этой системы. В этом посте я расскажу о том, как именно мы ее разрабатывали и с какими трудностями столкнулись.



Для рассыльщика интерфейс Почтового офиса полностью прозрачен. Достаточно зарегистрировать в системе свой домен или email. Сервис собирает и анализирует данные по множеству параметров: имени и домену отправителя, времени, признаку спам/не спам, прочитано/не прочитано. Также реализована агрегация по полю list-id — специальному заголовку для идентификации рассылок. Источников данных у нас несколько.
Читать дальше →

Как удержать клиента: 5 шикарных примеров из емейл-маркетинга

Reading time7 min
Views66K
Сегодня все занимаются рассылками и делают это по одной простой причине – рассылки работают. Но какие письма вы пишете клиентам специально для того, чтобы убедить их вернуться и купить что-нибудь еще?

Никакие? Вот именно. И вы не одни такие.

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

Как ускорить контейнер: тюнингуем OpenVZ

Reading time9 min
Views16K
image
OpenVZ — это OpenSource-реализация технологии контейнерной виртуализации для ядра Linux, которая позволяет запускать на одной системе с ядром OpenVZ множество виртуальных окружений с различными дистрибутивами Linux внутри. За счет своих особенностей (контейнерная виртуализация идет на уровне ядра, а не железа) по ряду показателей производительности – плотности, эластичности, требованиям к размеру оперативной памяти, скорости отклика и т.д. – она работает лучше, чем другие технологии виртуализации. Например, тут можно посмотреть сравнения производительности OpenVZ с традиционными системами гипервизорной виртуализации. Но, помимо этого, в Linux и OpenVZ есть и масса вариантов тонкой настройки.
В данной статье мы рассмотрим нетривиальные варианты настроек контейнеров ядра OpenVZ, которые позволяют улучшить производительность всей системы OpenVZ.
Читать дальше →

MikroTik QoS — развенчание мифов

Reading time8 min
Views140K
Перед тем, как настраивать роутер (не важно — офисный аппаратный роутер за 50 долларов или программный роутер на базе сервера с двумя 4-х ядерными процессорами) — важно понимать, как пакеты двигаются по цепочкам (изучить в онлайн документации Диаграммы движения пакетов — Packet Flow Diagrams).
Невозможно должным образом управлять и поддерживать сложные конфигурации без понимания того — что, где, когда и почему происходит.

В случае бриджинга трафика (Layer 2 (MAC)) — роутинг представлен ввиде черного серого «ящика» Layer3,




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

Парсим на Python: Pyparsing для новичков

Reading time6 min
Views190K
Парсинг (синтаксический анализ) представляет собой процесс сопоставления последовательности слов или символов — так называемой формальной грамматике. Например, для строчки кода:

import matplotlib.pyplot  as plt

имеет место следующая грамматика: сначала идёт ключевое слово import, потом название модуля или цепочка имён модулей, разделённых точкой, потом ключевое слово as, а за ним — наше название импортируемому модулю.

В результате парсинга, например, может быть необходимо прийти к следующему выражению:

{ 'import': [ 'matplotlib', 'pyplot' ], 'as': 'plt' }

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

Для парсинга как правило используют регулярные выражения. Для этого имеется модуль Python под названием re (regular expression — регулярное выражение). Если вам не доводилось работать с регулярными выражениями, их вид может вас испугать. Например, для строки кода 'import matplotlib.pyplot as plt' оно будет иметь вид:

r'^[ \t]*import +\D+\.\D+ +as \D+'

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

В данной статье мы установим Pyparsing и создадим на нём наш первый парсер.

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

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

Reading time6 min
Views29K
Мы в Почте Mail.Ru постоянно сталкиваемся с необходимостью работать с историей пользователей. Учитывая, что ежемесячная аудитория проекта составляет более 40 миллионов человек, история всех их действий – это порядка петабайта данных. Потребность в поиске по логам у нас возникает сотни раз в день, а на получение нужной информации в среднем уходило несколько часов. При этом, по нашим предположениям, извлечение информации из логов можно было ускорить до нескольких секунд.

Чтобы оценить целесообразность разработки системы для оптимизации поиска по логам, мы воспользовались вот этой таблицей с XKCD:



(на самом деле нет, но нам она все равно нравится).

Итак, мы всерьез взялись за оптимизацию. Итогом нашей работы стала разработка системы, благодаря которой мы можем поднять историю действий примерно в 100 000 (сто тысяч, это не опечатка) раз быстрее. Мы разработали big-data сервис, который позволяет хранить петабайты информации в структурированном виде: каждому ключу у нас соответствует лог каких-то событий. Хранилище устроено так, что оно способно работать и на самых дешевых SATA-дисках, и на больших многодисковых хранилищах с минимальным количеством процессорного времени, при этом оно полностью fault-толерантно — если вдруг какая-то машина выйдет из строя, это ни на что не влияет. Если в системе заканчивается место, в нее просто добавляется сервер или несколько: система автоматически увидит их и начнет записывать данные. Чтение данных происходит почти моментально.
Читать дальше →

Зачем нужна мышь, если есть клавиатура?

Reading time3 min
Views61K
image Несмотря на провокационный заголовок, я не стремлюсь разжечь холивар. Я хочу поговорить о не используемом потенциале клавиатуры, о тех вещах, которые помогают повысить производительность программиста и избавят от лишних телодвижений в сторону мыши.
Читать дальше →

По городам и весям или как мы балансируем между узлами CDN

Reading time9 min
Views27K
Когда вы выросли настолько, что появились узлы в разных городах, возникает задача распределения нагрузки между ними. Задачи такой балансировки могут быть разными, но цель, как правило, одна: сделать так, чтобы было хорошо. У меня дошли руки рассказать о том, как это делают обычно, и как это сделано в ivi.ru.

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

Fail2ban [incremental]: Лучше, быстрее, надежнее

Reading time9 min
Views160K
fail2ban image
Про fail2ban написано уже много, в том числе и на хабре. Эта статья немного о другом — как сделать защиту им еще надежнее и о еще пока неизвестных в широких кругах новых функциях fail2ban. Добавлю сразу — речь пойдет пока про development branch, хотя уже долго проверенный в бою.

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


В большинстве своем fail2ban устанавливается из дистрибутива (как правило это какая-нибудь стабильная старая версия) и настраивается по манам из интернета за несколько минут. Затем годами работает, без вмешательства админа. Нередко даже логи, за которыми вроде как следит fail2ban, не просматриваются.
Так вот, сподвигнуть на написание этого поста меня заставил случай, произошедший с одним сервером моего хорошего знакомого. Классика жанра — пришла абуза, за ней вторая и пошло поехало. Хорошо еще злоумышленник попался ленивый — логи не потер, да и повезло еще крупно, что logrotate был настроен, чтобы хранить логи месяцами.
Как дальше жить

Опыт применения Go в продакшене Яндекса

Reading time7 min
Views75K
Хочу поделиться опытом использования языка Go в продакшн-системах Яндекса. Вообще мы здесь довольно консервативно относимся к тому, какие языки использовать для реальных систем. И это лишь добавляет полезности тому опыту, который мы получили в этот раз.

Мы начали разрабатывать на Go летом прошлого года. Тогда появился фреймворк Go для облачной платформы Cocaine. До этого приложения серверного API Браузера писались в основном на C++ и Python. Серверный API в это время как раз переходил на облачную платформу, и мы по большей части только определялись с тем, какие технологии использовать в будущем для него. API выполняет следующие функции: получить данные, обработать, отправить во внутренний сервис Яндекса, ещё раз обработать, отдать назад Браузеру. Набор простых приложений.



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

Атаки на SS7: вчера для спецслужб, сегодня для всех

Reading time3 min
Views99K
image

В конце августа газета Washington Post обнародовала буклет американской компании Verint, которая предлагает своим клиентам сервис Skylock по выслеживанию абонентов мобильных сетей в разных странах мира – без ведома самих абонентов и операторов. Хотя предложения локационных сервисов давно можно найти в Интернете, но случай Verint, пожалуй, один из первых, когда такие услуги предлагаются вполне официально и на глобальном уровне.

Как такое возможно? В качестве реакции на истории о мобильной слежке чаще всего выдвигается версия о сложных технологиях, которые могут использоваться лишь спецслужбами. На практике всё проще. Телекоммуникационная сеть состоит из множества подсистем различного технологического уровня, и уровень безопасности всей сети зачастую определяется уровнем самого слабого звена.
Читать дальше →

День свободы программного обеспечения

Reading time13 min
Views21K


Сегодня особенный день для всех поклонников идей Ричарда Столлмана. Этот человек уже с 1983 года является главным идеологом движения за свободное программное обеспечение. И сегодня отмечается юбилейный, десятый ежегодный день этой самой свободы.

Несмотря на то, что критерии свободного программного обеспечения выглядят довольно дико в условиях повсеместного капитализма, это не помешало появлению и успешному развитию таких всем известных проектов, как GNU/Linux, веб-сервер Apache и движок MediaWiki, на котором работает Wikipedia. И это лишь малая часть, а в целом программ, распространяющихся как свободные, просто несметное количество. Сам я в прошлом являлся ярым сторонником открытого ПО, в частности, все началось c Mandrake Linux, а закончилось Arch Linux и безудержным допиливанием конфигов тайлового оконного менеджера Awesome. В то время даже обратил в оную религию некоторых своих друзей и поставил Линуксы на ноутбуки родителям. Сейчас же ярость поутихла, и я спокойно чувствую себя, сидя за свежей версией Ubuntu. :)

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

У нас в Mail.Ru Group тоже есть немало программистов, участвующих в создании и улучшении свободного программного обеспечения. Буквально в прошлом посте в нашем блоге Александр Емелин рассказал про свой открытый проект Centrifuge. Специально к празднику мы попросили рассказать и других сотрудников о том, как СПО помогает им в работе, и о некоторых своих работах, так что слово авторам.
Читать дальше →

Делаем универсальный ключ для домофона

Reading time5 min
Views550K
Заголовок получился слишком громким — и ключ не такой и универсальный, и домофон поддастся не любой. Ну да ладно.
Речь пойдет о домофонах, работающих с 1-wire таблетками DS1990, вот такими:



В интернете можно найти множество материалов о том, как читать с них информацию. Но эти таблетки бывают не только read-only. Человеку свойственно терять ключи, и сегодня ларёк с услугами по клонированию DS1990 можно найти в любом подземном переходе. Для записи они используют болванки, совместимые с оригинальными ключами, но имеющие дополнительные команды. Сейчас мы научимся их программировать.

Зачем это нужно? Если отбросить заведомо нехорошие варианты, то самое простое — это перепрограммировать скопившиеся и ставшие ненужными клонированные таблетки от старого домофона, замененного на новый, от подъезда арендованной квартиры, где больше не живете, от работы, где больше не работаете, и т.п.

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

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

Reading time5 min
Views24K
Добро пожаловать в блог компании Witget.com. Продолжаем цикл статей, полезных владельцам сайтов. Формы подписки или формы сбора контактов — своеобразные связующие звенья между владельцем сайта и его потенциальными клиентами. Причем они работают как на тех посетителей сайта, которые всерьез собираются что-то купить, так и на тех, кто зашел, посмотрел, и уже хотел было уйти. Правильно выполненные формы подписки могут заинтересовать даже скептически настроенного пользователя. Но какие же они, эти эффективные формы сбора контактов? И как определить уровень тех, что вы используете на своем сайте? В первую очередь, стоит спросить самих посетителей. В связи с этим публикуем статью Шерис Джэйкоб, основанную на масштабном исследовании форм сбора контактов, при котором было опрошено более 400 тысяч посетителей сайта. Как же поднять конверсию сайта с помощью разных видов форм для заполнения?

Было так много разговоров о том, как правильная форма сбора контактов может заставить показатели конверсии взлететь.
«В форме обязательно должно быть X полей, но даже не думайте просить номер телефона» — ребят, это же не секреты успешного пикапа.
«О, и не забудьте, что на кнопке призыва к действию ни в коем случае не должно быть написано «Подать заявку», — спасибо, кэп, это очень полезный совет.
Малоизвестные факты о формах сбора контактов - читать

Немного о Iptables, Iproute2 и эмуляции сетевых проблем

Reading time4 min
Views38K
Однажды мне понадобилось в Zabbix сделать мониторинг потери пакетов между мастером и репликами (репликация плохо себя чувствует если канал не очень хороший). Для этого, в Zabbix есть встроенный параметр icmppingloss, на удаленный хост отправляется серия ICMP пакетов и результат фиксируется в системе мониторинга. И вот параметр добавлен, триггер настроен. Казалось бы задача выполнена, однако как говорится «Доверяй, но проверяй». Осталось проверить что триггер сработает когда потери действительно будут. Итак, как сэмулировать потерю пакетов? Об этом, да и не только, пойдет речь под катом.

image

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

BookTitres.com — изучайте языки по иностранной литературе в оригинале, слушая и читая

Reading time7 min
Views16K
Многие используют фильмы с субтитрами, чтобы слушать речь и одновременно читать. Хочу предложить альтернативу — слушать аудио книги и читать их текст с подстрочным переводом и доступом к каждой отдельной фразе. Они доступны онлайн на сайте BookTitres.com .

Самое интересное


Уже доступные для чтения книги вы можете найти в разделе "Слушайте и читайте" на сайте. Книга "Хоббит" закончена — это 11 часов аудио и 13800 фраз. Пройдя её полностью, вы ощутите заметное улучшение своего английского. Особенно, если будете повторять за чтецом каждую фразу. От других книг в основном сделаны несколько первых глав. Если хотите продолжения — ответьте на опрос и укажите желаемую книгу.

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

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

Information

Rating
Does not participate
Location
Новокузнецк, Кемеровская обл., Россия
Date of birth
Registered
Activity