Как стать автором
Обновить
8
0

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

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

Readability своими руками

Время на прочтение5 мин
Количество просмотров22K
Поскольку побеждать Великий Китайский Роскомнадзор наша штука для обхода блокировок в интернете пока не особенно научилась, а рассказать что-нибудь странное про свою работу все равно хочется, расскажу про реимплементацию похожего на Readability алгоритма при помощи Node.js и Бэйцзинского технологического института.

Что это вообще такое


Readability — это радикальное продолжение идеи AdBlock убирать с веб-сайтов лишние элементы. Там, где AdBlock старается снести только самые бесполезные для пользователя вещи (в основном рекламу), Readability удаляет заодно скрипты, стили, навигацию и все остальное ненужное. Раньше такой вид страницы называли «версия для печати», хотя на самом-то деле текст предназначен для чтения (отсюда название Readability – «Удобочитаемость»).

Лирическое отступление про парсеры


Основная характеристика парсера сайтов, или других слабо структурированных форматов – это количество знаний о частных случаях использования формата в дикой природе.
Читать дальше, там самое интересное
Всего голосов 58: ↑53 и ↓5+48
Комментарии13

Основы JAX-RS

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

Введение


Выросло данное API из JSR 311: JAX-RS: The Java API for RESTful Web Services и вошло в Java EE 6 (планировалось в Java EE 5). Как видно из названия, предназначено оно для разработки RESTful веб-сервисов.

Основная цель данной статьи — познакомить читателя с основами JAX-RS API. Изначально я планировал написать о некоторых проблемах работы форм при использование JAX-RS сервиса. Не обнаружив на Хабре почти ничего, касающегося данной технологии понял, что введением к статье отделаться не удастся.

Будут представлены основы JAX-RS API, реализация от JBoss и дано небольшое введение в клиентскую часть фреймворка Resteasy.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии8

Разбор руководства ФАС от маркетолога:  о понятии реклама, что считается рекламой и какую рекламу нужно маркировать

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

На сайте ФАС России появилось руководство по соблюдению обязательных требований "Понятие рекламы". Задача руководства помочь участникам рекламного рынка разобраться что является рекламой, а что - нет. Какая реклама требует маркировки, а какая - нет.

Я решил сделать разбор этого руководства и выделить важные аспекты на мой взгляд. 

Напомню, что с 1 сентября 2023 года начали действовать штрафы за отсутствие маркировки рекламы в Интернете.

Я сделал краткую выжимку, самых важных вещей, т.к. документ на 15 страниц, рекомендую ознакомиться с ним самостоятельно.

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

Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости

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

Всем привет! Снова с вами Юрий Шабалин. Уже много лет я занимаюсь безопасностью мобильных приложений и в своих исследованиях доношу важность этого направления для бизнеса.

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

Давайте посмотрим!

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

История ограничений фоновой работы в Android для разработчиков

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

Когда-то в Android были времена, когда запустить задачу в фоне было просто и гарантии ее работы были высоки. Теперь же в ОС есть множество ограничений: работа в фоне, доступ к файловой системе, системы оптимизации расхода батарейки, разрешения, часть которых требует одобрения модераторов Google Play. Разработчикам приходится работать в условиях всех этих ограничений и учитывать их при разработке функций. В рамках этой статьи я хочу разобраться с ограничениями, которые есть на разных версиях Android, чтобы вы смогли лучше понимать, что может происходить.

Читать далее
Всего голосов 35: ↑34 и ↓1+33
Комментарии51

MacOS Monterey на Linux — быстро и просто?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров43K
Что делать, если у вас возникло желание или необходимость заняться разработкой под MacOS или iOS, но под рукой нет макбука, а покупать его только чтобы открыть Xcode кажется делом сомнительным? Недавно я столкнулся с такой проблемой в одном из своих пет-проектов и решил ее достаточно просто и быстро. После выполнения нескольких достаточно примитивных шагов, мне удалось запустить MacOS Monterey как на скриншоте ниже.

image

Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
Читать дальше →
Всего голосов 83: ↑79 и ↓4+75
Комментарии67

Всего лишь меняем модель эмулятора Android устройства

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

Казалось бы, на первый взгляд весьма простая задача. Некоторые читатели могли еще в те бородатые времена лазить по всяким 4пда, рутить свой сенсорный самсунг, менять содержимое файла build.prop и показывать наивным ламерам свой iPhone 15+ Max Pro. Однако, как оказалось, и как оно часто бывает, не все так просто и здесь есть свои подводные камни. Статья призвана помочь простым работягам избежать все кочки да ямы на пути к своей цели!

Поменять модель эмулятора
Всего голосов 13: ↑10 и ↓3+7
Комментарии0

SEO Выводы из утечки кода поисковика Яндекс

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

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

Читать далее
Всего голосов 212: ↑197 и ↓15+182
Комментарии130

Вы НЕ сошли с ума (о режиме сна в Windows)

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

Вы сталкивались с тем, что ноутбук случайно включается, хотя вы уверены, что отправляли его в сон?

Бывало, что батарея оказывалась пустой, хотя вы точно-точно помните, как убирали в сумку заряженный на 100% ноутбук?

Тогда вам сюда:

Мне сюда
Всего голосов 259: ↑249 и ↓10+239
Комментарии503

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

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

Такая история всегда начинается одинаково. Вам показывают демку, в которой набор проблем, ранее казавшийся сложным, решается на раз — достаточно запустить некий Волшебный Инструмент. Зачастую такой инструмент рекомендуют Большие Тузы из отрасли, либо не только рекомендуют, но и сами поддерживают. У вас в организации отыскиваются коллеги, ратующие за то, чтобы немедленно взять эту технологию на вооружение. Буквально наутро этот новый инструмент приравнивается к «решению всех наших проблем».

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

К тому моменту, как его обсуждение доходит до руководителей высшего звена, инструмент уже раскручен в пресс-релизах. Вы видите статьи в духе «Технология X морально устарела, время обзаводиться Волшебным Инструментом». Те из вас, кто не так давно работает в технической отрасли, могут предположить, что, пожалуй, была сделана какая-то добросовестная оценка, призванная проверить, в самом ли деле Волшебный Инструмент так хорош, или безопасен, или уместен именно в вашем бизнесе. Нет, вы ошибаетесь. 

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

Юнит-тестирование в PHP

Время на прочтение13 мин
Количество просмотров186K
Язык PHP очень легок для изучения. Это, а так же обилие литературы «Освой _что_угодно_ за 24 часа» породило большое количество, мягко говоря, некачественного кода. Как следствие, рано или поздно любой программист, который выходит за рамки создания гостевой книги или сайта-визитки сталкивается с вопросом: «а если я здесь немножко добавлю, все остальное не ляжет?» Дать ответ на этот вопрос и на многие другие может юнит-тестирование.

В самом начале хочется оговориться — здесь речь не будет идти о TDD и методологиях разработки ПО. В данной статье я попробую показать начинающему PHP-разработчику основы использования модульного тестирования на базе фреймворка PHPUnit
Начнем?..
Всего голосов 97: ↑90 и ↓7+83
Комментарии90

Анализ покупок в iOS приложениях по открытым данным

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

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

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

Умный BottomNavigationView без боли: настройка нижнего меню навигации с динамической конфигурацией в Android-приложении

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

Привет, Хабр! Меня зовут Сергей Велеско, я Android-разработчик. Сегодня трудно представить сколько-нибудь серьезное мобильное приложение без нижнего меню навигации. В этой статье я поделюсь опытом, как гибко и приятно организовать настройку BottomNavigationView и научить его загружать свою конфигурацию из удаленного источника.

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

Как в Android запрещали фоновую работу и улучшали расход батареи

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

Когда-то работа в фоне была простой. Теперь в Android есть множество ограничений: работа в фоне, доступ к файловой системе, разрешения на которые надо получить одобрение модераторов Google Play и другие. Со всеми ними разработчикам приходится работать. Недавно я выступил с докладом на эту тему на конференции DUMP, а теперь написал текст на его основе для Хабра. Давайте вспомним, с чего все начиналось и как менялись требования с каждой новой версией Android.

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

Android Debug Bridge для тестировщика без SMS и регистрации

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

Привет, Хабр! Меня зовут Александр Карпенко, я QA Engineer в inDrive. Я подготовил эту статью для начинающих QA-специалистов. Ниже расскажу, как использовать Android Debug Bridge (ADB) в тестировании мобильных приложений и нужен ли вообще этот инструмент. 

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

Этот восхитительный Юникод

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


Перед вами обновляемый список самых замечательных «вкусностей» Юникода, а также пакетов и ресурсов

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии56

Размер имеет значение! Часть 2

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

Как бы мы себя не обманывали - Размер имеет значение! И конечно, мы будем говорить о размере нашего андроид приложения, куда мы добавляем кучу классных features, и даже не задумываемся как это может негативно повлиять на размер приложения. Поэтому мы научимся обнаруживать регрессию размера нашего приложения на CI для автоматизации этого процесса.

В данной части, обсудим как можно проверять размер в pull request, что позволит автоматизировать весь процесс обнаружения регрессии, до того как изменения попали в development.

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

13 подвохов мобильного приложения, о которых лучше знать до старта разработки

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

Главная сложность в разработке приложения – накодить его функционал. Например, сделать редактирование текста для приложения-блокнота. Так я полагал, когда был моложе и наивнее.

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

Хочу поделиться краткой выжимкой из своего опыта: какие неожиданные сложности вас ждут, если вы делаете мобильное приложение впервые.

Читать далее
Всего голосов 58: ↑57 и ↓1+56
Комментарии20

Что мы используем для анализа Android-приложений

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

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

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

Во что обернулась пересылка MQTT-сообщений в Telegram?

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

Периодически возникает желание получать уведомления, иметь возможность настраивать источник и фильтровать сообщения по темам, и писать как можно меньше кода. Например, присылать себе картинку/цитату/слово дня или дельту по изменениям ордеров на бирже. В результате получился универсальный инструмент - бот и персональное АПИ для отправки сообщений в Telegram.

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

Информация

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