Pull to refresh
2
0
Константин @ConstOrVar

Разработчик мобильных приложений

Send message

Самодельный компьютерный стол с навороченной начинкой внутри за 20 шагов

Level of difficultyEasy
Reading time8 min
Views50K

В одной небольшой инструкции и двух видео посмотрим, как собрать свой собственный компьютерный стол. Но не просто стол, а стол‑корпус для ПК.

Что это вообще такое? Идея проста: берем все комплектующие компьютера и встраиваем их прямо внутрь конструкции. Мониторов возьмем, скажем, три. Сабвуфер не забудем, конечно же. Вуаля! Системного блока теперь как бы и нет. Но что еще важнее — всё становится очень круто тюнинговать!

Осторожно! Под катом множество вдохновляющих иллюстраций.

Зарядиться идеями

Мобильная разработка за неделю #593 (7 — 13 июля)

Level of difficultyEasy
Reading time5 min
Views1.6K

В этом дайджесте снова про фоновую работу в Android и обрезку Text в SwiftUI, про опыт внедрения Kotlin Multiplatform и как сделать любую задачу интересной, про акторы, структуры, программы раннего доступа, роботов Hugging Face и многое другое. Заходите!

Читать далее

— Ты там работай, но столько платить мы не можемǃ

Reading time2 min
Views8.3K

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

Суть:

Читать далее

От Аристотеля до Тьюринга: что такое функциональное программирование и как оно облегчает жизнь

Level of difficultyMedium
Reading time15 min
Views10K

Привет, меня зовут Марат Зимнуров, я тимлид в кросс-функциональной команде HR Admin Tech Авито. Тема функционального программирования не обделена вниманием — и все же тяжело найти действительно понятный и структурно изложенный разбор данного инструмента. Нет нормального гайда для старта — ни у нас, ни на Западе. Многие говорят про иммутабельность и монады, но путаются в основах. В статье разбираю, что такое функциональное программирование на самом деле и зачем оно нужно.

Читать далее

Swift concurrency. Executors, Actors и их связь с потоками

Reading time17 min
Views779

В данной части из серии статей мы погрузимся чуть глубже в недра Swift Concurrency. Как определяется поток, на котором будет выполняться Task? Почему в рамках одной Task поток может меняться? Что такое Executor и на какие типы он делится? За что отвечает TaskExecutor, а за что SerialExecutor? Как определить текущий Executor по коду? Как использовать свой самописный Executor? В этой статье ответим на эти (и многие другие) вопросы.

Читать далее

Автоматизация тестирования мобильного приложения КриптоАРМ Mobile на Android

Level of difficultyMedium
Reading time24 min
Views481

В этой статье мы проведем обзор современных инструментов и подходов для тестирования мобильных приложений на примере приложения КриптоАРМ Mobile под Android. Подробно расскажем о настройке окружения для создания тестов, а также разработаем Docker-контейнер, который обеспечит удобный запуск тестов. Кроме того, мы рассмотрим процесс автоматизации тестирования и его интеграцию в CI/CD, что позволит упростить и ускорить процесс разработки и тестирования приложений.

Читать далее

Мотивационные триггеры: 30 рекламных крючков, которые используют на вас

Level of difficultyEasy
Reading time6 min
Views2.1K

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

Прочитать и замотивироваться! Или нет...

Обходим CSP nonce через дисковый кеш браузера

Level of difficultyMedium
Reading time16 min
Views1.1K

Эта статья описывает изощренную технику обхода Content Security Policy (CSP) на основе nonce-значений через эксплуатацию механизмов кеширования браузера. Автор демонстрирует, как комбинация CSS-инъекций, CSRF-атак и особенностей работы bfcache и дискового кеша может привести к выполнению произвольного JavaScript-кода даже при наличии строгой CSP.

Читать далее

Язык программирования Cangjie: китайский вызов Java и Swift

Reading time4 min
Views4.7K

Несколько лет назад Huawei решила зайти на территорию языков программирования (ЯП) со своим проектом Cangjie. Сказано — сделано. Новый ЯП впервые показали на HDC 2024. 30 июля 2025 года компания обещает открыть исходный код. Язык заявлен как кроссплатформенный: уже сейчас он поддерживает HarmonyOS и Android, а в перспективе может получить совместимость с iOS. Что в нем интересного и что даст открытие кода, сегодня и разберем.

Читать далее

Конечный автомат, машина Тьюринга, порождающая грамматика и компьютер: в чём разница

Level of difficultyHard
Reading time12 min
Views2K

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

А в конце мы немного пофилософствуем на тему, что же такое программа и что такое семантика.

Читать далее

О ненависти к российским дистрибутивам Linux

Level of difficultyEasy
Reading time2 min
Views46K

Каждый второй комментарий к новостям о российских дистрибутивах Linux можно сформулировать как "опять перерисовали шильдики".

Причем объяснить с чего перерисовали шильдики, комментаторы зачастую не могут. "Чувствую бесовщину, но доказать не могу!".

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

Но давайте поговорим про дистрибутивы.

Читать далее

Как мы создавали первую портативную умную колонку Яндекса

Level of difficultyEasy
Reading time36 min
Views12K

Меня зовут Александр Батин, я инженер‑схемотехник. Уже больше трёх лет я работаю в Яндексе в команде, которая занимается разработкой умных экранов и новых продуктов. Отвечаю за проектирование материнских плат (разрабатывал материнскую плату для Станции Дуо Макс), а в последних проектах участвую уже в качестве техлида.

Сегодня я хочу посвятить свой рассказ ключевым аспектам разработки первой портативной колонки с Алисой — Станции Стрит:

— рассмотрим интересные моменты на этапе проектирования,

— поговорим о технических решениях, принятые в процессе работы,

— обратим внимание на сложности, с которыми столкнулась команда разработчиков.

Особое внимание уделю подходам к преодолению технических и инженерных вызовов: оптимизацию работы AI‑ассистента в условиях ограниченных вычислительных ресурсов и обеспечения стабильного взаимодействия при мобильном использовании без доступа к интернету.

Читать далее

Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?

Level of difficultyMedium
Reading time22 min
Views52K

Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так.

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

Так родилась идея этого проекта — создать свой, пусть и простой, VPN-клиент. Это не попытка сделать коммерческий продукт, а скорее исследовательское погружение, мой личный "челлендж" и способ разложить всё по полочкам.

Заглянуть под капот

Три совета, как не выучить C++ за 21 день (субъективный гайд с дополнениями)

Reading time6 min
Views16K

Типичная проблема новичков при изучении языка программирования — они тонут в море учебных материалов. Интернет предлагает тонны статей, курсов и книг по C++, но как выбрать действительно стоящие?

Меня зовут Владислав Столяров, я руководитель команды анализа безопасности продуктов в мультипродуктовой экосистеме МойОфис. Наши решения — Документы Настольные и Документы Онлайн — во многом работают благодаря C++, так что мне есть чем поделиться. В этой статье расскажу, что делать, если вы вдруг решили залететь в плюсы, но уже чувствуете, как накрывает экзистенциальный кризис от обилия информации.

Читать далее

System Design: Чек-лист для расчета нагрузки и стоимости системы на все случаи жизни

Level of difficultyMedium
Reading time5 min
Views7.4K

Этот коротки чек-лист поможет вам структурированно отвечать на вопросы по расчету нагрузки и стоимости системы на собеседовании System Design. Используйте его как пошаговый гайд, чтобы не упустить ключевые моменты.

Читать далее

Книга: «Мозг против мозга. Mind vs brain»

Reading time17 min
Views5K

Привет, Хаброжители!

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

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

Читать далее

Как написать понятный всем отчёт: под капотом Allure Report

Level of difficultyEasy
Reading time6 min
Views1.1K

Почему так сложно сделать отчёт, который будет полезен и разработчику, и аналитику, и менеджеру? Написать красивую HTML-оболочку — дело не такое уж и трудозатратное. 

Но одного этого мало. Чтобы отчёт могли читать люди без навыков тестирования и программирования, он должен уметь скрывать технические подробности тестов; а чтобы им по-прежнему могли пользоваться тестировщики и разработчики, код по-прежнему должен быть под рукой, на расстоянии одного-двух кликов.

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

Читать далее

От HackerOne к родным берегам: как меняется российский багхантинг

Reading time9 min
Views2K

Российский рынок Bug Bounty переживает интересные времена. После ухода таких гигантов, как HackerOne, отечественные площадки начали развиваться гораздо активнее. Интерес к локальным платформам растет и со стороны компаний, и со стороны исследователей. Всё больше багхантеров начинают присматриваться: что вообще происходит на рынке? Какие платформы на слуху? И почему Bug Bounty вдруг стал интересен не только крупным корпорациям, но и среднему бизнесу?

На связи Алексей Гришин, директор по развитию сервисов кибербезопасности в Бастионе. В этой статье — честный разбор того, как устроен российский рынок Bug Bounty с точки зрения исследователя. Я расскажу, какие нюансы стоит учитывать при работе с отечественными платформами, чем наши площадки отличаются от зарубежных аналогов, и каковы перспективы развития этого направления в России. 

Готовы погрузиться в мир белого хакинга по-русски? Тогда начнем!

Читать далее

Как работает DNS в Linux. Часть 2: все уровни DNS-кэширования

Reading time15 min
Views10K

В первой части мы разобрали, как в Linux работает процесс разрешения имен — от вызова getaddrinfo() до получения IP-адреса. Однако если бы каждый вызов требовал нового DNS-запроса, это было бы неэффективно и сильно нагружало как систему, так и сеть. Поэтому используется кэширование.

Кэширование DNS может быть везде — в glibc, в systemd-resolved, в браузерах и даже в приложениях на Go. Кэш помогает увеличить скорость работы, но создает дополнительные сложности при отладке. Например: вы меняете DNS-запись, но сервер продолжает ходить по старому IP-адресу. Или, Dig показывает правильный адрес, а curl всё равно подключается к устаревшему.

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

Читать далее

RainLoop: от шелла через аттач, до кэша в инбоксе

Level of difficultyMedium
Reading time11 min
Views2.1K

Мы в Beget традиционно делаем ставку на безопасность и стабильность предоставляемых сервисов. Именно поэтому ещё в 2017 году запустили собственную программу поиска уязвимостей, а в прошлом году присоединились к инициативе BI.ZONE Bug Bounty, где продолжаем активно взаимодействовать с исследователями со всего мира.

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

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

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

Если вы интересуетесь безопасностью PHP-приложений, работой с legacy-софтом или просто любите хорошие багхантерские истории — этот текст определённо для вас.

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity