Pull to refresh
4
Send message

15 вещей, которые вы бы не хотели знать о мессенджере MAX: тайная запись звука с микрофона в звонках и много чего еще

Level of difficultyMedium
Reading time15 min
Reach and readers229K

Я декомпилировал APK мессенджера MAX и проверил его поведение по коду. нашёл: скрытый SDK деанонимизации с отправкой реального IP в обход VPN на сторонний домен, недокументированную запись аудио со звонков по команде сервера, отключённую проверку TLS‑сертификатов в QUIC‑канале медиа, серверный C2-канал через WebSocket с командами выгрузки контактов и логов, аппаратный фингерпринт через Widevine DRM, ZipSlip в загрузчике моделей, передачу номера телефона по открытому HTTP, силовое обновление в обход Google Play, управление NFC‑payload из мини‑приложений, трекинг адресной книги в реальном времени и ещё несколько находок. Все находки сверены с реальным кодом, ссылки на файлы и классы в zarazaex69/m

Читать далее

Я заставил LLM писать Rust полгода. Вот что они стабильно ломают

Reading time11 min
Reach and readers25K

Полгода использовал Claude, GPT и Cursor как полноценного второго разработчика на Rust в проде. Собрал семь категорий ошибок, которые модели стабильно делают и которые проходят cargo build, cargo test, иногда cargo clippy и при этом являются UB или скрытыми архитектурными ловушками. Lifetime laundering, std::sync::Mutex через .await, Drop у транзакций, unaligned read, async cancellation, orphan rule и массивы на стеке. Разбираю, почему именно Rust ломает LLM и что с этим делать.

Читать далее

Почему собеседования превратились в театр впечатлений?

Reading time40 min
Reach and readers17K

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

В статье я детально разберу процесс собеседований.

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

Потому что, согласно исследованиям и статистике, найм - не метафорический театр впечатлений, а реальный цирк с клоунами и конями с уровнем ошибок в 40-60%, в котором только 10-20% рекрутеров действительно заняты своей работой, а не её имитацией.

Разбираться в найме лучше рекрутеров

Немного извращений из мира прокси и VPN

Level of difficultyMedium
Reading time9 min
Reach and readers60K

XTLS-Reality, XHTTP, Naiveproxy и всякие там AnyTLS - это не интересно. Давайте копнем чуть глубже и посмотрим, где прячется настоящее безумие. Особенно учитывая, что мы живем во времена, когда даже самые, казалось бы, безумные вещи, могут оказаться весьма полезными чтобы не сойти с ума.

Читать далее

«Хадза сидят 10 часов в день, и спина у них не болит. У вас — болит. Дело не в сидении»

Reading time17 min
Reach and readers12K

К 2050 году, по оценкам ВОЗ, болью в пояснице будут страдать 843 миллиона человек — против 619 миллионов в 2020-м. В 90% случаев врачи не находят конкретной причины боли: ни грыжи, ни перелома, ни опухоли, ни болезни органов, иррадиирующих боль в спину [1]. Просто болит. При этом охотники-собиратели племени хадза в Танзании проводят в покое почти столько же времени, сколько средний житель Лондона или Москвы — около 10 часов в день, — но болями в спине почти не страдают.

Боль, у которой нет причины

Если коротко: с болью в пояснице к врачу хотя бы раз в жизни приходит большинство взрослых людей в развитых странах. Это самое распространённое расстройство опорно-двигательного аппарата на планете и главная причина временной нетрудоспособности — больше, чем простуды, больше, чем травмы, больше, чем что бы то ни было ещё. Экономический ущерб исчисляется процентами ВВП.

Самое интересное начинается, когда такого пациента отправляют на обследование. По разным оценкам, от 90 до 98% случаев боли в пояснице получают диагноз «неспецифическая боль в спине» [1], [2]. В переводе с медицинского это означает: МРТ чистое, рентген чистый, анализы в норме, перелома нет, грыжи нет, опухолей нет, почки в норме. А боль есть. Врач разводит руками, выписывает НПВС и советует «больше двигаться».

Читать далее

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

Level of difficultyEasy
Reading time9 min
Reach and readers105K

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

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

Читать далее

Пишем свой TCP-чат на Go: пошаговый гайд на пальцах

Level of difficultyEasy
Reading time9 min
Reach and readers6.9K

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

Цель — создание простого tcp сервера для обмена сообщениями.

Читать далее

Способы обхода замедления Telegram

Level of difficultyEasy
Reading time9 min
Reach and readers517K

В последнее время Роскомнадзор начал активно замедлять работу Telegram на территории РФ. Замедление в большинстве случаев реализовано с помощью технологии DPI. Поэтому пользователи всё чаще ищут способы, которые позволяют добиться более стабильной работы Telegram. В этой статье я покажу несколько таких способов, которые помогают «ускорить» и повысить стабильность работы Telegram в условиях сетевых ограничений.

Читать далее

Подробный гайд для айтишников: как понять, что вы пришли к врачу–мракобесу?

Level of difficultyEasy
Reading time12 min
Reach and readers20K

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

Казалось, что айтишников с их вайбкодингом и Chat GPT уже не проведешь историями: «На, попей волшебные сахарные горошки и стань лучшей версией себя». Но нет, псевдоврачи и тут нашли лазейку. Вопросов и историй набралось так много, что решила собрать в статье ред флаги, при виде которых рекомендую напрячься и обратиться за вторым мнением к другому врачу.

Читать далее

Вход на «Госуслуги» без СМС и мессенджера MAX: настраиваем TOTP-аутентификацию

Reading time4 min
Reach and readers85K

Если вы не хотите использовать мессенджер MAX для входа на «Госуслуги», альтернативой  может стать стандарт TOTP: генерация одноразовых кодов на устройстве пользователя. В этой статье разберём, как подключить двухфакторную аутентификацию на портале и настроить совместимое приложение-генератор кодов.

Читать далее

Где поток ненужного софта? Почему заявления об ИИ-ассистентах не сходятся

Level of difficultyEasy
Reading time8 min
Reach and readers56K

Я в бешенстве. Я реально зол. Зол настолько, что хочется сносить чужие песочные замки, зарядить Дэниэлю ЛаРуссо по физиономии и поливать его грязью перед его девушкойa.

Вообще-то я не из тех, кого легко разозлить, но ситуация в индустрии достала окончательно.

Читать далее

Установка Max отдельно от всего в рабочем профиле на Android

Level of difficultyEasy
Reading time7 min
Reach and readers229K

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

Из-за чего весь сыр-бор? Вчера вышла статья, что потребитель пошел по магазинам, искать себе новый телефон для установки туда мессенджера Макс. На Хабре комментаторы в большинстве своем решили: это всё из-за недоверия народного! Допустим. А что, сразу телефон отдельный покупать надо?

Читать далее

А король-то голый! Как написать свой Claude Code в 200 строках кода

Level of difficultyEasy
Reading time7 min
Reach and readers26K

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

Но вот что я вам скажу: в основе этих инструментов не лежит магия. Для них достаточно примерно двухсот строк простого Python.

Давайте с нуля напишем собственный функциональный кодинг-агент.

Читать далее

Программисты всё вымирают и вымирают

Level of difficultyEasy
Reading time19 min
Reach and readers158K

Да вымереть не могут.

Откуда это всё пошло? Чем так условные «программисты» не угодили? И почему именно программисты?

Читать далее

GitLab: Основы написания Pipeline 1/3

Level of difficultyEasy
Reading time15 min
Reach and readers20K

Всем привет!

Так вышло, что в месте, где я преподаю и занимаюсь менторством стажёров, начался переход с GitHub-репозиториев на GitLab, развёрнутый на собственных серверах. Пока что перенесли не все проекты, но даже этого оказалось достаточно, чтобы у стажёров возникло немало вопросов — особенно в части настройки CI/CD-процессов.

Формально CI/CD в GitHub и GitLab решают одну и ту же задачу, но на практике подходы, терминология и детали конфигурации отличаются. Из-за этого попытки «сделать как в GitHub Actions» часто приводят к путанице и ошибкам.

У меня уже есть статья про CI/CD и workflow, но она целиком посвящена GitHub Actions. Чтобы сократить количество вопросов, разночтений и бессонных ночей у стажёров, я решил написать отдельную статью про CI/CD именно в GitLab — с учётом его особенностей и типичных подводных камней.

Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и практическими примерами из реальных проектов. А прямо сейчас у нас там ещё и проходит новогодний розыгрыш.

Читать далее

Обзор способов и протоколов аутентификации в веб-приложениях

Reading time18 min
Reach and readers740K


Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

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

Как растить мышцы двумя тренировками в неделю? Подход для людей с полной занятостью и готовый план на 2 дня

Reading time9 min
Reach and readers374K

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

Только вот некоторые культурные и даже профессиональные мифы повышают порог вхождения в тренажерный зал. Взращивают ментальный барьер, к которому нужно морально готовиться, настраиваться и из-за этого постоянно откладывать начало тренировок. Один из таких барьеров — время. Многие думают, что тренировки обязательно должны быть продолжительными, чтобы быть эффективными. Второй барьер — утомление. Не редко можно услышать что-то из разряда “не устал = не потренировался”, “не болит = не растет”.

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

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

Читать далее

OrbStack: Почему я забыл про Docker Desktop

Level of difficultyEasy
Reading time4 min
Reach and readers77K

Работая на MacBook с Docker Desktop, я часто сталкивался с тем, что система становилась менее отзывчивой, особенно при запуске нескольких контейнеров одновременно. Высокая нагрузка на CPU и память заметно влияла на время автономной работы.

Но недавно я наткнулся на OrbStack, и это изменило мой рабочий процесс настолько, что я решил поделиться своим опытом. Спойлер: теперь мой MacBook не превращается в печку, батарея держится дольше, а Docker-контейнеры летают.

Читать далее

Альтернативный список заблокированных в РФ ресурсов Re:filter

Reading time5 min
Reach and readers142K

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

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

Читать далее

Ассемблер для программистов на языках высокого уровня: Hello World

Level of difficultyMedium
Reading time6 min
Reach and readers72K

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим.

Рассмотрим следующий код:

section .data
  msg db "Hello, World!"

section .text
  global _start

_start:
  mov rax, 1
  mov rdi, 1
  mov rsi, msg
  mov rdx, 13
  syscall

  mov rax, 60
  mov rdi, 0
  syscall

К счастью, по второй строке мы можем понять, что он делает.

Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!

С чего же вообще начать?

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

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

Information

Rating
Does not participate
Registered
Activity

Specialization

Бэкенд разработчик, Разработчик приложений