Pull to refresh
0
0
Владимир @itrabotnik

User

Send message

Анализ HTTP-трафика с Mitmproxy

Reading time 8 min
Views 95K
mitmproxy

В практике веб-разработчика нередко возникают ситуации, когда требуется отследить и проанализировать трафик приложений, общающихся с сервером по протоколу HTTP (в качестве примера можно привести тестирование приложений для мобильных устройств или HTTP API).

Инструменты, традиционно используемые для прослушивания трафика (tshark, о котором мы уже писали, а также ngrep и tcpdump) для этой цели подходят плохо: функциональность для работы с протоколом HTTP у них ограничена.

Для анализа HTTP-трафика существует более специализированное, простое и эффективное решение. Знакомьтесь: mitmproxy. На русском языке подробных публикаций о нем почти нет. В этой статье мы поделимся своим опытом работы с mitmproxy и надеемся, что и вам он окажется полезным.
Читать дальше →
Total votes 39: ↑36 and ↓3 +33
Comments 24

Типы данных наносят ответный удар

Reading time 12 min
Views 34K
Это вторая часть моих размышлений на тему «Python, каким бы я хотел его видеть», и в ней мы более подробно рассмотрим систему типов. Для этого нам снова придётся углубиться в особенности реализации языка Python и его интерпретатора CPython.

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

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

Практически все API, которые я реализовывал на Python, не работали в других языках программирования. Даже такая простая вещь, как интерфейс для работы с командной строкой (библиотека click) просто не работает в других языках, и основная причина в том, что вам приходится беспрестанно бороться с типами данных.

Не так давно поднимался вопрос добавления статической типизации в Python, и я искренне надеюсь, что лёд, наконец, тронулся. Постараюсь объяснить, почему я против явной типизации, и почему надеюсь, что Python никогда не пойдёт по этому пути.

Читать дальше →
Total votes 66: ↑53 and ↓13 +40
Comments 38

Как не стать спамером со своей уютной рассылочкой

Reading time 1 min
Views 67K
image
Пользователь когда-то подписался на рассылку, но уже забыл когда, и главное зачем. Теперь ежедневно к нему падает спам, а по собственному опыту он знает, для того чтобы отписаться нужно зайти по ссылке свой профиль, найти и снять там какую-то галку а главное, помнить свой логин и пароль на давно забытом им сайте.
Его действия? «В спам!»

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

И вот, с десяток таких «отписок» и гугл будет удобно отсортировывать ваши рассылки в папочку Спам (584), у ВСЕХ ваших подписчиков.

Однако многие из нас уже успели заметить: некоторые письма в Gmail при попытке отметить их «В спам!» САМИ предлагают отписаться от рассылки в один клик.

Эта фича была введена google более года назад, но лишь единицы рассылок научились ей пользоваться. И не удивительно. В рекомендациях по осуществлению массовых рассылок, лишь косвенно упоминается о том, что Вам нужно сделать.
А сделать нужно не многое.
Читать дальше →
Total votes 238: ↑230 and ↓8 +222
Comments 60

mod_performance 0.4 помощь в мониторинге Apache 2.x

Reading time 6 min
Views 8.1K

mod_performance – 0.4


Завершающий цикл статей, посвященных модулю apache — mod_performance.

Экскурс в историю


Это обычный модуль Apache 2.x для Linux:
  1. модуль предназначен для сбора и накопления статистики по использованию ресурсов(CPU и memory, время выполнения скрипта) веб-сервером Apache 2.4/2.2/2.0;
  2. модуль позволяет производить анализ собранных данных.

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

Сборник полезных ссылок для системного администратора

Reading time 2 min
Views 188K
Думаю у каждого грамотного системного администратора есть коллекция ссылок на полезные в работе ресурсы. Я имею в виду различные сайты и блоги, на которых выкладываются полезные с точки зрения системного администратора посты.
Предлагаю ими поделиться в формате ссылка — описание.
Пример: habrahabr.ru — разнообразные статьи и новости на IT и около-IT тематику.

Если Вы считаете ссылку полезной — ставьте плюсы нужному сообщению и я добавлю эту ссылку в свой пост (но и без плюсов тоже буду добавлять, просто медленнее т.к придется каждую ссылку изучать самостоятельно).
В результате (если поучаствует достаточно человек) мы получим неплохую подборку ссылок, которую я возможно разобью на категории.

P.S. Хабр, опеннет и лор можно не упоминать. Можно выкладывать ссылки на конкретные статьи, если считаете их очень полезными.

Начну с себя (т.к я администрирую linux, то и ссылки у меня в основном соответствующие):
Читать дальше →
Total votes 105: ↑88 and ↓17 +71
Comments 68

Tor Hidden Service как техника Nat Traversal

Reading time 2 min
Views 41K
За последние несколько месяцев мне несколько раз пришлось решать довольно однотипные задачи — регулярно получать доступ на компьютеры, «спрятанные» за NAT. Пока это был один стационарный компьютер, все решалось пробросом порта на домашнем роутере плюс DynDNS. Потом добавился ноутбук. И еще один. Ноутбуки могли подключаться к домашнему WiFi, а могли оказаться, например, на рабочем месте. Наша компания предоставляет услуги VPN, но именно в этот период VPN по каким-то причинам работал не стабильно. В ход пошли VPS, обратные ssh-туннели. Когда конфигурация перестала помещаться в голове, пришла идея сократить количество сущностей, используя Tor Hidden Service.
Читать дальше →
Total votes 20: ↑16 and ↓4 +12
Comments 38

Менеджмент. Краткое руководство для начинающих менеджеров и опытных подчиненных

Reading time 6 min
Views 68K
Современный менеджмент включает в себя целый ряд дисциплин, которые объединяют в себе самые различные функции, от менеджмента рисков до управления ресурсами и маркетинга. Сегодня же мы взглянем на менеджмент проекта в рамках IT-компании в общем, опишем главные функции менеджера (каждая из которых включает тысячи подфункций и еще больше всевозможных задач) и опровергнем несколько устойчивых и вредных мифов. Эта статья для начинающих PMов, а также для тех, кто вырос в менеджера из программиста.

Контрольный вопрос: чем менеджер отличается от подчиненного? На самом деле, основное отличие – это ответственность за результат. Менеджер отвечает за результат всей команды. На этом фоне ни решение задач, ни зарплата не является основной отличительной чертой между подчиненным и менеджером.
Читать дальше →
Total votes 39: ↑27 and ↓12 +15
Comments 26

Правила удаленной работы в путешествии

Reading time 4 min
Views 39K


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

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

Удалённая работа таит в себе множество подводных камней (включая отсутствие невербальной коммуникации), но будьте уверены, современные технологии устанавливают новые стандарты, меняют наши представления как о рабочем процессе, так и об отдыхе. Вы можете жить в мире, в котором нет границ, при желании неделями не общаться с живыми людьми, путешествовать и работать одновременно, инвестируя свободное время в творческий рост и самореализацию.
Осталось решить только один вопрос: как нам построить рабочий процесс, чтобы работа не мешала отдыху, а отдых давал силы для ежедневной работы?
Читать дальше →
Total votes 80: ↑58 and ↓22 +36
Comments 35

Memory management в ядре Linux. Семинар в Яндексе

Reading time 4 min
Views 65K
Привет! Меня зовут Роман Гущин. В Яндексе я занимаюсь ядром Linux. Некторое время назад я провел для системных администраторов семинар, посвященный общему описанию подсистемы управления памятью в Linux, а также некоторым проблемам, с которыми мы сталкивались, и методам их решения. Большая часть информации описывает «ванильное» ядро Linux (3.10), но некоторая часть специфична для ядра, использующегося в Яндексе. Вполне возможно, семинар окажется интересен не только системным администраторам, но и всем, кто хочет узнать, как в Linux устроена работа с памятью.



Основные темы, затронутые на семинаре:
  • Задачи и компоненты подсистемы управления памятью;
  • Аппаратные возможности платформы x86_64;
  • Как описывается в ядре физическая и виртуальная память;
  • API подсистемы управления памятью;
  • Высвобождение ранее занятой памяти;
  • Инструменты мониторинга;
  • Memory Cgroups;
  • Compaction — дефрагментация физической памяти.

Под катом вы найдете более подробный план доклада с раскрытием основных понятий и принципов.
Читать дальше →
Total votes 113: ↑107 and ↓6 +101
Comments 15

Бесплатный аналог AnyConnect VPN Server

Reading time 3 min
Views 42K

В прошлой своей заметке я описывал Softether VPN Server и как его установить из исходников. За прошедшее время я очень сильно разочаровался в данном сервере так как за все время мне не удалось заставить его работать с нормальной скоростью. Я писал на форум разработчиков, но так и не получил внятного ответа в чем же дело Ну делать нечего придется выбрать другое решение.
Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Comments 22

Что такое grep и с чем его едят

Reading time 6 min
Views 654K
Эта заметка навеяна мелькавшими последнее время на хабре постами двух тематик — «интересные команды unix» и «как я подбирал программиста». И описываемые там команды, конечно, местами интересные, но редко практически полезные, а выясняется, что реально полезным инструментарием мы пользоваться и не умеем.
Небольшое лирическое отступление:
Года три назад меня попросили провести собеседование с претендентами на должность unix-сисадмина. На двух крупнейших на тот момент фриланс-биржах на вакансию откликнулись восемь претендентов, двое из которых входили в ТОП-5 рейтинга этих бирж. Я никогда не требую от админов знания наизусть конфигов и считаю, что нужный софт всегда освоится, если есть желание читать, логика в действиях и умение правильно пользоваться инструментарием системы. Посему для начала претендентам были даны две задачки, примерно такого плана:
— поместить задание в крон, которое будет выполняться в каждый чётный час и в 3 часа;
— распечатать из файла /var/run/dmesg.boot информацию о процессоре.

К моему удивлению никто из претендентов с обоими вопросами не справился. Двое, в принципе, не знали о существовании grep.

image

Поэтому… Лето… Пятница… Перед шашлыками немного поговорим о grep.
Читать дальше →
Total votes 188: ↑174 and ↓14 +160
Comments 144

15 малоизвестных команд Linux

Reading time 3 min
Views 315K
Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
Читать дальше →
Total votes 333: ↑274 and ↓59 +215
Comments 224

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

Reading time 15 min
Views 38K
Представляю вашему вниманию перевод проскользнувшей недавно в ссылках дайджеста статьи Джонатана Моргана о функциональном программировании на примере JavaScript. Материал рассчитан на начинающих, но тем не менее он достаточно интересен.

Буду признателен за конструктивные замечания и предложения по опечаткам, переводу и/или оформлению. Приятного чтения!
Читать перевод
Total votes 42: ↑39 and ↓3 +36
Comments 20

Настройка резервного копирования Linux-сервера за 5 минут

Reading time 3 min
Views 66K
Передо мной возникла необходимость настроить резервное копирование на новом Linux-сервере, задачка эта оочень важная, но уж больно скучная: нужно написать и отладить скрипты, которые будут архивировать нужные папки (причем желательно делать инкрементальные архивы), базы данных, хранилища subversion, а затем переносить эти архивы на удаленный сервер. По этому я попробовал нагуглить готовое решение для этой задачки и в результате наткнулся на backup-manager — замечательный опенсорсный набор bash-скриптов, позволяющих:
  • архивировать любые папки, в том числе и создавать инкрементальные архивы. В конфиге просто указывается список директорий, которые должны быть скопированы, а также «черный список» файлов, которые копироваться не будут.
  • делать резервное копирование баз данных MySQL. В конфиге указываются логин и пароль mysql-юзера, имеющего доступ к базам, а всю остальную работу backup-manager делает сам.
  • делать резервное копирование svn-репозиториев, причем бэкап делается не копированием папки с хранилищем, а с помощью команды svnadmin dump.
  • шифровать архивы.
  • копировать созданные архивы на удаленные сервера по FTP, SSH или (это самая важная для меня фича) в хранилище Amazon S3, а также записывать их на DVD.

Таким образом, один этот этот набор скриптов решил абсолютно все мои задачи, связанные с резервным копированием. Настраивается все это хозяйство не более чем за пять минут, так как в конфигурационном файле каждый параметр имеет подробные комментарии, так что проблем с настройкой возникнуть ни у кого не должно.
Читать дальше →
Total votes 85: ↑74 and ↓11 +63
Comments 45

PyCon Russia 2014 — два дня python-счастья

Reading time 5 min
Views 16K
2-3 июня в Екатеринбурге прошла вторая международная конференция python-разработчиков PyCon Russia 2014. Участники съехались из 23 городов России и мира.

IMG_0636.jpg
Участники PyConRu 2014

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

FAQ про гибридные облака: старая добрая виртуализация в новой финансовой обёртке

Reading time 5 min
Views 16K
Что такое гибридное облако?
Гибридное или конвергентное облако — это сочетание минимум одного публичного облака с не менее чем одним частным облаком. Например, это связка вашего ЦОДа в офисе и облака Amazon. Виртуальные машины Amazon при этом могут быть видны в одной подсети с вашими физическими.



Для чего это делается?
Основная причина – экономия и скорость. Можно выделить себе любое количество ресурсов из публичного облака на любое время, а потом просто отключить ненужную мощность. С учётом всех деталей стоимость аренды мощностей в публичном облаке получается примерно такой же, как при покупке реального оборудования – но в первом случае все расходы операционные, а квантование не по трем годам (с заделом на амортизацию), а по секунде.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 7

Мониторинг в ИТ, как организовать работу

Reading time 7 min
Views 27K
В данной статье хочу поделиться своим опытом организации работы системы мониторинга ИТ. Здесь будет рассмотрен один из возможных вариантов решения именно организационных задач, технические аспекты современных систем мониторинга обсуждаться не будут.Хочу сразу уточнить, что объектами мониторинга в моем случае являются исключительно компоненты ИТ, это: серверы, операционные системы, базы данных, транзакции и т.д.


Читать дальше →
Total votes 9: ↑5 and ↓4 +1
Comments 6

Ошибки брифов

Reading time 3 min
Views 14K
Недавно мы собирали материалы в рамках ситуационного анализа. В первую очередь нас интересовали компании из рейтингов, брендинговые агентства и питерский рынок. Задача анализа простая – составить общее впечатление работы рынка, оценить уровень сервиса и ценообразование. Неожиданно для себя, мы нащупали еще одно слабое звено, им оказался бриф. Притом это странно, казалось бы, уже трактаты написаны об этом вопроснике, но нет, до сих пор люди спотыкаются, считают это мелочью, не обращают внимание. И не только молодые компании. Такое встречается в 40%. Но умение задавать правильные вопросы и не задавать глупые является лакмусовой бумажкой, вот так с порога многие компании признаются в некомпетентности.
Читать текст, смотреть картинки
Total votes 9: ↑7 and ↓2 +5
Comments 0

Ситуационный анализ / предпроектный этап разработки сайта

Reading time 2 min
Views 11K
Продолжаю серию обучающих материалов для агентств и web-студий. В этот раз поделюсь знаниями о ситуационном анализе рынка на предпроектном этапе разработки. Тема скучная, ленивая, но в картинках крайне доступна и проста для понимания.
Читать дальше →
Total votes 8: ↑6 and ↓2 +4
Comments 0

Наглядный обзор оптических передатчиков

Reading time 8 min
Views 262K
Часто у знакомых системных администраторов, не сталкивавшихся раньше с оптическим волокном, возникают вопросы, как и какое оборудование необходимо для организации соединения. Немного почитав, становится понятно, что нужен оптический трансивер. В этой обзорной статье я напишу основные характеристики оптических модулей для приема/передачи информации, расскажу основные моменты, связанные с их использованием, и приложу много наглядных изображений с ними. Осторожно, под катом много трафика, делал кучу своих собственных фотографий.


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

Information

Rating
Does not participate
Location
Кишинев, Молдова, Молдова
Registered
Activity