Author: defend
x
Как повелевать html’ом, не захламляя код
На самом деле существует два варианта, как подцеплять html/css/js и отправлять его в библиотеку ESP8266WebServer. Первый намного удобнее при использовании языка программирования Lua. Нода по сути шьется кодом, который позволяет загрузку файлов прямо в флеш память.
Я решил пойти более примитивным путем — весь код от разных страниц хранится в одном заголовчном файле, например, «html.h».
Примитивненько в коде указываем новую константу, и присваиваем ей массив char-символов.
const char html_code[] PROGMEM = "";
Именно таким решением я воспользовался в первый раз, но возникла небольшая проблема — каждый перенос строки пришлось экранировать обратным слэшем, а также добавить пернос строки с помощью комибнации «\r\n». Такой код выглядел немного нелепо, а редактировать его было неприятно. Вскоре я наткнулся на более приятную фишечку, которая позволила избавиться от столь большого количества бесполезных элементов. Начиная уже с С++11 можно использовать литеру R после символа присваивания, для того, чтобы компилятор воспринимал текст буквально «сырым», то есть raw.
Демон настроек Gnome любит перезаписывать уже существующие настройки (например в файле xorg.conf.d). Исправить эту проблему достаточно просто для тачпада:
1. Запускаем dconf-editor
2. Находим раздел /org/gnome/settings-daemon/plugins/mouse/
3. Снимаем галочу с active
Теперь существующая конфигурация synaptics не будет перезаписываться Gnome
Как я купил себе новую игрушку
Как-то раз я решился купить себе немного электронной атрибутики прямо с AliExpress’a. И именно тогда я столкнулся там с этим чудом: NodeMCU V3 на базе ESP8266. Маленькая Arduino Nano не просто загрустила, а вообще перестала кочевать и сейчас застряла в немного другом проекте.

Вообще, я выделил для себя следующие преимущества данного модуля:
- WIFI, который может одновременно быть точкой доступа и быть подключенным к другой точке
- CH340, который позволяет через USB эмулирует все «сладости» COM-порта
- MicroUSB, а не Mini — то есть из коробки можно подкинуть обычный «шнурок» от твоего андроида
- 80MHZ(160MHZ от одной строчки) — 16MHZ Arduino Nano просто сидит на месте по сравнению с NodeMCU
- 4MB Flash-памяти — приятное дополнение, хотя оно может ввести в заблуждение, так это не RAM-память, которой там всего 80 KB
- Цена — 140-150 рублей за штуку. Немного дороже. чем голый ESP8266, но зато тут куча «вкусных плюшек»
Arduino IDE — возможность собирать прошивку прямо из этой среды
Из минусов пока не понравилось следующее:
- Единственный аналоговый порт ввода/вывода, который причем еще и работает в диапазоне 3.3В
За две недели работы было произведено не очень много изменений:
- В первую очередь, произошел первый рефакторинг кода через полгода после создания прототипа. Часть кода была перемещена в классы Old*.java, а также я попытался минимизировать зависимости. Теперь, когда мне предоставят доступ в БД системы, я смогу очень легко реализовать новые классы и методы, которые будут легко взаимодействовать с остальным приложением.
- Был реализован парсер для http://press.tstu.ru/.
- Соответственно, контент из парсера теперь будет показывать страница новостей.
Это заняло больше 50% времени, так как реализация всего для меня была первым опытом. - Каждую новость теперь можно просмотреть отдельно, нажав на нее. Данный функционал был сначала сделан одним методом, а после прочтения документации на тему «Android Fragment» был переделан на основе этого класса. Но здесь требуются доработки.
- Также мне очень хотелось попробовать систему контроля версий Git — я перенес приложение из Google Drive в нее, и теперь не беспокоюсь, что что-то может произойти с исходниками. Теперь я буду стараться выбрасывать на сайт также и changelog’и — это будет намного лучше.
Из видео ниже можно увидеть весь доступный сейчас функционал.


Моему компьютеру в этом году уже бы исполнилось девять лет, если бы не одно маленькое происшествие!
Конечно не в таких масштабах, но все равно — материнская плата приказала всем остальным долго жить. Соответственно я попытался ее восстановить, нашел убитый MOSFET, поменял его. Затем запустил BIOS и увидел грубую ругань в сторону NVRAM. Узнав через интернет, что это лечится с помощью перепрошивки на программаторе, я все бросил.
Я склонился к смене старой материнской платы на MSI H110 PRO-VD с сокетом LGA1151. Вот что может пощекотать нервы любому человеку, разбирающегося в процессорах:
SkyLake или Kaby Lake, i3 c 2-мя ядрами и HyperThreading’ом или настоящий четырехядерник i5. Все что угодно, от цены и до технологии, добавляло еще больше огня в «костер выбора». В итоге решил стартануть с вот такой новой комбинацией на руках:
- MSI H110 PRO-VD
- Intel i5-7400
- DDR4 8GB RAM
После закупов в Ulmart’e, в тот же день, я решил все незамедлительно и собрать, но и тут меня постигло разочарование. Свеженький Kaby Lake не хотел дружится с материнкой — подавай ей SkyLake. Компьютер не стартовал.
Был необходим процессор Intel 6-ого поколения и только. Конечно я читал про это, но будучи все тем же наивняком, я решительно думал, что у компьютера хотя бы запустится BIOS. Мне пришлось искать вариант прошивки BIOS «по-фасту» — отдавать по гарантии на неделю и более что-то не хотелось.
В результате я получил, как минимум, двойной прирост производительности в сравнении со старым Intel Core 2 Quad 9450 2.55GHz@ 3.2GHz, а также кучу крутых технологий. Это все хорошо заметно на основе эмулятора Android. Ранее в среде Android Studio мне было легче убиться, чем что-то отладить прямо на компьютере. Сейчас же я могу без проблем запустить эмулятор, а через минуту уже проверять работоспособность приложения.

Спасибо за внимание, но к сожалению мне пришлось закрыть эту уязвимость. Да, да, да, xmlrpc.php будет с радостью блокировать вас.
Проблема возникает только у владельцев WordPress-сайтов, так что если появится необходимость, то на почте я с удовольствием скину вам код, который использую сам.

Как потратить половину дня или 12 из возможных 48ми часов на что-то недостижимое? Достаточно зайти на Hacker Rank и позволить себе уйти с головой программировать разную «шляпу».
Для себя я смог найти там отличный раздел для Java-программистов — материал рассортирован по главам и есть как простые задачи, так и сложные. Задачи короткие, но достаточно своеобразные и оригинальные, которые заставят тебя пошуршать мозгами.
Так же решил побаловать свой одинокий сайт, на который никто не заглядывает, крутой иконкой. Вот и все.
