Как стать автором
Обновить
1
0
Перикл Фемиди @pfemidi

Домосед

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

Чиним замедление YouTube на уровне роутера

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

Всех категорический приветствую. Буквально первого августа, прямо в ночь, стал у меня жутко лагать YouTube. Естественно, мне это сильно не понравилось. Ну, что же, давайте разбираться, почему и как это исправить в условиях моей личной сети.

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее
Всего голосов 240: ↑239 и ↓1+278
Комментарии452

Kotlin Coroutines под капотом

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

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

Читать далее
Всего голосов 30: ↑30 и ↓0+36
Комментарии5

Запускаем 64-битную библиотеку в пространстве WOW64, часть 1

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров2K

Приветствую всех!

Сегодня я вам представлю свои наработки по способу инжекта 64-битных DLL библиотек в процессы WOW64, сам который считал невозможным. Любителей потрогать внутренности Windows приглашаю под кат.

Зайдем поглубже
Всего голосов 8: ↑8 и ↓0+10
Комментарии8

Markdown в IntelliJ IDEA как отдельный вид искусства. Рисуем диаграммы и вызываем bash команды

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

Spring разработчики часто пишут документацию и README/HELP файлы к своим приложениям. Часто это делается в Markdown файлах. Markdown плагин в IntelliJ IDEA распознает файлы, предоставляет специальный редактор с подсветкой, автокомплитом и форматированием, а также дает визуальное отображение в панели предварительного просмотра в реальном времени. Кроме стандартной функциональности в IntelliJ IDEA есть пару уникальных фич, которые команда Spring АйО хотела бы выделить особенно.

Читать далее
Всего голосов 22: ↑21 и ↓1+21
Комментарии13

systemD с 0 до 1: библия сисадмина

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


Что бы кто не говорил, systemD становится стандартом систем инициализацией в линуксе. И с 80% вероятностью все сервера будут с systemD. Не факт, конечно, есть и личные сервера, на которых может стоять хоть Gentoo, хоть Devuan, хоть NixOS.

Некоторые дистрибутивы хотят даже перейти с загрузчика Grub на systemd-boot! Потому знать, как работать с данной системой инициализации, должен каждый сисадмин и просто программист, ибо сейчас он практически везде.

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

А также напишем небольшой скрипт на Python для автомизации некоторых задач. Приятного чтения, господа линуксоиды и просто пользователи!
Читать дальше →
Всего голосов 51: ↑46 и ↓5+53
Комментарии11

Динамические свайпы с помощью ItemTouchHelper

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Разработчикам на Rust: рецензия на книгу «Rust: атомарности и блокировки»

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

Очередной пост — рецензия на книгу «Rust Atomics and Locks: Low‑Level Concurrency in Practice» авторства Мары Бос. Это руководство по работе с низкоуровневой конкуренцией в языке программирования Rust. Издание предлагает глубокое погружение в механику атомарных операций и механизмов блокировок, что делает его полезным ресурсом для разработчиков, использующих эти инструменты в своих проектах.

Читать далее
Всего голосов 7: ↑7 и ↓0+12
Комментарии4

Инструменты Android-разработчика

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

Будь эффективным — используй «туллинг»!

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

Читать далее
Всего голосов 38: ↑38 и ↓0+42
Комментарии8

Архитектура кроссплатформенного многомодульного приложения

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров4.5K

Хочу поделиться своим опытом создания кроссплатформенного приложения на базе kotlin-multiplatform (KMP), организации его архитектуры, настройки для работы с различными библиотеками и особенностями его работы. Статья подойдет в первую очередь разработчикам, которые уже имеют опыт с многомодульными проектами в android и начинают изучать KMP. В конце я опишу свою реализацию архитектурного паттерна MVI и его применение в проекте.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии2

Как устроены аннотации в Kotlin. Часть 1

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

Привет! Сегодня с вами Максим Кругликов из Surf Android Team с переводом статьи про устройство аннотаций в Kotlin и три основных механизма их обработки: процессинг, рефлексию и lint.

Читать дальше
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Реверсинг приложений под Android. Разбираемся с функционалом

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Реверсинг приложений под Android. Смотрим под капот

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

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

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

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

Читать далее
Всего голосов 8: ↑8 и ↓0+10
Комментарии6

Как в 2024 выложить приложение в Apple Store и Google Play

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

Публикация приложений в сторах сейчас непростой процесс. Из-за санкций появилось много неизвестности с регистрацией и оплатой аккаунтов. При этом информация о том, как решить те или иные проблемы в этом процессе, которая есть в интернете, противоречива. Так как я этот процесс недавно успешно прошел, делюсь инструкцией, как в 2024 выложить приложение в App Store и Google Play.

Я занимаюсь мобильной разработкой начиная с 2015 года, прошел путь от рядового разработчика до позиции Technical Product Owner в компании Выберу.ру.  Для меня процесс регистрации в сторах — это типовая задача, но санкции добавили несколько нюансов. Эта статья представляет роадмап по публикации приложения с советами и рекомендациями для ускорения этого процесса.

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии6

Устройство для энтузиастов — телефон на ОС «Аврора»

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

«Аврора» на фоне «Авроры».

Привет, читатель!

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

Недавно посмотрел видео на тему покупки и использования устройства на базе этой ОС и, вдохновившись, пошел в ближайший магазин за смартфоном. После покупки пользовался им как основным девайсом некоторое время и свой опыт изложил в этой статье.
Читать дальше →
Всего голосов 60: ↑56 и ↓4+66
Комментарии47

Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 1

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

Представляю вашему вниманию перевод работы A guide to inter-process communication in Linux. Объём данной работы большой, поэтому перевод будет выполнен в виде нескольких отдельных статей:

Читать далее
Всего голосов 10: ↑10 и ↓0+12
Комментарии2

Превращаем Android-смартфон в USB-клавиатуру, мышь и флешку

Уровень сложностиСложный
Время на прочтение29 мин
Количество просмотров24K

Android-смартфон при подключении к компьютеру через USB может выглядеть как медиаустройство, модем или хранилище файлов. В этой статье мы научимся делать из него USB-клавиатуру, мышь и флешку.
Читать дальше →
Всего голосов 59: ↑59 и ↓0+82
Комментарии48

Создание дистрибутивов для разных операционных систем в Java 21 и 22

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


Статья рассказывает о построении дистрибутивов приложений для операционных систем Windows, macOS и Linux в случае использования Java 21 и 22.

Продолжает ранее опубликованную статью о создании дистрибутивов в предыдущих версиях Java, подробно описывая кардинальные изменения, произошедшие с того времени.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+7
Комментарии0

Демо City In A Bottle – система рейкастинга в 256 байтах

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

Привет всем любителям size coding, сегодня я расскажу о чём-то потрясающем: крошечном движке трассировки лучей (raycasting) и генераторе города, умещающихся в автономном файле HTML размером 256 байтов.

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

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

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

Читать далее
Всего голосов 41: ↑38 и ↓3+56
Комментарии7

Патчим байт-код для просмотра логов в Android. Подробная инструкция и примеры кода

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

Привет, Хабр! Меня зовут Саша Лепехин, я разрабатываю мобильное приложение СберИнвестор под Android. Во время разработки и тестирования мобильного приложения мне часто нужно  просматривать логи внутри приложения, причем без подключения по adb.

В принципе, есть множество приложений, которые позволяют просматривать содержимое logcat на устройств. Но с ними часто возникают самые разные проблемы:  такие приложения нуждаются в специальных разрешениях или наличии root доступа, запускают отдельные процессы или сервисы. Или же они могут просто не работать на некоторых устройствах (например, там, где выключен logd). В этой небольшой статье предложено решение большинства подобных проблем. Оно основано на трансформации байт-кода приложения. Поехали!

Читать далее
Всего голосов 13: ↑12 и ↓1+19
Комментарии3

Книга рецептов Rust. 1/2

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



Hello world!


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


Читать дальше →
Всего голосов 28: ↑28 и ↓0+32
Комментарии1
1
23 ...

Информация

В рейтинге
4 275-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность