Домосед
Руководство по фоновой работе в Android. Часть 2: Loaders

Руководство по фоновой работе в Android. Часть 1
О фоновой работе приложений в Android есть много статей, но мне не удалось найти подробного руководства по реализации работы в фоне – думаю, из-за того, что появляется все больше новых инструментов для такой работы. Поэтому я решил написать серию статей о принципах, инструментах и методах асинхронной работы в приложениях под Android.
Защита целостности кода с помощью PGP. Часть 2. Создание мастер-ключа

Защита целостности кода с помощью PGP. Часть 1. Базовые концепции и инструменты

Здесь будут раскрыты следующие темы:
- Основы PGP и рекомендации по работе с соответствующим ПО.
- Использование PGP с Git.
- Защита учётной записи разработчика.
Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения
Регулярные выражения в Python от простого к сложному

Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.
Плюс в питоне есть немало регулярных плюшек. Например,
re.split
может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub
можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.
Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Обходим ASLR для Linux по-новому

Ядро Linux широко распространено во всем мире как на серверах, так и на пользовательских машинах, на мобильных платформах (ОС Android) и на различных «умных» устройствах. За время существования в ядре Linux появилось множество различных механизмов защиты от эксплуатации уязвимостей, которые могут существовать как в самом ядре, так и в приложениях пользователей. Такими механизмами является, в частности, ASLR и stack canary, противодействующие эксплуатации уязвимостей в приложениях.
Мобильные устройства изнутри. Снятие блокировки загрузчика планшета
2.Разметка памяти, структура файлов описания и разметки памяти.
3.Структура образов разделов, содержащих файловую систему. Часть 2.
4.Что такое GPT?
5.Изменение разметки памяти планшета YB1.
6.Исследование режимов загрузки планшета YB1-X90L.
1. Введение
Создание самодельных, custom, прошивок или даже просто замена заставок в мобильных устройствах (МУ) предполагает возможность установки образов разделов, созданных сторонним разработчиком, а не производителем. Для этого требуется разблокировка загрузчика МУ.
Этот процесс ранее существенно различался в зависимости от производителя, но в последнее время по-немногу стал приходить к стандартному виду. Поэтому, почти все, что описано ниже, может использоваться как практическое руководство для работы на МУ многих производителей.
Мы же с Вами остановимся на детальном пошаговом руководстве по снятию блокировки загрузчика планшета YB1-X90L, основанном на моем опыте.
Git Rebase: руководство по использованию
Теория
Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.

Парсеры, обработка текста. Просто о сложном. CFG, BNF, LL(k), LR(k), PEG и другие страшные слова
Анимации в Android по полочкам (Часть 3. «Низкоуровневые» анимации)
Часть 2. Комплексные анимации
Часть 3. «Низкоуровневые» анимации
Все методы рассмотренные в предыдущих частях хороши и удобны, однако если нам нужно анимировать большое количество объектов, они могут оказаться не подходящими. В данной части мы рассмотрим способы которые нам позволят работать с действительно большим количеством объектов и создавать программно сложные анимации.
Часть 3. «Низкоуровневые» анимации
1. Рисование на канвасе View

Анимации в Android по полочкам (Часть 2. Комплексные анимации)
Часть 2. Комплексные анимации
Часть 3. «Низкоуровневые» анимации
Приведённые в предыдущей части инструменты были относительно низкоуровневыми и в Android есть куда более простые способы добиться красивых анимаций не прибегая к прямому рисованию графики или изменению свойств объектов.
В этой части мы рассмотрим как можно минимумом усилий получить красивые анимации.
Часть 2. Комплексные анимации
1. Анимация изменений лэйаута (aka animateLayoutChanges)

Анимации в Android по полочкам (Часть 1. Базовые анимации)
Сегодня я хочу немного рассказать про анимацию в Android. Думаю для всех достаточно очевидный факт, что анимации могут украсить наше приложение. Но я считаю, что они могут намного больше. Первое это — хорошие анимации даже при скромной графике могут вывести наше приложение на абсолютно новый уровень. Второе — это дополнительный инструмент для общения с пользователем, позволяющий фокусировать внимание, подсказывать механики приложения, и многое другое… но это отдельная большая тема.
Сегодня мы поговорим об инструментах для создания анимации. К сожалению, так получилось, что в Android достаточно много способов что либо анимировать, и по началу в них очень легко запутаться. Я постараюсь привести максимально общую классификацию и оставлю ссылки исключительно на документацию, т.к. туториалов можно найти предостаточно. Надеюсь эта статья поможет уложить в голове всё по полочками и, при необходимости создать анимацию, выбрать наиболее подходящий способ.
Разработка драйвера PCI устройства под Linux

В данной статье я рассматриваю процесс написания простого драйвера PCI устройства под OC Linux. Будет кратко изучено устройство программной модели PCI, написание собственно драйвера, тестовой пользовательской программы и запуск всей этой системы.
В качестве подопытного выступит интерфейс датчиков перемещения ЛИР940/941. Это устройство, отечественного производства, обеспечивает подключение до 4 энкодеров с помощью последовательного протокола SSI поверх физического интерфейса RS-422.
Мобильные устройства изнутри. Что такое GPT?
Что такое GPT?
1. Введение
Продолжаем рассматривать строение программной части (software) мобильных устройств (МУ). Сегодня поговорим об устройстве GPT-раздела памяти. Написать об этом меня побудила публикация Изучаем структуры MBR и GPT, вместо того, чтобы писать комментарии к ней. Я хотел бы не поругать или поправить автора, а дополнить вышеуказанную публикацию с уклоном в МУ.

Итак, GPT (GUID Partition Table) это:
- в первую очередь название схемы разметки памяти (GPT-схема) МУ ;
- затем уж название раздела памяти (GPT-раздел), где расположена физически эта схема;
- ну и также название файла-образа GPT-раздела памяти (GPT-файл).
Существует две схемы разметки памяти: MBR и GPT. Каждая схема содержится в отдельном разделе памяти, называемом, соответственно, MBR или GPT.
Как устроена MBR-схема разметки можно посмотреть в [1], а GPT это другой формат описания разметки памяти — GUID (GUID Partition Table). Он является частью EFI (Extensible Firmware Interface) — стандарта UEFI, используемого вместо BIOS для загрузки разделов памяти.
Переход на другой формат позволил устранить самый существенный недостаток MBR-формата — малое число разделов. Если в MBR помещалось только 4 записи с ограничением на длину раздела и его смещение из-за того, что эти параметры описывались 32-разрядными числами, то в GPT можно разместить 128 записей о разделах. Причем их параметры уже описываются в 64-разрядной системе счисления…
Изучаем структуры MBR и GPT
Способов разбиения дисков на разделы на сегодняшний день существует два. Первый способ — использовать MBR. Этот способ применялся еще чуть ли не с появления жестких дисков и работает с любыми операционными системами. Второй способ — использовать новую систему разметки — GPT. Этот способ поддерживается только современными операционными системами, поскольку он еще относительно молод.
Создание игр на Python 3 и Pygame: Часть 5

Это последняя из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и PyGame. В четвёртой части мы научились распознавать коллизии, реагировать на то, что мяч сталкивается с разными игровыми объектами и создали игровое меню с собственными кнопками.
(Остальные части туториала: первая, вторая, третья, четвёртая.)
В последней части мы рассмотрим различные темы: конец игры, управление жизнями и очками, звуковые эффекты, музыку и даже гибкую систему спецэффектов. На десерт мы рассмотрим возможные улучшения и направления дальнейшего развития.
Создание игр на Python 3 и Pygame: Часть 4

Это четвёртая из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame. В третьей части мы углубились в сердце Breakout и узнали, как обрабатывать события, познакомились с основным классом Breakout и увидели, как перемещать разные игровые объекты.
(Остальные части туториала: первая, вторая, третья, пятая.)
В этой части мы узнаем, как распознавать коллизии и что случается, когда мяч ударяется об разные объекты: ракетку, кирпичи, стены, потолок и пол. Наконец, мы рассмотрим важную тему пользовательского интерфейса и в частности то, как создать меню из собственных кнопок.
Создание игр на Python 3 и Pygame: Часть 3

(Остальные части туториала: первая, вторая, четвёртая, пятая.)
Это третья из пяти частей туториала о создании игр с помощью Python 3 и Pygame. Во второй части мы рассмотрели класс
TextObject
, используемый для рендеринга текста на экран, создали основное окно и узнали, как отрисовывать объекты: кирпичи, мяч и ракетку.В этой части мы погрузимся глубже в сердце Breakout и узнаем, как обрабатывать события, познакомимся с основным классом Breakout и увидим, как перемещать различные объекты в игре.
Обработка событий
В Breakout есть три типа событий: события нажатий клавиш, события мыши и события таймера. Основной цикл в классе Game обрабатывает нажатия клавиш и события мыши и передаёт их подписчикам (вызывая функцию-обработчик).
Хотя класс Game очень общий и не обладает знаниями о реализации Breakout, сама подписка и способы обработки событий очень специфичны.
Создание игр на Python 3 и Pygame: Часть 2

(Остальные части туториала: первая, третья, четвёртая, пятая.)
Во второй из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame, мы рассмотрим класс
TextObject
, используемый для рендеринга текста на экране. Мы создадим основное окно, в том числе и фоновое изображение, а затем научимся отрисовывать объекты: кирпичи, мяч и ракетку.Класс TextObject
Класс
TextObject
предназначен для отображения текста на экране. Можно сделать вывод, что с точки зрения дизайна он должен быть подклассом класса GameObject
, потому что тоже является визуальным объектом и его тоже иногда нужно двигать. Но я не хотел вводить глубокую иерархию классов, при которой весь отображаемый Breakout текст оставался на экране неизменным.Класс
TextObject
создаёт объект шрифта. Он рендерит текст на отдельную текстовую поверхность, которая затем копируется (рендерится) на основную поверхность. Интересный аспект TextObject
заключается в том, что у него нет какого-то фиксированного текста. Он получает функцию text_func()
, вызываемую каждый раз, когда он рендерится.Это позволяет нам обновлять отображение жизней и очков в Breakout, просто создав функцию, возвращающую текущие жизни и очки, а не отслеживать то, какие текстовые объекты отображают очки и жизни и обновлять их текст при каждом их изменении. Это удобный трюк из функционального программирования, и в крупных играх он позволяет поддерживать удобство и аккуратность программы.
Information
- Rating
- 7,740-th
- Location
- Москва и Московская обл., Россия
- Registered
- Activity