Как стать автором
Обновить
33
0
Василий Марютенков @marriva

DevOps-инженер

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

Разведка с geo2ip и reverse-whois

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

Разведка сетевых ресурсов компании главным образом заключается в брутфорсе поддоменов с последующим ресолвом найденных сетевых блоков. Далее могут быть найдены новые домены 2 уровня и процедура повторяется снова. Это позволяет найти новые IP-адреса на каждой итерации.

Этот метод, пожалуй, самый эффективный. Однако встречались такие ситуации, когда целая подсеть /24 оставалась не найденной.

В наши дни появилось еще одно мощное средство — passive dns, которое позволяет сделать то же самое что и классический DNS-ресолв, но используя специальный API. Это может быть, к примеру, «virustotal» или «passive-total». Эти сервисы записывают DNS запросы и ответы, которые собираются с популярных DNS-серверов. Преимущество этого подхода в том, что нам не нужен брутфорс. Мы просто указываем IP-адрес и получаем все известные DNS записи. Или, наоборот, указывая DNS мы получаем все IP-адреса, которые ассоциированы с данным именем. У данного подхода есть неоспоримое преимущество — мы можем найти старые сервера сайтов, которые ресолвились раньше. Ведь в конце концов старые сайты наиболее вероятно будут содержать уязвимости.

Несмотря на описанные выше техники существует еще несколько чуть менее популярных, но всё же дающих результаты. В данной статье мы рассмотрим ещё две методики разведки — поиск IP-адресов по географическим данным (geo2ip) и нахождение IP-адресов по имени компании (reverse-whois).

Geo2ip

Что такое geoip, думаю, знают многие из нас. Он используется достаточно часто как разработчиками, так и администраторами. Однако geoip используется главным образом в направлении ip → geo. В нашем же случае это не так интересно. Забавно, но перед тем, как разработать собственное решение, не было найдено ни одной библиотеки, позволяющей делать запросы в обратном направлении geo → ip. Поэтому было решено написать собственный инструмент, более того что реализуется это не так уж и сложно.

Читать далее
Всего голосов 10: ↑9 и ↓1+13
Комментарии1

История блужданий по документации Haproxy, или на что стоит обратить внимание при его конфигурации

Время на прочтение8 мин
Количество просмотров31K
И снова здравствуйте!

В прошлый раз мы рассказывали о выборе инструмента в Ostrovok.ru для решения задачи проксирования большого количества запросов к внешним сервисам, никого при этом не положив. Статья закончилась выбором Haproxy. Сегодня я поделюсь нюансами, с которыми мне пришлось столкнуться при использовании этого решения.


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

Коварство метрик памяти Kubernetes (и cgroups)

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров14K

В этой статье мы рассмотрим память внутри контейнера Kubernetes. Какие есть основные типы памяти, как они управляются и какие коварные моменты с ними связаны. В этой статье вы узнаете ответы на интересные вопросы:

Какие метрики памяти считаются неправильно?

Сколько раз надо прочитать файл, чтобы он хорошо закешировался?

Какую память учитывает Out-of-memory killer?

Начать погружение в дебри памяти
Всего голосов 37: ↑37 и ↓0+37
Комментарии15

Список ноотропов, покупка которых не окажется пустой тратой денег

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

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

Читать далее
Всего голосов 95: ↑59 и ↓36+49
Комментарии238

Почему современная наука основана на вере?

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

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

Проблема неполной индукции

Знаменитый древнегреческий философ Аристотель в своем трактате «Аналитика» выделяет два вида возможных умозаключений - индуктивное и дедуктивное.

Дедуктивное умозаключение - это логический вывод о частных случаях исходя из общего правила. Индуктивное умозаключение - это логический вывод об общем правиле исходя из частных случаев.

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

Индукцию Аристотель делил на два вида: полную и неполную. Полная индукция - это вывод общего правила на основе свойств всех элементов множества, а неполная - это предположение об общем правиле на основе части элементов множества.

Читать далее
Всего голосов 95: ↑72 и ↓23+76
Комментарии623

Как освоить Vim?

Время на прочтение6 мин
Количество просмотров93K
Осваивать Vim — это, пожалуй, страшно. Или, точнее, очень страшно. Речь идёт об изучении совершенно необычного подхода к редактированию кода, не говоря уже о работе с простым текстом. Многие несправедливо обвиняют тех, кто выбирает Vim, в том, что они впустую тратят время.

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



Если вам очень хочется узнать о том, стоит ли вам использовать Vim, и о том, кто и для чего им реально пользуется — взгляните на этот материал (кстати, не позвольте его названию, «Не пользуйтесь Vim», ввести себя в заблуждение). Ещё можете посмотреть это видео, которое, кстати, подготовил сам Люк Смит.

А теперь, учитывая всё вышесказанное, предлагаю поговорить о том, что такое, на самом деле, Vim!
Читать дальше →
Всего голосов 44: ↑39 и ↓5+51
Комментарии370

Mikrotik-Qos Приоритезация по типу трафика и деление скорости

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

Mikrotik-Qos Приоритезация по типу трафика и деление скорости



imageДоброго времени суток, сегодня речь пойдет о наболевшем, а именно о том, как грамотно разделить интернет канал, чтобы все ваши пользователи были максимально довольны.
Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии13

Топ-10 книг для разработчика

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

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




Привет, хабр! Продолжаю делиться полезными подборками. Совсем недавно я опубликовал 2 поста с перечнем Github репозиториев: Часть1 и Часть2. На этот раз предлагаю вашему вниманию подборку полезных книг для разработчиков. Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+22
Комментарии40

Признаки плохого программиста

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

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Читать дальше →
Всего голосов 374: ↑297 и ↓77+220
Комментарии260

Packer, Terraform и Ansible: деплой кластера Kubernetes за час

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


Привет, меня зовут Андрей Щукин, я помогаю крупным компаниям мигрировать сервисы и системы в Облако КРОК. Вместе с коллегами из компании Southbridge, которая проводит в учебном центре «Слёрм» курсы по Kubernetes, мы недавно провели вебинар для наших заказчиков.

Я решил взять материалы отличной лекции Павла Селиванова и написать пост для тех, кто ещё только начинает работать с инструментами provisioning’а облаков и не знает, с чего начать. Поэтому я расскажу про стек технологий, которые используются у нас в обучении и продакшене Облака КРОК. Поговорим о современных подходах к управлению инфраструктурой, про связку компонентов Packer, Terraform и Ansible, а также про инструмент Kubeadm, с помощью которого мы будем производить установку.

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

Не давайте имён курам
Печёные пирожки полезнее жареных
Начинаем печь. Packer
Terraform — инфраструктура как код
Запуск Terraform
Структура кластера Kubernetes
Kubeadm
Репозиторий со всеми файлами
Читать дальше →
Всего голосов 26: ↑24 и ↓2+27
Комментарии3

Структуры данных для самых маленьких

Время на прочтение22 мин
Количество просмотров339K
James Kyle как-то раз взял и написал пост про структуры данных, добавив их реализацию на JavaScript. А я взял и перевёл.

Дисклеймер: в посте много ascii-графики. Не стоит его читать с мобильного устройства — вас разочарует форматирование текста.


Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии51

Онтол: подборка статей про «выгорание» [100+]

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

Я «просмотрел» 560 постов на Хабре и (предварительно) выделил для себя топ-10 самых полезных материалов про эмоциональное/профессиональное выгорание.


Моя гипотеза — если человеку действительно важен какой-то вопрос, он потратит на него более 100 часов (за несколько лет) и просмотрит более 100 (а может и 1000 публикаций). И чтобы «не делать работу дважды», было бы круто поделиться самыми ценными находками, это сократит время тому, кто пойдет следом.

Онтол — это персональный ранжированный список топ-10 самых полезных материалов на важную тему. Плюс лонглист (100+). Этот список можно постоянно дополнять в течение жизни и смены приоритетов, а так же «подглядывать» в списки других людей, находить полезные материалы и «братьев по оружию». (оставляйте почту, через неделю вышлю инвайт на закрытую бету.) Онтол про удаленную работу тут.

Предлагаю вам составить свой личный топ-10 материалов про выгорание (если вам эта тема важна и вам интересно с ней разобраться), либо составить топ-10 материалов по важной для вас теме и поделиться им в комментариях.

Под катом лонглист полезных материалов с Хабра про «выгорание» (ранжирован по хабрарейтингу). + Опрос в конце по следующим темам.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+13
Комментарии7

450 бесплатных курсов от Лиги Плюща

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


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

Я сейчас решаю задачу, как из огромной массы жизненно важного контента выбрать тот, который стоит попробовать в первую очередь, как «разметить данные», чтобы нейросеточка у подрастающего поколения обучилась более эффективно. (ontol.org, «Выгорание», «Удаленка», телеграм-канал).

Предлагаю вашему вниманию полную подборку всех бесплатных курсов от Лиги Плюща.

Лига плюща (The Ivy League) — ассоциация восьми частных американских университетов, расположенных в семи штатах на северо-востоке США. В состав лиги входят: Брауновский университет (Brown University), Гарвардский университет (Harvard University), Дартмутский колледж (Dartmouth College), Йельский университет (Yale University), Колумбийский университет (Columbia University), Корнеллский университет (Cornell University), Пенсильванский университет (University of Pennsylvania), Принстонский университет (Princeton University).

Эти университеты выпустили около 500 онлайн-курсов, 450 из которых сейчас доступны.

Оглавление


Computer Science (37)
Data Science (18)
Программирование (8)
Гуманитарные науки (80)
Бизнес (72)
Art & Design (20)
Наука (32)
Социальные науки (74)
Здоровье и медицина (32)
Инженерия (15)
Образование и преподавание (21)
Математика (14)
Личностное развитие (7)

Читать дальше →
Всего голосов 20: ↑19 и ↓1+23
Комментарии5

Еще раз про эмоциональное выгорание

Время на прочтение10 мин
Количество просмотров34K
Вот уже более 12 лет я сгораю. Работаю, выгораю и ухожу в запой на неделю. Затем с болью и титаническими усилиями возвращаюсь к жизни, к клиентам, которых не успел потерять за недели небытия и цикл повторяется. Больше 12 лет.

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

Спрыгнуть с него кажется нереальным. Хотя бы потому что счета, семья, ипотека на 2000 лет, и желание соответствовать. Вы — житель мегаполиса хотите быть не хуже, чем сосед, чем родителей других детей, чем друг детства и в конце концов быть на вершине горы, посматривая на всех свысока. Нет? Но вкалываете вы все равно до выпученных глаз, забывая про здоровье, потом про друзей, потом про то что вокруг вообще существует жизнь за пределами вашего монитора. Вы идентифицируете себя с работой, и вся энергия уходит в нее. Вы трудоголик и вероятно вы сгораете на работе, также как и я.

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

Скульптура
12 лет фриланства

Всего голосов 28: ↑17 и ↓11+14
Комментарии74

Опасно ли держать открытым RDP в Интернете?

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

Нередко я читал мнение, что держать RDP (Remote Desktop Protocol) порт открытым в Интернет — это весьма небезопасно, и делать так не надо. А надо доступ к RDP давать или через VPN, или только с определённых "белых" IP адресов.


Я администрирую несколько Windows Server для небольших фирм, в которых мне поставили задачу обеспечить удалённый доступ к Windows Server для бухгалтеров. Такой вот современный тренд — работа из дома. Достаточно быстро я понял, что мучить бухгалтеров VPN — неблагодарное занятие, а собрать все IP для белого списка не получится, потому что IP адреса у народа — динамические.


Поэтому я пошёл самым простым путём — пробросил RDP порт наружу. Теперь для доступа бухгалтерам нужно запустить RDP и ввести имя хоста (включая порт), имя пользователя и пароль.


В этой статье я поделюсь опытом (положительным и не очень) и рекомендациями.

Читать дальше →
Всего голосов 35: ↑30 и ↓5+32
Комментарии156

Бум бессмысленной занятости

Время на прочтение11 мин
Количество просмотров74K
Оригинал статьи опубликован 7 июня 2018 года в журнале The New Yorker

У всё большего количества людей работа становится бессмысленной. Есть ли какая-то польза от однообразной рутины?


В своей новой книге антрополог Дэвид Грэбер ищет диагноз и эпидемиологию того, что он называет «бесполезными работами, о которых никто не хочет говорить». Иллюстрация: Martina Paukova

Бредовая работа как бумажные отходы накапливается в офисах с неизбежностью февральского снега. Отчёты об обоснованиях… Что это? Никто не знает. И всё же они накапливаются вокруг, согретые ксероксом, чтобы их никто не читал. Документы о передовом опыте? Никто понятия не имеет, даже авторы. Кто-то думал, что электронный документооборот избавит нас от этой чуши. Он ошибся. Теперь весь день вы получаете электронные письма о «близости к потребителю» (о, боже); «нашей команде» (чьей команде?); а ещё новое ПО отчётности о расходах требует, чтобы все квитанции сохранялись на бумаге, сканировались и загружались на сервер, который их отклоняет, потому что вы не смогли предзагрузить постфактум важную форму. Если повезёт, подобная чушь отнимет лишь несколько часов обычной рабочей недели. Но если вы среди миллионов менее удачливых американцев, то это суть всей вашей трудовой деятельности.
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии127

Как работают квантовые компьютеры. Собираем паззл

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


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


А недавно ко мне подошли коллеги и спросили “Ты понимаешь как работает квантовый компьютер? Можешь нам рассказать?” И тут я понял, что проблема со складыванием в голове целостной картинки есть не только у меня.


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

Получилось или нет - решать, как обычно, вам.
Всего голосов 111: ↑111 и ↓0+111
Комментарии105

Автоматизируем сбор информации о падениях программы

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


Перефразируя известную поговорку: «не делает багов тот, кто ничего не кодирует». Каждый разработчик умеет и любит делать баги, но не любит потом их исправлять. Ошибки в коде в одном случае приводят просто к некорректной обработке данных программой, а в другом — к исключениям (вылетам, падениям, крашам). В этом посте я расскажу о том, как можно автоматизировать сбор данных о краше программы, чтобы сильно облегчить себе жизнь при разборе и устранении ошибок.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии3

Распределенные вычисления в Elixir — классический пример MapReduce

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

Распределенные вычисления в Elixir


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


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


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

На пути к функциональной СУБД и NoSQL ERP: хранение остатков и расчет себестоимости

Время на прочтение10 мин
Количество просмотров4.6K
Привет, Хабр!

Продолжаем исследовать применимость принципов функционального программирования при проектировании ERP. В предыдущей статье мы рассказали зачем это нужно, заложили основы архитектуры, и продемонстрировали построение простых сверток на примере оборотной ведомости. По сути, предлагается подход event sourcing, но за счет разделения БД на иммутабельную и мутабельную часть, мы получаем в одной системе комбинацию преимуществ map / reduce-хранилища и in-memory СУБД, что решает как проблему производительности, так и проблему масштабируемости. В этой статье я расскажу (и покажу прототип на TypeScript и рантайме Deno), как в такой системе хранить регистры мгновенных остатков и рассчитывать себестоимость. Для тех, кто не читал 1-ю статью — краткое резюме:

1. Журнал документов. ERP, построенная на базе РСУБД представляет собой огромный мутабельный стейт с конкурентным доступом, поэтому не масштабируется, слабо-аудируема, и ненадежна в эксплуатации (допускает рассогласование данных). В функциональной ERP все данные организованы в виде хронологически-упорядоченного журнала иммутабельных первичных документов, и в ней нет ничего кроме этих документов. Связи разрешаются от новых документов к старым по полному ID (и никогда наоборот), а все остальные данные (остатки, регистры, сопоставления) являются вычисляемыми свертками, то есть кэшируемыми результами работы чистых функций на потоке документов. Отсутствие стейта + аудируемость функций дает нам повышенную надежность (блокчейн на эту схему прекрасно ложится), а бонусом мы получаем упрощение схемы хранения + адаптивный кэш вместо жесткого (организованного на базе таблиц).
Читать дальше →
Всего голосов 11: ↑8 и ↓3+8
Комментарии88

Информация

В рейтинге
Не участвует
Откуда
Сергиев Посад, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность