Pull to refresh
2
0.1

User

Send message

Как кофе с собой делает нас нищими?

Level of difficultyEasy
Reading time4 min
Views86K

Дисклеймер: речь пойдёт не только о кофе — да и вовсе не о кофе. Суть статьи — попытаться ответить на вопрос: почему при нормальном доходе мы ничего не откладываем, не покупаем квартиры и прочие дорогостоящие вещи?

В любой истории нужен герой. Нашим героем будет Петя. Ему 27 лет, он живёт в Екатеринбурге, работает программистом на позиции Senior Backend Developer в крупной московской компании и получает пресловутые 300к/наносек — 300 000 рублей в месяц.

Как проходит обычный рабочий день Пети? Он едет на работу на такси (сегодня по акции — всего 500 рублей), по пути заходит в свою любимую кофейню, берёт раф без кофеина на безлактозном молоке. 400 рублей — копейки, он за 15 минут работы столько зарабатывает.

Доходит до своего рабочего места и начинает работать. Время обеда подходит — он открывает приложение доставки, заказывает себе еду из сервиса с обещанной доставкой от 15 минут. Тратит, ну, максимум 1000. Он же заслужил — ничего такого здесь нет. Попутно смотрит, куда бы сходить на выходных или вечером.

Наступает вечер, конец рабочего дня. Он выходит из офиса: на улице лето, солнце ярко светит, ни необходимости, ни желания ехать домой сразу нет — хочется прогуляться. По пути он снова заходит в свою любимую кофейню, берёт на этот раз бабл-ти. 300 рублей — копейки.

Гуляет по городу, наслаждается видами, но чувствует, что проголодался. Заходит в кафешку — хорошую, проверенную, он тут частенько бывает. Заказывает себе пасту, чайник пуэра. Рабочий день был тяжёлый — надо бы и кальянчик заказать. Сидит, пыхтит. Спустя часик выходит, закрывает счёт, даже не глядя, сколько там вышло. Вызывает такси — рублей за 700 на этот раз — и счастливый едет домой, в съёмную квартиру.

Читать далее

Основы работы с базой данных RIPE

Reading time13 min
Views47K


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

Защита от DoS/DDoS атак с помощью фильтрации по номеру автономной системы (ASN)

Reading time9 min
Views32K

Введение


В свете новогодних праздников с их неотъемлемым атрибутом — повышенной активностью DoS/DDoS атак хотелось бы поднять один довольно редко используемый (но при этом довольно эффективный) способ отражения атак — блокировка на основании принадлежности блоков IP адресов определенному провайдеру/Дата Центру.

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

Что я хотел бы знать заранее, когда выкупал себе целую ASN

Reading time16 min
Views18K

Как вы, возможно, знаете, я сейчас пишу серию статей о BGP и о том, как устроен Интернет. Рассказываю об этом с собственной точки зрения — как оператор небольшой автономной системы, AS200 351. Притом, что теоретического материала на эту тему много, предположу, что мои читатели достаточно поднаторели в теории и умеют самостоятельно обустроить элементарную автономную систему. Не вынуждая вас заниматься самостоятельными исследованиями, основанными на неактуальной и потенциально ошибочной информации, взятой из Интернета, а тем более не подвергая вас риску столкнуться с мошенничеством, полагаю, было бы важно рассказать, каково это — приобрести собственную ASN.

Читать далее

Анализируем сетевой трафик средних и крупных сетей с помощью Netflow/IPFIX/sFlow и боремся с DoS/DDoS с помощью BGP

Reading time11 min
Views4.2K

Не так давно мы выпустили новую версию open source xFlow-коллектора и анализатора xenoeye. Это неплохой повод попиариться. тем более что xFlow-коллекторами/анализаторами часто пользуются для анализа, мониторинга и борьбы с DoS/DDoS атаками, это сейчас очень актуально.

Если совсем коротко - анализатор собирает xFlow (Netflow и некоторые родственные протоколы типа Jflow, IPFIX, sFlow), распределяет их по объектам мониторинга, экспортирует информацию в СУБД (в текущей версии PostgreSQL), и может быстро реагировать на всплески трафика выше порогов для детекции DoS/DDoS атак с помощью скользящих средних.

Информацию из СУБД можно визуализировать разными способами - генерировать статические картинки и отчеты или показывать красивое в Grafana.
Реагировать на всплески можно тоже по-разному - отправлять сообщения в мессенджер, писать данные об аномалиях в БД, анонсировать BGP Flowspec для подавления атак.

Читать далее

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

Level of difficultyMedium
Reading time4 min
Views24K

Задачи на собеседованиях. Денежные переводы в SQL. Обновление счетов и уровни изоляций

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

Читать далее

Эволюция хранилища ВКонтакте: от первой реализации до наших дней

Level of difficultyMedium
Reading time9 min
Views3.3K

Привет, Хабр! Последние несколько лет я занимаюсь разработкой баз данных ВКонтакте. Аудитория такой крупной соцсети ежедневно генерирует огромные массивы информации. 

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

Читать далее

Как мы спроектировали и запустили собственную облачную платформу на 20К виртуальных машин — опыт Wildberries

Reading time12 min
Views9.3K

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

Привет, Хабр! Меня зовут Алексей Чуркин, я работаю в компании Wildberries, где строю приватное облако. В этой статье по мотивам моего доклада для Highload++ расскажу о том, как мы внутри компании построили облачную платформу, с какими сложностями столкнулись и как собираемся её развивать.

Читать далее

16 главных DevOps-метрик (DORA и не только!) — на чем сосредоточиться и как использовать

Level of difficultyEasy
Reading time13 min
Views4.8K

DevOps‑метрики — это количественные показатели, которые позволяют оценить эффективность, производительность и общее состояние DevOps‑процессов. Они предлагают аналитический взгляд на конвейер поставки программного обеспечения, позволяя командам разработчиков выявлять проблемные места, повышать производительность и принимать решения на основе реальных данных.

В этой статье мы поговорим о важности мониторинга DevOps‑метрик и о том, что именно нужно отслеживать. От широко известных метрик, которые приобрели статус стандартных благодаря DORA (DevOps Research and Assessment), до других важных индикаторов — мы предлагаем вашему вниманию исчерпывающее руководство, которое поможет вам измерить и оптимизировать ваши DevOps‑практики.

Читать далее

Пиши простой код

Level of difficultyEasy
Reading time4 min
Views52K

И это решит 95% проблем типичного стартапа. Как-то так повелось, что по всему СНГ и его окрестностям на работу набирают зумеров с колоссальным опытом в три года, и они начинают создавать идеальные архитектуры. Да, каждый из вас, как только получает возможность взять на себя хоть малейшую ответственность, сразу вспоминает все прочитанные и не прочитанные книги и пилит свою уникальную архитектуру, непохожую ни на что.

Читать далее

Делаем медиа сервер из Orange Pi Zero 3

Level of difficultyMedium
Reading time4 min
Views9K

В этой статье мы установим всё необходимое для работы Orange Pi Zero 3 в роли медиа сервера DLNA с Transmission. При этом система будет запускаться с жесткого диска, а для установки нам не потребуется подключать к Orange Pi клавиатуру либо дисплей.

Купив Orange Pi Zero 3, я первым делом полез в интернеты искать гайд для установки нужной мне системы, но везде натыкался на гайды где все операции проводят подключая Orange Pi Zero 3 (далее апельсин) к дисплею через Micro-HDMI (которого у меня не было) и набирая все команды через клавиатуру. В общем мне показалось это глупым, а главное мне было лень покупать и ждать пока придет Micro-HDMI, поэтому я нашел способ установить всё через ssh и здесь детально его распишу.

Читать далее

Проксирование из коробки: сравнительный анализ HAProxy, Envoy, Nginx, Caddy и Traefik

Level of difficultyMedium
Reading time23 min
Views19K

Всем привет, меня зовут Стас, я техлид в Mish Product Lab.

Тема возникла не просто так: внутри команды у нас было немало споров и дискуссий о том, какой инструмент для проксирования и терминации SSL лучше использовать в различных ситуациях. Изначально все наши гипотезы были основаны больше на личных предпочтениях, чем на реальных данных. Мы долго спорили, надеясь, что истина будет где-то рядом с нашими любимыми решениями. Но в итоге пришли к выводу, что единственный способ получить действительно объективный ответ — это протестировать и сравнить различные варианты на практике.

Именно так родилась идея провести сравнительный анализ производительности HAProxy, Envoy, Nginx, Caddy и Traefik с поддержкой SSL/TLS. Мы хотели понять, какой из инструментов «из коробки» предоставляет наилучшую производительность и минимальные накладные расходы, особенно при обработке SSL-трафика, который, как известно, требует дополнительных ресурсов из-за шифрования и дешифрования.

Читать далее

Архитектура в Laravel. Как сделать код понятным и масштабируемым

Level of difficultyEasy
Reading time5 min
Views7.8K

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

Читать далее

Домашнее облако: как я построил цифровой «бункер» для важных данных

Reading time30 min
Views33K

Фото важных семейных событий и видео из путешествий, копии важных документов, музыка, фильмы, которых не найти на стримингах — многие задумывались, как сохранить все самое важное так, чтобы ситуация с не вовремя сломавшейся флешкой не обернулась потерей ценных данных навсегда. Кому-то для спокойствия достаточно Google Drive или Яндекс.Диска, но я решил пойти чуть дальше и построить собственное домашнее облако с приложениями Immich и Nextcloud.

Кстати, привет, Хабр! Я Денис Петухов, Python-разработчик в Cloud.ru и сегодня я расскажу, как построил облако в шкафу. По ходу дела дам практические рекомендации по архитектуре, выбору оборудования, приложений, настройке сети и даже приведу расчеты того, что выгоднее, и сколько электричества «съедает» домашняя хранилка в месяц.

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

PHP под капотом: как работает генерация случайных чисел

Level of difficultyEasy
Reading time4 min
Views3.2K

Привет, Хабр!

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

Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!

Читать далее

Прячем шифрованные диски

Reading time4 min
Views9.2K

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

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

Что, если попробовать совместить одно с другим?

Читать далее

Как я нашел уязвимость в онлайн казино и получил $20 000 в качестве награды

Level of difficultyMedium
Reading time3 min
Views10K

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

Читать далее

Как сделать провальный стартап, если ты разработчик?

Level of difficultyEasy
Reading time3 min
Views12K

В этой статье очень наивный разработчик в лице меня рассказывает как пытался разобраться как строить стартапы.

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

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

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

Но я не учел того, что в IT продуктах сама разработка - далеко не самая важная для большинства проектов. Есть конечно высоконаучные области, например то, что делает OpenAI, но по большей части, разработка не так важна...

Читать далее

Пример HTTP-сервера на PHP с использованием файберов. Улучшенная версия

Level of difficultyHard
Reading time9 min
Views3.9K

В статье Пример HTTP-сервера на PHP с использованием файберов / Хабр краеугольным камнем организации обработки HTTP-соединений является функция socket_select(), которая имеет значительное ограничение - максимальное значение дескриптора, которое можно добавить в любой из трёх аргументов данной функции составляет 1024. Данный лимит определяется константой FD_SETSIZE, для увеличения которой придётся сконфигурировать системные лимиты и как минимум пересобрать интерпретатор PHP, что нецелесообразно и может создать эксплуатационные проблемы. К тому же, производительность функции select(), обёрткой над которой является функция socket_select(), значительно проседает при ощутимом увеличении значения константы FD_SETSIZE. В данной статье я постараюсь продемонстрировать альтернативу, позволяющую избавить пример из предыдущей статьи от данного ограничения.

Читать далее

Храним бэкапы правильно: основные способы оставить их «живыми»

Level of difficultyEasy
Reading time8 min
Views11K

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

Читать далее
1
23 ...

Information

Rating
4,394-th
Registered
Activity

Specialization

Information security architect
Lead
From 15,000 $
Negotiation
C++
Qt
OOP
Linux
PHP
SQL
Nginx
High-loaded systems
Designing application architecture