Как стать автором
Поиск
Написать публикацию
Обновить
-1
0

Пользователь

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

Разработка высоконагруженных API: проблемы, решения, практические рекомендации

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

Ваш проект взлетел. Первые пользователи превратились в тысячи. Тысячи стали десятками тысяч. Метрики в дашбордах рисуют красивую кривую, устремленную вверх. Но есть и другие кривые, которые ползут вверх с не меньшей скоростью. Время ответа сервера. Количество ошибок 502 и 504.

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

Читать далее

Плохие JOIN’ы: приемы, которые (нечаянно) кладут прод

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров26K

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

В этой статье разбираем один из самых коварных способов убить базу — плохие JOIN'ы. Казалось бы, простое дело: связать пару таблиц — и вперёд. Но если в ON засунуть LOWER(email), забыть про индексы или перепутать LEFT JOIN с INNER — сервер мигом начнет дышать на ладан.

Читать далее

Localhost-атака: как Meta* и Яндекс следят за пользователями Android через localhost

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

Мы раскрыли новый метод отслеживания, используемый компаниями Meta* и Яндекс, который потенциально затрагивает миллиарды пользователей Android. Мы обнаружили, что нативные приложения Android — включая Facebook, Instagram и несколько приложений Яндекса, таких как Карты и Браузер — незаметно слушают определенные локальные порты в целях отслеживания.

Эти нативные приложения Android получают метаданные браузеров, куки и команды от скриптов Meta* Pixel и Яндекс.Метрики, встроенных на тысячи веб-сайтов. Эти скрипты загружаются в мобильных браузерах пользователей и незаметно связываются с нативными приложениями, работающими на том же устройстве, через локальные сокеты (localhost). Так как нативные приложения программно получают доступ к идентификаторам устройства, таким как рекламный идентификатор Android (AAID), или обрабатывают идентификацию пользователя, как в случае приложений Meta, этот метод позволяет этим организациям связывать сессии мобильного браузера и веб-куки с личностью пользователя, тем самым деанонимизируя посетителей сайтов, на которых размещены их скрипты.

Этот способ передачи идентификаторов из браузера в приложение обходит типичные средства защиты приватности, такие как очистка куки, режим инкогнито и контроль разрешений Android. Более того, он открывает возможность для потенциально вредоносных приложений подслушивать веб-активность пользователей.

Читать далее

Радиолокационный радар — менее чем за 400 рублей: на базе esp32 и wi-fi

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


Приходило ли вам в голову, что ваша любимая esp32 может использоваться в роли самого натурального радиолокационного радара?

Если не приходило, то добро пожаловать под кат, так как кое-кому это пришло:-))
Читать дальше →

Как СМИ, консультанты, инфоцыгане и прочие провоцируют переработки и корпоративную шизу. Часть 4

Уровень сложностиПростой
Время на прочтение42 мин
Количество просмотров16K

В первых трёх частях мы с вами рассматривали, что именно провоцирует переработки и прочую корпоративную шизу. 

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

Вы представляете себе, насколько разрушительны для общества современные медиа и СМИ?

Знаете ли вы, что консультанты настолько любят переработки, что буквально не приносят никакой долгосрочной пользы для бизнеса?

Что инфоцыгане провоцируют иррациональную веру в простые, быстрые и работающие техники?

И на выходе бизнес полон переработок, глупостей, тупых решений и чистейшего идиотизма.

Лонгрид, как обычно, на основе исследований и демонстрирующих логику историях.

Найти простые пути к корпоративной шизе

Детальный обзор полей Галуа

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров16K

"Попросите Якоби или Гаусса публично высказать своё мнение — не о истинности, а о важности этих теорем. Позже, я надеюсь, найдутся люди, которым будет выгодно разобраться во всём этом хаосе."

Этими словами заканчивалось письмо Эвариста Галуа, написанное для своего друга Огюста Шевалье за два дня до его смерти от полученных на дуэли ран на 21 году жизни. Ни Якоби, ни Гаусс в его теоремах не разобрались, зато спустя 15 лет разобрался Жозеф Лиувилль и опубликовал работы Галуа, ставшие впоследствии фундаментом современной алгебры, известные сейчас как теория Галуа. В статье расскажу про одну из частей этой теории - поля Галуа, получившая настолько повсеместное применение в криптографии и избыточном кодировании, что Intel и AMD выпустили набор процессорных расширений для эффективной реализации операций над этими полями.

Заметка! Если вам довелось использовать/реализовывать поля Галуа, то большая часть статьи для вас скорее всего будет не интересна, но возможно в последних разделах будет что-то для вас новое.

Читать далее

Как собрать Docker-образ, который можно запускать в проде (а не только у себя на ноуте)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров31K

Если ты пишешь Dockerfile, скорее всего, он работает. Но вопрос не в том, работает ли. Вопрос в другом: будет ли он работать через неделю, на другом сервере, в CI/CD, на чужом железе — и будет ли это безопасно?

Читать далее

Призраки в коммитах: как я заработал $64 000 на удаленных файлах в Git

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

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

В каждом репозитории я восстанавливал удаленные файлы, находил непривязанные («висячие») объекты, распаковывал .pack-файлы и находил API-ключи, активные токены и учетки. А когда сообщил компаниям об утечках, заработал более $64 000 на баг-баунти.

Читать далее

Как некомпетентные лидеры становятся боссами, или откуда растут переработки и корпоративная шиза. Часть 3

Уровень сложностиСредний
Время на прочтение37 мин
Количество просмотров62K

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

В статье выделено несколько категорий таких некомпетентных лидеров.

Лонгрид о том, как психопаты, нарциссы, лжецы и прочие любители простых решений опережают компетентных лидеров. И как этому помогают СМИ, красивые бренды и наши заблуждения.

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

Всё, как обычно, на основе исследований и примеров.

Приятного чтения!

Выгнать некомпетентных лидеров из бизнеса

Социализм vs Капитализм — когда мифы важнее фактов

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

RE:"Почему социализм неэффективен"


Возьмём «эффективность рынка», которую автор статьи преподносит как священную корову. СССР, который он так любит критиковать за «отставание в микроволновках», за 30 лет превратил аграрную страну с 70% безграмотных в космическую сверхдержаву: первый спутник (1957), Гагарин (1961), АЭС (1954), ликвидация безработицы к 1930-му. Темпы роста ВВП — 6-7% в год против 3-4% в США. Да, холодильники внедряли медленнее — зато не было Великой депрессии, где в «прогрессивных» Штатах люди ели кору с деревьев, а 25% населения оказались без работы. Капитализм же десятилетиями копировал советские методы: Новый курс Рузвельта с госрегулированием и соцпрограммами .

Автор обожает рыночные KPI, но почему-то забывает, как Wells Fargo создал 3.5 млн фейковых счетов ради бонусов, а Volkswagen подделал данные выхлопов 11 млн авто. В СССР KPI были не идеальны, но кооператив Mondragon в Испании (где зарплата CEO всего в 6 раз выше рабочего, а не в 350, как в США) доказывает: социалистические предприятия могут быть эффективными. Капитализм же превращает труд в ад: сотрудники Amazon мочатся в бутылки, чтобы не терять время, а Джефф Безос платит 0% налогов, пряча $35 млрд прибыли в офшорах.

Реклама — ещё один «шедевр» рынка. 30% цены товара — это оплата манипуляций, чтобы вы поверили, что счастье в новом айфоне. Coca-Cola десятилетиями финансировала псевдоисследования, доказывающие, что ожирение — от «недостатка спорта», а не сахара. Результат? 42% американцев с ожирением. В фильме «Век эгоизма» показано, как неолибералы превратили общество в стаю одиноких потребителей, где даже бунт стал товаром (спасибо Жижеку за анализ того, как Che Guevara красуется на футболках H&M).

Капитализм убивает не только тела, но и разум. Этилированный бензин — история о том, как General Motors 50 лет травила мир свинцом, зная о его нейротоксичности. Результат: миллионы детей с отставанием в развитии и всплеск преступности в 1980-х. Или Purdue Pharma, подсадившая 500,000 человек на опиоиды ради прибыли в $13 млрд. Это не «ошибки системы» — это её суть.

Автор верит в «налоговое чудо», но Microsoft, Apple и Google ежегодно укрывают.Microsoft держала 500млрд в офшорах.

Капитализм не смог решить ни одну глобальную проблему. Климатический кризис? ExxonMobil знала о нём с 1970-х, но спонсировала скептиков. Социальное неравенство? 1% богатейших владеют 45% мировых богатств (Oxfam, 2023). Альтернативы есть: Керала в Индии под управлением коммунистов снизила бедность с 60% до 12%, а анархо-синдикалисты в Барселоне 1936 года создали самоуправляемые школы и заводы.

СССР, при всех его перекосах, показал, что экономика может работать на человека, а не на не на прибыль. Да, не было TikTok, зато было бесплатное образование, медицина и уверенность, что твой труд нужен обществу, а не акционерам.

Читать далее

Халява уходит из программирования

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

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

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

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

Читать далее

Все знают, где ты находишься — можешь убедиться сам

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров56K


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

За это время я пообщался со многими людьми из этой сферы: с членами некоммерческих организаций, сражающихся за права на конфиденциальность данных в разных странах до сотрудников компаний, занимающихся рекламными технологиями. Они подтвердили или опровергли мои слова (в основном подтвердили). Меня даже пригласили в подкаст «Lock and Code» для обсуждения геолокационных данных и конфиденциальности.

Я ещё раз прошёлся по процессу, описанному в первом посте, и решил сделать его более быстрым и масштабируемым: ручной анализ сотен запросов в Charles отлично подходит для исследований и обучения, но для нахождения «интересных» запросов конкретного приложения мне требовалось слишком много времени.

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

* Деятельность Meta — соцсети Facebook и Instagram — запрещена в России как экстремистская.

▍ TL;DR


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

Описание выложено в репозиторий GitHub.
Читать дальше →

Мой первый контейнер без Docker

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров42K

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Как отличаются СДВГ люди от обычных людей? И зумеры — это СДВГшники или просто ленивые инфантилы?

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров93K

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

Предупреждение: Данная статья написана не квалифицированным врачом-психиатром, а пациентом с СДВГ. И есть основания полагать, что понимаю я в этой теме больше, чем многие психиатры на территории бывшего СССР.

Читать далее

Очередная китай-камера с бэкдором

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

Как можно догадаться, на этот раз речь пойдёт об очередном поделии китайского IoT-гения, а именно о цифровой камере для третьего "глаза" микроскопа (можно ли назвать камеру для микроскопа IoT-ом?). Не знаю, может у них там сверху наказ такой: в каждую камеру по бэкдору совать (и чем больше, тем лучше), но это в самом деле треш.

За какую камеру ни возьмись: будь она для видеонаблюдения, либо, как в моём случае, для вывода картинки с микроскопа на монитор/смартфон - по факту вы получаете не только девайс, выполняющий свои основные функции, но и как "премиум-фичу" - потенциально следящее (конечно же, за Вами) устройство. Об одном таком девайсе я и хочу рассказать.

Читать далее

Сам себе мобильный интернет. Запускаем базовую станцию стандарта 4G LTE

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров105K
Приветствую всех!

Я уже не раз рассказывал про то, как в домашних условиях поднять сотовые сети разных стандартов. Но всё же все они были уже весьма древними. Самое время замахнуться на кое-что поинтереснее — LTE.



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

Я тебя найду и позвоню

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров178K

Абсолютно легальные инструменты за смешные деньги могут позволить вам: звонить всем активным клиентам ваших конкурентов, построить десяток эффективных мошеннических схем, или даже позвонить предполагаемому любовнику вашей девушки/жены, а заодно проверить где она была вчера вечером! Обнаружил я это в ходе одного из расследований утечек заявок клиентов. И я твердо уверен, что такого быть не должно. Инструмент использующийся в статье эффективнее всех утечек вместе взятых, нашими данными не должны так легко легально торговать практически в режиме онлайн. Можно найти любого и позвонить любому из нас. Почему и как это работает, какие риски это несет и как этому противодействовать?

Расскажу далее.

Неочевидные для начинающих тонкости Postgres

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров47K

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

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

За исключением… Postgres.

Не потому, что официальная документация несовершенна (она прекрасна!), просто её очень много. Если распечатать её как стандартный PDF на бумаге формата Letter, то получится 3206 страниц (для текущей версии 17)1. Разработчик-джун вряд ли сможет сесть и прочитать её с начала до конца.

1. Если печатать на бумаге A4, то получится 3024 страницы; наверно, это ещё один аргумент в пользу стандарта.

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

Надеюсь, это упростит процесс освоения для читателей моей статьи.

Стоит отметить, что многое из описанного может быть применимо и к другим системам управления базами данных (СУБД) SQL и вообще к базам данных в целом, но я слабо знакома с ними, так что не буду утверждать с уверенностью.
Читать дальше →

Графические оболочки FFmpeg

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров40K


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

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

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

Люди не понимают ООП

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров124K

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton.

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
1
23 ...

Информация

В рейтинге
6 750-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Фронтенд разработчик
Ведущий
Git
Linux
Python
React
TypeScript
JavaScript
Ansible
Rust