Одну и ту же задачу в программировании можно решить множеством различных способов. Привычного подхода, когда мы просто вызываем методы напрямую, обычно хватает почти для всех типов задач. Но с таким подходом в больших системах не всегда удаётся сохранить качество кода и малое количество связей между его компонентами. В этом могут помочь события, но не простые, а глобальные. Я предлагаю разобрать, для чего в приложении могут понадобиться глобальные события. Какие проблемы они решают и какие создают. И как реализовать их наилучшим способом.
Developer
Обзор актуальных инструментов шифрования в Android
Привет, Хабр! Меня зовут Артур Илькаев, я работаю в департаменте экосистемных продуктов, мы разрабатываем VK ID SDK и все что связано с авторизацией и сессиями, в частности — мультиаккаунт.
Секретные данные требуют особого внимания при хранении и передаче. Инструменты для шифрования могут варьироваться по степени сложности, надёжности и производительности. В этом обзоре мы рассмотрим несколько таких инструментов, опишем их эффективность и расскажем о распространённых ошибках при их использовании. Статья написана по мотивам разработки мультиаккаунта, который подвёл нас к исследованию оптимального и безопасного способа хранения сессий.
Осознанная оптимизация Compose
Привет, меня зовут Андрей Богомолов, я Android-разработчик в команде Платформа приложения Ozon Seller.
Jetpack Compose — относительно молодая технология написания декларативного UI. Множество разработчиков даже не предполагают, что пишут неоптимальный код в такой критически важной части, и впоследствии это приводит к неожиданной низкой производительности и проседании метрик.
Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированных особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.
Powered by ZeroTier. Практическое руководство по строительству виртуальных сетей. Часть 1
Продолжая рассказ о ZeroTier, от теории, изложенной в статье «Интеллектуальный Ethernet-коммутатор для планеты Земля», перехожу к практике, в которой:
- Создадим и настроим частный сетевой контроллер
- Создадим виртуальную сеть
- Настроим и подключим к ней узлы
- Проверим сетевую связность между ними
- Закроем доступ к GUI сетевого контроллера извне
Будни техпода. Ошибки при подключении по RDP
Для доступа удалённому Windows-серверу из Windows-системы большинство администраторов используют протокол удалённого рабочего стола (Remote Desktop Protocol — RDP). Есть, конечно, и существенная доля тех, кто оперирует более обширным перечнем вариантов подключения — Microsoft Remote Assistance, VNC, Radmin и много чего ещё, но мы поговорим про RDP. Вернее, не о самом RDP, а о проблемах, которые могут возникнуть при подключении к удалённому серверу при помощи этого протокола.
Для многих, вероятно, не составляет труда решить внезапно возникшее затруднение, когда почему-то не получается подключиться к виртуалке, вдобавок практически каждый, не сходя с места, подкинет пару-тройку советов, где и что следует глянуть, чтобы исправить проблему. И всё же, вдруг кто-то чего-то не знает. На этот случай под катом несколько способов выхода из ситуации — по большей части самых простых.
Держи свой трафик в тайне. SSL Pinning — ещё раз о том же самом
Всем привет! Меня зовут Юрий Шабалин, я один из основателей компании Stingray Technologies. Мы разрабатываем платформу анализа защищенности мобильных приложений iOS и Android.
Сегодня я хотел бы снова затронуть тему безопасности сетевого взаимодействия между приложением и его серверной частью. На эту тему написано немало, но комплексной статьи, отвечающей на самые разные вопросы, начиная от того, что же такое SSL, до того, как работает атака MiTM и как от нее можно защититься, я еще не встречал (а может, просто плохо искал). В любом случае, мне бы хотелось поделиться своими мыслями на этот счет и внести свою малую долю в русскоязычный контент на эту тему.
Статья может быть полезна для разработчиков, которые хотят понять, как устроен процесс прикрепления (пиннинга) сертификатов и специалистам по анализу защищенности мобильных приложений.
Наиболее распространенные уязвимости в мобильных приложениях
Всем привет, меня зовут Юрий Шабалин, я один из основателей компании "Стингрей Технолоджиз" (входит в группу компаний Swordfish Security), мы разрабатываем платформу анализа защищенности мобильных приложений iOS и Android. Этой статьей я бы хотел открыть серию материалов, посвященных мобильной безопасности. И сегодня поговорить о тех уязвимостях, что мы встречаем чаще всего при автоматическом анализе.
Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp
> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через веб-архив.
На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.
В этой статье я описал универсальное решение, которое обеспечивает прозрачный доступ к международному интернету в обход цензуры, использует передовые технологии маскировки трафика, не зависит от воли одной корпорации и главное — имеет избыточный «запас прочности» от воздействия цензоров.
Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).
Если у вас ещё нет личного прокси для обхода цензуры — это знак.
Построение архитектур для обработки данных в режиме реального времени при помощи Apache Kafka, Flink и Druid
Командам, которые занимаются обработкой данных (поступающих пакетными партиями в рабочих потоках) сложно соответствовать современным требованиям по обработке данных в режиме реального времени. Почему? Потому что пакетный поток данных – от доставки данных до их дальнейшей обработки и анализа – это такая вещь, при работе с которой нужно уметь ждать.
Требуется ждать тех данных, которые пойдут на отправку в ETL-инструмент, дожидаться, пока будет обработана куча данных, ждать, пока информация будет загружена в хранилище данных и даже ждать, пока закончат выполняться сделанные запросы.
Но в опенсорсном пространстве есть решение, разработанное в опенсорсе. В сочетании друг с другом Apache Kafka, Flink и Druid, позволяют создать архитектуру для обработки данных, которая работает в режиме реального времени и позволяет исключить все эти этапы ожидания. В этом посте мы исследуем, как комбинация этих инструментов позволяет создавать широкий спектр приложений для обработки данных в режиме реального времени.
Выбор СУБД: шпаргалка, чтобы не запутаться
Вопрос выбора СУБД для российской компании или госоргана – вопрос не праздный, тем более сейчас – когда с момента ухода с рынка западных вендоров прошло уже полтора года и пора что-то решать. Но как не запутаться в номенклатуре СУБД и выбрать ту, которая лучше всего подходит? Без ложной скромности скажу: мы в «Кругах Громова» уже немного поднаторели в систематизации, поэтому надеемся, что наша шпаргалка для тех, кто хочет выбрать СУБД, окажется полезной.
Начнем с классики. СУБД делятся на несколько типов. Не будем описывать их подробно, остановимся только на их основном предназначении.
97 откликов, 2 тестовых, 3 технических собеседования — и оффер в IT-компанию у меня в кармане
Привет, я Настя — младший разработчик в «Метре квадратном». Это статья о том, как я пришла в разработку практически с нуля в 2023 году. Знаю, на «Хабре» таких уже много, но когда-то подобная статья помогла мне начать свой путь, и я решила, что этот текст тоже может быть полезен кому-то другому.
В статье описала мой опыт: обучение разработке с нуля и поиск работы в IT. Если вам не хочется читать статью, но интересно посмотреть алгоритм действий, он в самом конце текста.
.NET 7 против российской криптографии. Часть 2. Штампы времени
Практически неотъемлемой частью формирования электронной подписи стало формирование штампов времени (TS) на подпись. С их помощью обеспечивается доверенное подтверждение времени подписания документа. Со штампами времени в .NET 7 та же беда, что и с CMS-сообщениями - отсутствие нативной поддержки российских алгоритмов хэширования и электронной подписи на уровне фреймворка. Но, благо, старый добрый WinAPI и здесь поможет обойти проблему.
Создание сервиса авторизации через систему ЕСИА
Всем привет. Меня зовут Динис, я старший разработчик в БФТ-Холдинге.
В данной статье приведен план по созданию сервиса авторизации через систему ЕСИА. Тема будет интересна тем, кто внедряет такой сервис для своего приложения. В статье я собрал ключевые выдержки из документации с частями кода, а весь код вы можете найти в конце статьи по ссылке на GitHub.
Что такое ЕСИА?
ЕСИА — единая система идентификации и аутентификации. В ней формируются, учитываются и хранятся сведения об участниках системы — физических и юридических лицах, которые прошли регистрацию с созданием учётной записи. Подтверждённая учётная запись в ЕСИА — своего рода электронный паспорт, с помощью которого можно получать доступ к разным сайтам, порталам и системам, не используя дополнительные средства регистрации и авторизации, например логин и пароль.
Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто
В серии предыдущих статей я описывал, почему повсеместно используемые VPN- и прокси-протоколы такие как Wireguard и L2TP очень уязвимы к выявлению и могут быть легко заблокированы цензорами при желании, обозревал существующие гораздо более надежные протоколы обхода блокировок, клиенты для них, а также описывал настройку сервера для всего этого.
Но кое о чем мы не поговорили. Во второй статье я вскользь упомянул самую передовую и недетектируемую технологию обхода блокировок под названием XTLS-Reality, и пришло время рассказать о ней поподробнее, а именно - как настроить клиент и сервер для нее.
Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.
Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках
Всем привет! Возможно уже совсем скоро разные новостные и IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.
Особенности проксирования через CDN/Websocket/gRPC для обхода блокировок
Эта статья — заключительная (наконец‑то!) из моего огромного цикла про недетектируемые инструменты для обхода блокировок. В предыдущих публикациях я упоминал, что клиенты и серверы XRay (форк V2Ray) и Sing‑box при использовании протоколов VLESS/VMess/Trojan могут работать через веб‑сокеты и gRPC, что позволяет подключаться к даже заблокированным Роскомнадзором прокси‑серверам через CDN (content delivery или content distribution network) и дает дополнительные преимущества. Сегодня мы поговорим об этом поподробнее.
Вещественные числа с плавающей двоичной точкой в .NET и .NET Framework
В статье разбираются ситуации, когда операции над вещественными числами с плавающей двоичной точкой (типы float и double в C#) дают результаты, отличные от ожидаемых интуитивно. Подробно разобраны причины этих отличий, приведены примеры, когда результат получается разный в .NET и .NET Framework или изменяется при переключении между конфигурациями Debug и Release, а также между x86 и x64. Даны общие сведения о стандарте IEEE 754 и особенностях этого стандарта, приводящих к названным эффектам. Объяснены принципиальные различия между .NET и .NET Framework в части операций с вещественными числами.
Как работать с GPT-4 с помощью продвинутых промтов
ChatGPT – это один из сервисов на базе большой языковой модели GPT. Модель генерирует текст, похожий на созданный человеком, и отвечает на вопросы в разговорной манере. Чтобы профессионально использовать чат-бота, этому нужно учиться. Все мы знаем, что такое программа Excel, что там есть формулы и функции. Но немногие могут использовать все возможности в программе и быстро получать результат. Такая же ситуация с ChatGPT.
Промт-инжиниринг стал важным набором навыков, необходимых для эффективного взаимодействия с ChatGPT. Промты – это инструкции для чат-бота, которые задают правила, автоматизируют процессы и позволяют эффективно использовать диалоговые модели искусственного интеллекта. В частности, промты задают контекст разговора и сообщают модели, какая информация важна и какой должна быть желаемая форма вывода и содержание.
Например, в промте может быть указано, что GPT должен генерировать только код, соответствующий определенному стилю кодирования или парадигме программирования. Аналогичным образом можно указать, что GPT должен помечать определенные ключевые слова или фразы в сгенерированном документе и предоставлять дополнительную информацию, связанную с этими ключевыми словами. Эти подсказки облегчают получение более структурированных и детальных результатов.
В этой статье я расскажу о 16 наиболее распространенных промтах, которые применяют в промт-инжиниринге. Все примеры были протестированы в версии ChatGPT, доступной в России без VPN. В качестве такой русифицированной версии я использовал MashaGPT, которая работает с оригинальной GPT-4 через API.
Сравнение TCP и QUIC
Прим. переводчика: автор статьи рассказывает о преимуществах и недостатках QUIC, сравнивает его с TCP и пытается разобраться в причинах сравнительно низкой распространенности протокола.
Существует распространенное мнение, что транспортный протокол QUIC (RFC 9000) — просто очередное расширение оригинального транспортного протокола TCP (см. RFC 9293 и RFC 793). С этим мнением трудно согласиться. Я рассматриваю QUIC как значительный сдвиг в наборе транспортных возможностей, доступных приложениям при обеспечении конфиденциальности связи, целостности управления сеансами и гибкости.
Зубы курильщика (не в смысле, что плохие, а реально курильщика)
Для курильщиков характерно, что потемнение зубной эмали и кариес образуются в первую очередь не с наружной, а с внутренней (язычной или нёбной) стороны зубов. Там, где они больше соприкасаются со слизистой и происходит основное вдыхание дыма.
Если вы курите, то, наверное, вам уже кто-то да говорил, что это не совсем полезно. На этом нотацию заканчиваю и перехожу к практике.
Зубы желтеют.
Ещё дёсны кровоточат, но не сразу.
Коротко — поправить можно.
Табачный дым — это никотин плюс более 4 тысяч летучих и нелетучих компонентов вроде различных смол, органических кислот, полифенолов, углеводов, металлов и т. д. И всё это добро очень плохо сказывается на зубах (и ротовой полости в целом) курящих людей. Многие наши курящие пациенты искренне удивляются тому, что их зубы желтеют от сигарет.
Сначала температурный градиент (а вы греете зубы примерно до 60 градусов Цельсия) создаёт микротрещины. Потом туда проникают смолы, потом образуется плёнка, под которой здорово себя чувствуют бактерии. А дальше у нас нарушение слюноотделения и убыль дёсен. Всё это можно приостановить или замедлить. Иногда дорого.
Information
- Rating
- Does not participate
- Registered
- Activity