Search
Write a publication
Pull to refresh
5
0
Send message

Крошечный веб-сервер на ESP32

Reading time12 min
Views16K

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

В качестве примера наш веб-сервер будет управлять парой светодиодов, в соответствии с представленной схемой. Соответственно, на плате ESP у нас будет размещен веб-сервер, с кнопками включения диодов.

Читать далее

Управление bluetooth из js или как я реверсинжинирил умный чайник

Level of difficultyMedium
Reading time6 min
Views5.3K

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

Читать далее

Необычные способы хостинга

Level of difficultyMedium
Reading time7 min
Views28K


Где разместить сайт? Оказывается, для хостинга необязательно покупать VPS или домашний сервер. Можно поступить более креативно: например, захостить сайт на смартфоне. Причём желательно извлечь из него аккумулятор, чтобы смартфон работал напрямую от сети. А есть ещё более оригинальный вариант: бесплатный хостинг в социальных сетях.
Читать дальше →

Использование Proxy и Reflect для создания реактивных объектов в JavaScript

Level of difficultyEasy
Reading time10 min
Views2.5K

Привет, на связи снова Дмитрий, React-разработчик, и сегодня захотелось написать про Proxy и Reflect.

Что такое Proxy в JavaScript?

Proxy — это встроенный объект в JavaScript, который позволяет создавать обертки для объектов и перехватывать стандартные операции с ними, такие как: доступ к свойствам, их изменение, удаление и другие. Это мощный инструмент, который можно использовать для реализации различных паттернов, например, для создания реактивных объектов, создания ленивая инициализации свойств, проверки прав доступа и выполнения других задач.

Читать далее

Отладка JavaScript в Chrome DevTools для начинающих фронтендеров

Level of difficultyEasy
Reading time9 min
Views12K

Привет, Хабр! Я – Рома, front-end разработчик в компании «АйТи-Баланс». Мне не понаслышке известно, насколько ресурсозатраным (в плане времени и сил) может быть поиск и исправление ошибок в JS. Новичкам этот процесс может показаться неподъёмным камнем, но только до знакомства с отладкой в инструментах разработчика, встроенных в браузер. О ней я и расскажу, причём затрону не console.log, а куда более эффективную альтернативу.

Читать далее

Всё, что необходимо (и достаточно) знать о создании пользовательских интерфейсов в расширениях VS Code

Level of difficultyMedium
Reading time14 min
Views4.5K

VS Code сам по себе не нуждается в представлении, однако многие программисты, привыкшие в нём разрабатывать, упускают одну очень полезную вещь. Благодаря встроенным возможностям по разработке расширений можно легко автоматизировать многие рутинные задачи — например, те, что выполняются в командной строке.

В этой статье, второй в серии материалов о нестандартных возможностях VS Code, разберём инструменты для создания интерактивных расширений, которые я применяю в работе над решениями productivity suite платформы МойОфис. Под катом мы рассмотрим веб-панели и их разновидность – веб-представления, а также другие стандартные средства VS Code API, такие, например, как элементы строки состояния (кнопки и сообщения).

Читать далее

Введение в WebSocket и Socket.IO

Level of difficultyMedium
Reading time5 min
Views12K

Введение

WebSocket — это протокол, обеспечивающий двустороннюю коммуникацию между клиентом и сервером, идеально подходящий для приложений, где необходима передача данных в реальном времени, таких как чаты, уведомления и онлайн-игры

Socket.IO — это библиотека, которая расширяет возможности WebSocket, предоставляя механизмы автоматического переподключения и fallback-режимы для более стабильной работы в нестабильных сетевых условиях

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

Читать далее

Как исправлять ошибки в Git, не оставляя улик

Reading time3 min
Views18K

Как же иногда хочется закинуть коммиты «Remove debug log», «fix» или «fix fix fix». Такие коммиты как грязные носки под кроватью: их не видно, пока не придёт ревьюер с пристальным взглядом или, что еще хуже, потенциальный работодатель, решивший посмотреть на ваш профиль github.

К счастью, Git предлагает два супер-инструмента для того, чтобы история коммитов выглядела так, будто ты всегда знаешь, что делаешь: git commit --fixup и git rebase --autosquash. И сегодня мы разберем на практике как это применять.

Читать далее

Пока Apple саботирует развитие PWA, мы сделали демо с контактами, пуш-уведомлениями и биометрией

Level of difficultyMedium
Reading time5 min
Views3.3K

Хабр не раз выручал нашу команду, когда заказчик ставил задачу, которую мы никогда не делали. В недавнем кейсе по разработке демо-приложения PWA мы подсмотрели в статьях несколько полезных советов и тоже решили написать о своем опыте. Поговорим о PWA, развитие технологии и про то, кому это выгодно и не очень. Кстати, меня зовут Сергей Филатов и я веб-разработчик в R-Style Softlab. 

Читать далее

Как запустить публичный сайт на телефоне или экономим на спичках

Level of difficultyEasy
Reading time5 min
Views5.1K

Сейчас вас научу "плохому" — будем поднимать наше веб-приложение на телефоне. Для этой цели я накидал приложение на go, которое определяет IP адрес, вычисляет город, отправляет запрос во внешний сервис и отдает страницу с данными о погоде в вашей локации.

Читать далее

Как разбирать логи в Linux: journalctl, grep, awk и sed

Reading time3 min
Views17K

Каждый админ хотя бы раз сталкивался с ситуацией, когда сервер внезапно начинает тупить: подвисают процессы, появляются странные задержки, что-то перестаёт работать. И первая остановка в таком случае — это журналы событий. В Linux системные логи хранятся в systemd-journald, а его главный инструмент для работы — journalctl. Но просто читать логи — это скучно. Разберем, как фильтровать, искать ошибки, анализировать данные и автоматизировать разбор логов с помощью grep, awk, sed и других утилит.

Читать далее

Порталы: как устроен расчёт видимости в Quake

Level of difficultyEasy
Reading time10 min
Views6.9K

Вы когда-нибудь хотели узнать, как работала предварительно вычисленная видимость в Quake? Я хотел, поэтому написал программу vis.py, воссоздающую этот алгоритм на Python. В этой статье представлена вся информация, необходимая для понимания vis, — инструмента, применявшегося в Quake, Half-Life и играх на Source Engine.

В процессе разработки Quake возникла проблема перерисовки (overdraw), то есть многократной записи одного и того же пикселя во время рендеринга кадра. Видимым остаётся лишь последний цвет, а все предыдущие записи оказываются лишней тратой ресурсов. Это плохо, если в вашей игре используется программный рендеринг, и так выжимающий последние соки из компьютера середины 90-х годов.

Как снизить объём перерисовки? Давайте начнём с высокоуровневого обзора возможных решений.

Читать далее

Академический минимум js-разработчика: базовые концепции

Level of difficultyEasy
Reading time11 min
Views14K

Приветствую всех! Меня зовут Рома, я разработчик в компании АйТи-Баланс. Хочу поделиться с вами своими знаниями и помочь разобраться в базовых концепциях, которые необходимы каждому новичку в мире JavaScript.

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

Читать далее

Мастер-класс по точечному переносу изменений между ветками в git

Level of difficultyEasy
Reading time7 min
Views19K

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

Читать далее

localForage — Что делать если localStorage уже не хватает?

Level of difficultyEasy
Reading time4 min
Views4.9K

localStorage и sessionStorage сильно ограничены в размере - всего 5 МБ, а использование IndexedDB для обхода этого ограничения не всегда является удобным из-за сложного API.

localForage решает сразу обе проблемы!

Читать далее

Starting Electronics: руководство по веб-серверам на Arduino. Часть 1

Reading time8 min
Views27K


От переводчика. В сети есть много информации о работе веб-серверов на микроконтроллерах, но она плохо структурирована и не отличается системным подходом к изложению материала. Среди прочих есть в интернете один замечательный, можно сказать культовый, туториал (руководство) по работе веб-серверов на Arduino от проекта Starting Electronics. Его авторам удалось невозможное: всего в нескольких уроках просто и доступно донести сложные вещи — как сам принцип работы веб-вервера, так и работу сопутствующих технологий (HTTP, HTML, CSS, Javascript, AJAX и т. д.) и причём сделать в практической плоскости.

Далее я предлагаю вашему вниманию перевод первых двух частей, скомпонованных в одну статью. Затем последует перевод и публикация и всех остальных частей (уроков) этого руководства.

Читать дальше →

CG Charger BQ: как TP4056, только на стероидах (BQ25895)

Level of difficultyMedium
Reading time16 min
Views17K


Сегодня на нашем операционном столе очередное гениальное изобретение компании ClimateGuard — девайс под не менее гениальным названием CG Charger BQ. Расшифровке того, что же всё-таки скрывается под этими загадочными буквами BQ (что означают буквы CG постоянные читатели моего блога уже знают) и посвящена эта статья.

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

Правда для осмысленной работы с BQ25895 вам понадобятся пара высших образований в Computer Science (смайл) и… эта статья…
Читать дальше →

Как устроен эффект ядерного взрыва в Fallout 4

Level of difficultyEasy
Reading time7 min
Views20K

Давайте исследуем одну загадку: как Bethesda смогла сделать такие грибообразные облака ядерных взрывов?

Читать далее

Библиография киберпанка

Level of difficultyEasy
Reading time17 min
Views16K

Если вас всё ещё преследует вопрос о том, что бы почитать в жанрах протокиберпанк, киберпанк и посткиберпанк, гляньте одним глазком в мой библиографический обзор. Почти уверен, там есть книги, которые вы ещё не прочли. Не верите? Проверьте!

Читать далее

Регулярные выражения простыми словами. Часть 2

Level of difficultyEasy
Reading time10 min
Views27K

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

Information

Rating
Does not participate
Registered
Activity