Как стать автором
Обновить
10
0
Игорь @igorzakhar

Пользователь

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

Дроиды и питоны: работаем с ADB на Python

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

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

И вот, тогда я узнал об одной прекрасной утилите - Android Debug Bridge, ADB. Прекрасный инструмент для работы с Android - подключил телефон, и занимайся чем хочешь. Но иногда так лень запоминать разные команды, вводить их каждый раз... Вот здесь на помощь приходит Python. Прекрасный язык с большими возможностями.

В этой статье я рассмотрю как работать с ADB через python.

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

Читать далее
Рейтинг0
Комментарии6

Под капотом загрузчика

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

Привет, Хабр!

Мы, сервисные инженеры, сталкиваемся с GRUB2 ежедневно. А вот когда стало любопытно посмотреть на загрузчик комплексно, то в интернете и в учебнике Linux нашли лишь несколько команд: как заново проинсталлировать загрузчик и обновить текущую конфигурацию. «А почему так мало?», — была наша первая мысль.  Решили восполнить пробел — так появилась эта статья. А для иллюстрации попросили нейросетку изобразить, «как выглядят эпичные проблемы с GRUB» -- вот что вышло.

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

Осваиваем DOM Invader: ищем DOM XSS и Prototype Pollution на примере пяти лабораторных и одной уязвимости на Хабре

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

Привет, Хабр! Сегодня мы познакомимся с DOM XSS и Prototype Pollution, рассмотрим примеры уязвимостей на Bug Bounty и научимся использовать инструмент DOM Invader, который заметно упростит поиск таких уязвимостей.

Материал будет интересен специалистам, которые уже сталкивались с DOM XSS и Prototype Pollution. Если вы еще не знакомы с этими уязвимостями, стоит обратить внимание на лабораторные PortSwigger и теорию и только потом приступать к изучению DOM Invader. А если знакомы, то быстро вспомним основные понятия и объясним, а в чем же, собственно, состоит опасность.

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

Удобный CI/CD доступен каждому

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

Привет, Хабр! Недавно я выступал на Moscow Python Conf, где делился нашим опытом создания и использования CI/CD пайплайнов. В данной статье я расскажу об этих пайплайнах, раскрою их особенности и покажу, как они помогают нам быстро доставлять код и поддерживать высокий показатель Time To Market. Надеюсь, что наш опыт будет полезен и вам.

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

Эволюция сети Ethernet на витой паре

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

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

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

Основы TypeScript

Время на прочтение22 мин
Количество просмотров8K
image Привет, Хаброжители!

TypeScript — популярная надстройка над JavaScript с поддержкой статической типизации, которая наверняка покажется знакомой программистам на C# или Java. TypeScript поможет вам сократить количество ошибок и повысить общее качество кода на JavaScript.

«Основы TypeScript» — это полностью обновленное третье издание классического бестселлера Адама Фримена. В нем освещены все возможности TypeScript 5, включая новые, такие как декораторы. Сначала вы узнаете, зачем и почему был создан язык TypeScript, а затем почти сразу перейдете к практическому применению статических типов. Ничего лишнего! Каждая глава посвящена навыкам, необходимым для написания потрясающих веб-приложений.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+16
Комментарии7

Ручная установка и настройка Arch Linux — шпаргалка шаг за шагом

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

ARCH


Подготовка к установке


Скачиваем образ дистрибутива Arch Linux


Утилиты для записи образа на флеш-накопитель:


  • Linux — balenaEtcher
  • Windows — Rufus
  • Кроссплатформенный Ventoy (рекомендовано)

Руководство на Habr как записать образ на флеш-накопитель с помощью Ventoy
Видео на YouTube по использованию Ventoy

Читать дальше →
Всего голосов 20: ↑17 и ↓3+18
Комментарии62

CCNP Encor на русском ч. 1 (L2)

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

Перевод материала CCNP на русский язык для тех, кому лень учить английский.

Данная часть посвящена повторению основ из курса CCNA и начинает погружение в L2 Switching.

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

Wayland 1.23: что нового, что изменилось и чего ожидать от стабильного релиза

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

Прошло больше года, и команда разработчиков представила очередной стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.23. Положительным моментом является то, что эта версия обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Подробности — под катом.

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

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

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

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

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

Что нужно знать о современном CSS (весна 2024 года)

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

Цель этого руководства — познакомить вас со списком новых (потрясающих) возможностей, недавно появившихся в CSS.

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

Читать далее
Всего голосов 36: ↑35 и ↓1+45
Комментарии11

7 ножей в спину web-отладки

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

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

О процессе отладки я буду рассказывать в хронологической последовательности, как она происходила в жизни, а не с "точки зрения вечности". Надеюсь, это поможет читателю лучше понять историю моих озарений и провалов. Заранее предупрежу, что я пытался двигаться к цели не углубляясь в причины неудачи тех или иных шагов. Если подход "в лоб" в каком либо варианте не срабатывал, я откладывал этот вариант, и переходил к другому. Название каждого раздела соответствует трудности, с которой я столкнулся. Итак, начнем.

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

Протокол HTTP

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

Текстовая версия видео по протоколу HTTP из обновленного курса по компьютерным сетям для начинающих.

Рассматриваем основы работы HTTP, применяем HTTP на практике в терминале, используем Wireshark для анализа пакетов HTTP. 

Читать далее
Всего голосов 47: ↑44 и ↓3+57
Комментарии30

Все про композитинг в X11 | Linux

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

Приветствую, читатели хабра! Вы когда-нибудь задумывались над тем, что скрывается за красотой и динамичностью вашего рабочего стола? Какие компоненты реализовывают анимации и различные графические эффекты: блюр, тень, скругления, прозрачность? В X11 есть одна очень интересная программная единица - композитор. В этой статье мы получим общее понимание того, что это такое, как реализовано и для чего используется. Также, немного поговорим о том, как Xorg хранит информацию для отрисовки, затронем front/back буферы и узнаем, как компоненты рабочего стола обмениваются информацией между собой.

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

Как правильно передавать секреты запускаемым программам?

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

Эта статья о том, как правильно передавать секреты запускаемым программам.

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

Если вы смогли зайти на систему под непривилегированным пользователем, то вы можете набрать команду, отображающую список запущенных процессов

$ ps -ef

и возможно и увидеть некоторые секреты, которых видеть не должны, например, у одного из процессов ниже открыт пароль basicAuth.password (пароль в тексте изменен).

$ strings /proc/1101/cmdline
/usr/local/bin/vmagent
--remoteWrite.url=http://vm-cluster.local:1234/api/v1/write
--remoteWrite.basicAuth.username=user-rw
--remoteWrite.basicAuth.password=123456
--promscrape.config=/usr/local/etc/vmagent-config.yml

Как же быть? Есть несколько способов этого избежать.

Читать далее
Всего голосов 18: ↑17 и ↓1+19
Комментарии11

Сравнение технологий WebSockets, Server-Sent-Events, Long-Polling, WebRTC и WebTransport

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

При работе с современными веб-приложениями реального времени незаменима возможность отправлять события с сервера на клиент. Именно этой необходимостью продиктовано то, что за годы работы было изобретено несколько методов для этой цели, каждый с собственным набором достоинств и недостатков. Первоначально единственным вариантом был длинный опрос. Затем в качестве альтернативы появились веб-сокеты — более надёжное решение для двунаправленной коммуникации. Вслед за веб-сокетами появились события, отправляемые сервером (SSE), более простой метод, обеспечивающий однонаправленную связь от сервера к клиенту. Забегая вперёд, сейчас разрабатывается ещё и протокол WebTransport, который может тем более изменить ландшафт этой области, обеспечивая более эффективный и гибкий подход, располагающий к масштабированию. В некоторых нишевых случаях можно присмотреться и к технологии WebRTC, предназначенной для работы с событиями в направлении сервер-клиент.

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

Читать далее
Всего голосов 24: ↑22 и ↓2+27
Комментарии4

Устройство памяти процессов в ОС Linux. Сбор дампов при помощи гипервизора

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

Иногда для анализа ВПО или, например, для отладки какого-либо процесса может потребоваться дамп памяти процесса. Но как его собрать без отладчика? Постараемся ответить на этот вопрос в этой статье.

Задачи:

- Обозначить цель сбора дампа процесса.

- Описать структуру памяти процессов в Linux и отметить различия в старой и новой версиях ядра ОС

- Рассмотреть вариант снятия дампа памяти процесса внутри виртуальной машины на базе связки гипервизора Xen и фреймворка с открытым исходным кодом DRAKVUF.

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

Анатомия Hello World на языке C

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

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.

Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
Читать дальше →
Всего голосов 125: ↑125 и ↓0+142
Комментарии47

История терминала как инструмент продуктивности

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+14
Комментарии3

CPU планировщики в Linux

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

В статье будет рассказано про основные алгоритмы, которые ядро Linux использует для планирования задач, готовых к выполнению. Как влияет приоритет задач и указанная для неё политика на то, как она будет получать процессорное время и сколько.

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

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность