Как стать автором
Обновить
0
0
S. #StopRussianNazis #StandWithUkraine @webknjaz

#StandWithUkraine/CherryPy/aiohttp/Ansible

Отправить сообщение

Почему мы уверены в том, что развернули

Время на прочтение6 мин
Количество просмотров13K
image
Часто бывает, когда что-то не работает. И никто не хочет, чтобы что-то не работало по его вине. В контексте больших инфраструктур и распределенных приложений ошибка конфигурации может быть фатальной.

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

Статья будет интересна командам, которые практикуют DevOps или SRE, ответственным Dev, и прочим хорошим людям.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии9

Бот-кассир на pywinauto, или GUI automation для платежного шлюза

Время на прочтение5 мин
Количество просмотров6.3K
Я работаю в небольшом израильском стартапе, наш продукт — платформа для заказа еды из ресторанов, кафе и магазинов. В отличие от десятков подобных сервисов, мы монополисты на студенческом рынке в США. Мы обрабатываем на пике около сотни тысяч заказов в день и один из платежных шлюзов в продакшне построен на автоматизации GUI для Win32 приложения с помощью библиотеки pywinauto.
как мы к этому пришли
Всего голосов 14: ↑14 и ↓0+14
Комментарии10

Таблица маршрутизации в Quagga

Время на прочтение7 мин
Количество просмотров24K
По роду своей деятельности я занимаюсь проектированием сетей и настройкой сетевого оборудования. В какой-то момент времени мне захотелось узнать как-же устроены сетевые устройства, которые всегда представляли для меня черные ящики, магически реализующие сетевые протоколы. Поскольку устройства от вендоров типа Cisco или Juniper закрыты и не доступны для какого-либо изучения, то мой выбор пал на программу Quagga – маршрутизатор с открытыми исходными кодами, который достаточно широко используется в реальной жизни и довольно успешно справляется с протоколами OSPF и BGP. Вооружившись исходниками Quagga я приступил к исследованию. В данной статье я хочу рассказать как устроена таблица маршрутизации в Quagga, какие структуры и алгоритмы используются для ее реализации.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии11

Vulners — Гугл для хакера. Как устроен лучший поисковик по уязвимостям и как им пользоваться

Время на прочтение9 мин
Количество просмотров97K


Часто нужно узнать всю информацию о какой-нибудь уязвимости: насколько найденный баг критичен, есть ли готовые сплоиты, какие вендоры уже выпустили патчи, каким сканером проверить наличие бага в системе. Раньше приходилось искать вручную по десятку источников (CVEDetails, SecurityFocus, Rapid7 DB, Exploit-DB, базы уязвимостей CVE от MITRE/NIST, вендорские бюллетени) и анализировать собранные данные. Сегодня эту рутину можно (и нужно!) автоматизировать с помощью специализированных сервисов. Один из таких — Vulners, крутейший поисковик по багам, причем бесплатный и с открытым API. Посмотрим, чем он может быть нам полезен.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии3

Как прикрутить BitTorrent трекер к Python-сайту: интеграция с XBT Tracker

Время на прочтение5 мин
Количество просмотров7.7K
Допустим, у Вас есть некий сайт, написанный на языке Python и Вы хотите прикрутить к нему BitTorrent tracker, наподобие rutracker.org.

Разделение задачи


Задачу можно разделить на две большие функциональности:
  1. Каталог torrent-раздач на сайте (исторически обычно реализуется в виде форума),
  2. Сам Трекер, непосредственно участвующий в процессе раздач.

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

В мире PHP Каталог и Трекер зачастую не разделяются на два выделенных приложения. Например, популярный TBDev Tracker существует в виде приложения, объединяющего Каталог-форум и Трекер. (Автор видимо так устал от популярности своего приложения, что сайт давно не обновляется и скачать приложение с него нереально. Однако в Сети можно найти множество клонов.)

Некоторые реализации Трекера изначально были написаны на Python, но затем переписаны на C++ из соображений производительности. Так что в наши дни Python-трекеров не существует (по крайней мере мне найти не удалось). Поэтому единственное, что остается — установить отдельное приложение Трекера и интегрировать его с Python-Каталогом.

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Prelink и Preload для ускорения запуска программ в Linux

Время на прочтение3 мин
Количество просмотров35K
В этой заметке я опишу две утилиты, которые помогут ускорить работу системы Linux, а конкретно — запуск приложений: prelink и preload. Prelink оптимизирует исполняемые файлы для быстрого связывания с библиотеками. Preload кэширует часто используемые библиотеки и программы.
Подробности под катом.
Читать дальше →
Всего голосов 64: ↑52 и ↓12+40
Комментарии42

NPM и left-pad: мы разучились программировать?

Время на прочтение4 мин
Количество просмотров111K
Автор — Дэвид Хейни (David Haney), ведущий инженер-программист Stack Overflow

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

Простой пакет NPM под названием left-pad был установлен как зависимость в React, Babel и других пакетах. Модуль, который на момент написания этого поста, имеет 11 звёзд на Github (сейчас 323 — прим.пер). Весь пакет состоит из 11 простых строчек, которые реализуют примитивную функцию вставки пробелов в левой части строк. Если какие-то из ссылок когда-нибудь умрут, вот его код:

module.exports = leftpad;
function leftpad (str, len, ch) {
  str = String(str);
  var i = -1;
  if (!ch && ch !== 0) ch = ' ';
  len = len - str.length;
  while (++i < len) {
    str = ch + str;
  }
  return str;
}
Что меня беспокоит, так это такое большое количество пакетов, где установлена зависимость от простой функции набивки строки пробелами, вместо того чтобы потратить 2 минуты и написать эту базовую функцию самому.
Читать дальше →
Всего голосов 148: ↑127 и ↓21+106
Комментарии273

Переворачиваем интернет на 1-е апреля

Время на прочтение2 мин
Количество просмотров3K
image

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

1) Сервер раздающий интернет для локальной сети
2) Прокси сервер
3) 15 минут времени

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

Читать дальше →
Всего голосов 48: ↑35 и ↓13+22
Комментарии18

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Количество просмотров235K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Всего голосов 191: ↑186 и ↓5+181
Комментарии120

Разбор всех заданий отборочной игры Yandex.Root

Время на прочтение15 мин
Количество просмотров55K
Сегодня ночью завершилась первая игра отборочного тура Yandex.Root — олимпиады для Unix-инженеров и системных администраторов. В ней приняло участие 456 человек из 229 команд, 194 из которых выполнили хотя бы одно задание. Со всеми девятью справилось 38 команд.

Мы проводим Root в четвёртый раз, но впервые решили опубликовать на Хабре разбор тасков. Задачи, которые мы даём на олимпиаде, сопоставимы с теми, что регулярно решают наши системные администраторы. В Яндексе почти каждый день что-то выкатывается и, когда что-то идёт не так, нужно оперативно распознать это и эффективно отреагировать.



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

Мы будем благодарны, если вы нам об этом расскажете и поделитесь своим мнением, как сделать лучше. Кстати, если хотите, то можете и попробовать себя в реальной игре. Вторая часть первого тура пройдёт через четыре дня — во вторник 14 апреля, и на неё ещё можно зарегистрироваться.

Игра Shannon


Мы решили назвать все игры в память о людях, которые внесли вклад в современные технологии, которые используются в нашей работе. Эта посвящена Клоду Шеннону, инженеру и математику, который среди прочего подарил нам слово «бит». Кстати, сам сервис root.yandex.ru запущен на compute узлах private cloud Яндекса.
Читать дальше →
Всего голосов 60: ↑55 и ↓5+50
Комментарии73

Не учите фреймворки, учите архитектуру

Время на прочтение5 мин
Количество просмотров198K
Некоторое время назад у меня состоялся интересный разговор, коллега активно защищал Angular, говорил, что тот ускоряет веб-разработку. Я более десяти лет разрабатываю сложные web-сервисы, работал в Microsoft, в Spotware Systems на Кипре, сейчас создаю приложение для стартапа из Кремниевой долины, и в общем то слежу за трендами. Однако почувствовал себя динозавром, потому что не видел смысла использовать фронтэнд-фреймворки до того момента, а оказалось, что это уже мейнстрим. Шёл 2014-й год, я погрузился в мир Angular, Knockout и Backbone, что из этого вышло, почему я от них в итоге отказался и рекомендую коллегам сделать то же самое – под катом.
Читать дальше →
Всего голосов 152: ↑133 и ↓19+114
Комментарии123

Сделаем код чище: Что можно исправить в ядре Linux

Время на прочтение5 мин
Количество просмотров37K
Наверняка многие хотели бы попробовать что-то изменить в ядре Linux к лучшему, но не знают с чего начать. Я хочу описать несколько проблем, исправить которые под силу каждому, и на примере показать путь от нахождения проблемы до опубликования её исправления в списке рассылки. По ходу повествования читатель познакомится с некоторыми вспомогательными утилитами.
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии29

TLS в HTTP/2

Время на прочтение3 мин
Количество просмотров18K
image

Я написал обзор «http2 explained» и сделал несколько выступлений по поводу HTTP/2. После я получил много вопросов по поводу связки TLS и HTTP/2, поэтому я хотел бы ответить на некоторые из них в данной статье.

TLS не обязателен


В одобренной спецификации HTTP/2, которая скоро станет официальным RFC, нет ничего об обязательном использовании TLS. Наоборот, там рассказывается, как можно передавать данные открытым текстом TCP, и как – через TLS.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии23

Диплом бакалавра в LaTeX, или ДСТУ 3008-95 в 150 строк

Время на прочтение21 мин
Количество просмотров141K
image
Всем привет. Недавно меня тоже настигла переломная веха студенческой жизни — бакалаврская дипломная работа. Среди многих формальных деталей этого замечательного явления особо заметным стоит нормоконтроль. Нет, я понимаю и всячески поддерживаю, что стандарты необходимы, в том числе стандарты на оформление академического текста. Просто наши стандарты, в отличие от западных, достаточно идиотичны. Они не экономят ни чернила, ни бумагу, они не упрощают поиск литературы по номенклатуре, а усложняют чтение названия. Не говоря уже о том, что текст стандарта спроектирован и описан людьми, работающими в редакторе Microsoft Word. Опять-таки, я не имею ничего против Word, это мощнейшая система. Но технический текст в нем набирать неудобно, и по гибкости он во много раз проигрывает бессмертному творению Дональда Кнута — LaTeX.

Итак, мое написание диплома началось с того, что я потратил 4 часа на настройку преамбулы под нормы украинского стандарта оформления ДСТУ 3008-95. Насколько мне известно, он почти полностью соответствует русскому ГОСТу. Я знал, что существуют готовые решения (например, disser), но после пары проб предпочел настроить каждую деталь самостоятельно. Для тренировки. Тренировка удалась — я узнал бездну новых вещей о LaTeX, этого монстра невозможно выучить полностью :-)

Под катом я полностью опишу процесс настройки каждой конкретной детали и использование их при написании, а также разные мелочи, упрощающие написание диплома еще больше. Сразу предупреждаю: где-то мои решения могут показаться костылями. Где-то они не слишком универсальны. Я это знаю, понимаю, принимаю и приветствую критику и предложения в комментариях ;-)
Читать дальше →
Всего голосов 105: ↑101 и ↓4+97
Комментарии54

GTD на кухне: чем накормить голодного программиста

Время на прочтение9 мин
Количество просмотров56K
imageИтак, как и обещал в первой части, продолжаем упрощать бытовую жизнь хабражителя. Сегодня 8 марта (кстати, девушки, поздравляю!) и части мужчин хочется порадовать своих женщин и освободить их от «рабского труда» на кухне, а другой части – приготовить для себя не традиционные пельмени\вареники\сосиски, а что-то посущественней.
Вот несколько проверенных рецептов, которые пригодятся и первым, и вторым.

Осторожно, много картинок. Голодным не входить!
Читать дальше →
Всего голосов 220: ↑168 и ↓52+116
Комментарии214

Проект нового кампуса Google

Время на прочтение2 мин
Количество просмотров60K


Компания Google славится своими офисами. Наверное, любой программист мечтает работать на территории Googleplex.
Но ни один из офисов компании не был построен с нуля. Она лишь брала существующую недвижимость и перестраивала под свои нужды.
Гугл не так давно уже предпринимал попытку построить собственный офис. В 2011 году был нанят немецкий архитектор Christophe Ingenhoven, который должен был спроектировать комплекс суперсовременных зданий неподалёку от существующего Googleplex. Но год спустя компания решила отказаться от этого проекта и осуществить свои планы в другой части Mountain View — ближе к заливу Сан-Франциско. Для этого было решено найти нового архитектора.
В распоряжение ресурса Vanity Fair попал рендер нового проекта, подготовленный архитектурным бюро NBBJ.
Подробности
Всего голосов 51: ↑42 и ↓9+33
Комментарии46

Обзор Direct Attached Storage CFI-B4043JDGG

Время на прочтение3 мин
Количество просмотров25K
Недавно я узнал об интересном классе устройств DAS (Direct Attached
Storage).



Это такой NAS, который не имеет собвственной операционной
системы на борту, но позволяет создать аппаратный рейд-массив из 2-8
дисков. Признаюсь, что если бы до этого у меня не было NASа, то я бы
усомнился в том, что такое устройство вообще может быть востребовано.
Непонятно, чем же оно лучше обычного выносного жёсткого диска. А
оказалось, что в определённых обстоятельствах DAS — это именно то, что
нужно.

Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии74

VKFS — Файловая система для VKontakte на основе Fuse

Время на прочтение1 мин
Количество просмотров48K
Не так давно на хабре (и на лепре, и еще где-то) появилась такая гифка:
image
Я посидел и подумал: «А почему бы и нет?»
Прошло некоторое время и, как я и обещал
Встречайте! VKFS — файловая система vkontakte, основаная на fuse.
Это не релиз — пока что реализована только возможность чтения собственной стены, но уже готов весь «каркас» для этого всего.
Читать дальше →
Всего голосов 247: ↑214 и ↓33+181
Комментарии159

Что такое SPF

Время на прочтение5 мин
Количество просмотров51K
Думаю, никому не нужно объяснять, какой проблемой является спам в наше время. Борьба с этим злом — дело не простое, и если хочется приблизится к идеалу, требующее сочетания нескольких элементов. Одним из этих элементов является протокол SPF. Будучи опубликованным в апреле 2006 года в RFC 2006 года к настоящему времени протокол имеет статус «экспериментальный», и достаточно неплохую распространенность.

SPF взят на вооружение такими гигантами, как Google, Яндекс, Mail.Ru, Microsoft, Рамблер. Yahoo не поддерживает SPF, а пытается продвигать свою разработку DKIM, к слову, не слишком успешно.

Итак — как же работает SPF?
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии43
1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность