Pull to refresh
0
0
Send message

Очень быстро понимаем Android Build Flavors

Reading time4 min
Views20K

Build Flavors — технология, позволяющая собирать несколько вариантов приложения с общей кодовой базой и общими ресурсами.

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments11

Введение в отладку на примере Firefox DevTools, часть 1 из 4

Reading time3 min
Views18K

Используете для отладки JavaScript-кода только console.log? Есть способ получше! Отладчик в Firefox DevTools помогает быстро находить ошибки в коде и бережёт ваши нервы и время.

Узнать, как сберечь нервы и время
Total votes 10: ↑9 and ↓1+10
Comments17

Часть 3: Продолжаем пилить мультигаджет ESPboy2 для ретро игр и экспериментов с IoT в 2021

Reading time5 min
Views6.4K

С последних статей на хабре о проекте ESPboy прошло больше года.

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

Открытость платформы, 100% совместимость с Arduino IDE, WiFi на борту, автономность работы в несколько часов, доп модули и AppStore - делают устройство идеальным для обучения, прототипирования и IoT экспериментов.

Схемы и код открыты и в простейшем варианте устройство может быть собрано за полчаса из нескольких деталей с AliExpress за 8$. Также можно купить готовый девайс на tindie.com, но такой вариант пока дороговатым получается. На youtube канале проекта демонстрируются некоторые возможности, на hackaday - лог разработки.

ESPboy2 пока доступен только для разработчиков, но кому интересен, оставляйте емейл в форме предзаказа. Как только будет запущен для заказа, покупки или сборки - напишем.

Пилю проект в качестве хобби, время от времени помогают знакомые и энтузиасты.

Что удалось сделать за прошедший год...

глянуть, что за хрень
Total votes 11: ↑11 and ↓0+11
Comments15

JavaScript, Node, Puppeteer: автоматизация Chrome и веб-скрапинг

Reading time10 min
Views145K
Библиотека puppeteer для Node.js позволяет автоматизировать работу с браузером Google Chrome. В частности, с помощью puppeteer можно создавать программы для автоматического сбора данных с веб-сайтов, так называемые веб-скраперы, имитирующие действия обычного пользователя. В подобных сценариях может применяться браузер без пользовательского интерфейса, так называемый «Headless Chrome». Используя puppeteer, можно управлять и браузером, который запущен в обычном режиме, что особенно полезно при отладке программ.

image

Сегодня мы поговорим о создании веб-скрапера на базе Node.js и puppeteer. Автор материала стремился к тому, чтобы статья была интересна как можно более широкой аудитории программистов, поэтому пользу из него извлекут как те веб-разработчики, которые уже имеют некоторый опыт работы с puppeteer, так и те, которые впервые сталкиваются с таким понятием, как «Headless Chrome».
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments13

Делаем телеграм бота за 5 минут: быстрый старт с продвинутым шаблоном

Reading time2 min
Views28K

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

Потыкать в проект, сделанный на этом шаблоне, можно тут.

Сделать бота за 5 минут
Total votes 20: ↑11 and ↓9+8
Comments17

Как использовать GraphHopper для построения пешеходных маршрутов по собственным правилам

Reading time5 min
Views8.1K

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

Решений, для построения маршрута тоже немало, в том числе существует GraphHopper, который умеет строить маршруты, и для автомобилей, и для пешеходов, и даже для пешего туризма, - подойдёт в 99% случаев.

Далее речь пойдёт том, что делать в оставшемся 1% ситуаций, точнее о моём опыте использования GraphHopper, когда существующее решение не подходило. Требовалось учитывать дополнительные ограничения: строить пешеходные маршруты для людей с ограниченными возможностями. Не будет ни каких значимых особенностей реализации именно этой задачи. Максимально обобщённо.

Будет описано, как создать на основе библиотеки GraphHopper свой веб–сервис, который, по координатам начала и окончания пути, вернёт массив координат маршрута.

Пример приложения, со всеми необходимыми для запуска заглушками, можно найти в моём репозитории на GitHub.

Читать далее
Total votes 12: ↑11 and ↓1+17
Comments16

Победа над nRF24L01: на три шага ближе

Reading time8 min
Views89K

Многие испытывают трудности при соединении по эфиру радиомодулей nRF24L01. Об этом свидетельствует тема на форуме Амперки, открытая в конце 2014г. За пять с небольшим лет в теме накопилось более 120(!) страниц. Это при том, что автор темы не просто обозначил проблему, а поделился своим трехнедельным опытом победного для него боя. Кроме того, он тут же — в первом сообщении создал навигатор по страницам темы, где приводит ссылки на решения проблемы другими.



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



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



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



Я же разделил эту задачу на несколько простых задачек. Вначале модули проверяются на работоспособность и правильность подключения (шаг 1), затем один из пары работающих радиомодулей тестируется на работу в режиме передатчика без ожидания отклика с приемника (шаг 2) и последний этап — улучшение качества связи в этой связке передатчик-приемник (шаг 3).



Для общего представления — картинка с прототипом:





Итак ...



Читать дальше →
Total votes 14: ↑13 and ↓1+19
Comments18

TypeScript: Раскладываем tsconfig по полочкам. Часть 1

Reading time10 min
Views93K

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

Читать далее
Total votes 26: ↑25 and ↓1+28
Comments4

Системный гайд по созданию White Label android-приложений

Reading time13 min
Views8.2K

Как написать код один раз, а продать 20 мобильных приложений? Я нашёл ответ путём проб и факапов и разложил свой опыт по пунктам: из статьи вы узнаете, как безболезненно реализовать White Label android-проект.

Читать дальше
Total votes 7: ↑5 and ↓2+7
Comments12

Основы отладки клиентских JS-приложений

Reading time18 min
Views21K

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

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

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments5

CSS-функции min(), max() и clamp()

Reading time12 min
Views68K
Поддержка CSS-функций сравнения min(), max() и clamp() появилась в Firefox 8 апреля 2020 года. Это означает, что данные функции теперь поддерживаются во всех основных браузерах. Эти CSS-функции расширяют наши возможности по созданию динамических макетов и по проектированию более гибких, чем раньше, компонентов. Их можно использовать для настройки размеров элементов-контейнеров, шрифтов, отступов и многого другого. Правда, веб-дизайнеру, создающему макеты страниц с учётом возможности использования этих восхитительных функций, может понадобиться научиться думать по-новому.



Сегодня я хочу рассказать об особенностях этих функций, объяснить всё то, что может оказаться в них непонятным, и привести практические примеры их использования.
Читать дальше →
Total votes 24: ↑23 and ↓1+35
Comments11

Скрапинг Avito без headless-браузера

Reading time2 min
Views41K

Недавно на хабре вышла статья Скрапинг современных веб-сайтов без headless-браузеров, и в комментариях было высказано мнение, что без headless-браузера не выйдет получить номер телефона из объявления на "авито" или "юле". Хочу это опровергнуть, ниже скрипт на python размером менее 100 строк кода, который успешно парсит "авито" успешно парсит "авито"!

Читать далее
Total votes 13: ↑11 and ↓2+15
Comments45

Обновление вашего PWA в продакшене

Reading time6 min
Views17K

Вам больше не помогут no-cache или max-age заголовки, вы просто не знали и не могли узнать о механизме обновления SW. Потому что про него вам не говорили.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments13

Vue 3.0 — первый взгляд

Reading time5 min
Views25K

Наконец-то руки дошли попробовать новую версию Vue. Я не собираюсь быть объективным в этой статье, я просто расскажу свои впечатления в процессе работы с новой версией, а так же расскажу как её установить и начать работу уже сейчас.

Не смотря на релиз, Vue 3.0 еще не готов для полноценного использования в продакшене. Router и Vuex еще не готовы для работы с новой версией, Vue CLI по умолчанию устанавливает старую версию, не говоря уже о сторонних плагинах и библиотеках, авторы которых не успели их обновить. Вот такой долгожданный и неполноценный релиз мы получили.

Особенно много вопросов вызывает новый синтаксис, так называемый Composition API, который к счастью не заменит полностью привычный и всеми любимый Options API. В пользу новой композиции нам всюду предлагают подобную картинку:

Читать далее
Total votes 8: ↑7 and ↓1+9
Comments13

Как правильно идентифицировать Android-устройства

Reading time6 min
Views27K

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

Читать далее
Total votes 10: ↑9 and ↓1+14
Comments11

Токен авторизации на примере JSON WEB Token

Reading time7 min
Views132K

Доброго времени суток, дорогой читатель. В данной статье я постараюсь рассказать об одном из самых популярных (на сегодняшний день) способов авторизации в различных клиент-серверных приложениях - токен авторизации. А рассматривать мы его будем на примере самой популярной реализации - JSON Web Token или JWT.

Читать далее
Total votes 23: ↑22 and ↓1+26
Comments87

OpenStreetMap, как получить координаты адреса, часть простая

Reading time4 min
Views40K


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

Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments24

Полное визуальное руководство-шпаргалка по Flexbox и Grid + туториал

Reading time31 min
Views153K


Доброго времени суток, друзья!

Представляю вашему вниманию полное визуальное руководство-шпаргалку по всем свойствам CSS-модулей Flexbox и Grid.

Основные источники: A Complete Guide to Flexbox, A Complete Guide to Grid.

В конце статьи вас ждет небольшой туториал по созданию тренажера по Flexbox.

Без дальнейших предисловий.


Total votes 11: ↑7 and ↓4+6
Comments7

Погода в доме или бюджетный мониторинг CO2, PM2.5, температуры и влажности на ESP32 и Blynk

Reading time6 min
Views39K
По просьбах трудящихся в этой теме, решил сделать обзор-инструкцию, как можно сделать бюджетный измеритель CO2.

В данном обзоре я не буду описывать «пагубность» влияния CO2, а также низкой влажности на самочувствие и здоровье человека. Также, как и не буду доказывать, что без этого девайса не прожить. Об этом уже написаны тонны статей, как и споров в комментах. Я постараюсь лаконично описать создание максимально бюджетного устройства, но при этом измерительного устройства, а не показометра.

Также для максимальной простоты повторения, в обзоре выложу прошивку для ESP32 и проект Blynk.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments30

Исследование CSS-свойства flex

Reading time11 min
Views44K
Вам когда-нибудь было интересно узнать о том, как работает сокращённое CSS-свойство flex? Оно позволяет задавать значения свойств flex-grow, flex-shrink и flex-basis. Я обратил внимание на то, что данное свойство чаще всего используют в виде flex: 1, что позволяет flex-элементу растягиваться, занимая доступное пространство.



В этом материале я хочу поговорить о сокращённом свойстве flex и о тех свойствах, значения которых устанавливают с его помощью. Я собираюсь рассказать о том, когда и почему можно пользоваться этими свойствами, приведу практические примеры.
Читать дальше →
Total votes 25: ↑24 and ↓1+34
Comments6
1

Information

Rating
Does not participate
Registered
Activity