Рубрики
NodeMCU

Web-интерфейс с нуля на NodeMCU ч. 2

Как повелевать html’ом, не захламляя код

На самом деле существует два варианта, как подцеплять html/css/js и отправлять его в библиотеку ESP8266WebServer. Первый намного удобнее при использовании языка программирования Lua. Нода по сути шьется кодом, который позволяет загрузку файлов прямо в флеш память.

Я решил пойти более примитивным путем — весь код от разных страниц хранится в одном заголовчном файле, например, «html.h».

Примитивненько в коде указываем новую константу, и присваиваем ей массив char-символов.

const char html_code[] PROGMEM = "";

Именно таким решением я воспользовался в первый раз, но возникла небольшая проблема — каждый перенос строки пришлось экранировать обратным слэшем, а также добавить пернос строки с помощью комибнации «\r\n». Такой код выглядел немного нелепо, а редактировать его было неприятно. Вскоре я наткнулся на более приятную фишечку, которая позволила избавиться от столь большого количества бесполезных элементов. Начиная уже с С++11 можно использовать литеру R после символа присваивания, для того, чтобы компилятор воспринимал текст буквально «сырым», то есть raw.

Рубрики
NodeMCU

Web-интерфейс с нуля на NodeMCU ч. 1

Как я купил себе новую игрушку

Как-то раз я решился купить себе немного электронной атрибутики прямо с AliExpress’a. И именно тогда я столкнулся там с этим чудом: NodeMCU V3 на базе ESP8266. Маленькая Arduino Nano не просто загрустила, а вообще перестала кочевать и сейчас застряла в немного другом проекте.

Изображение NodeMCU V3 на базе ESP8266 с AliExpress


Вообще, я выделил для себя следующие преимущества данного модуля:

  • WIFI, который может одновременно быть точкой доступа и быть подключенным к другой точке
  • CH340, который позволяет через USB эмулирует все «сладости» COM-порта
  • MicroUSB, а не Mini — то есть из коробки можно подкинуть обычный «шнурок» от твоего андроида
  • 80MHZ(160MHZ от одной строчки) — 16MHZ Arduino Nano просто сидит на месте по сравнению с NodeMCU
  • 4MB Flash-памяти — приятное дополнение, хотя оно может ввести в заблуждение, так это не RAM-память, которой там всего 80 KB
  • Цена — 140-150 рублей за штуку. Немного дороже. чем голый ESP8266, но зато тут куча «вкусных плюшек»
  • Arduino IDE — возможность собирать прошивку прямо из этой среды

Из минусов пока не понравилось следующее:

  • Единственный аналоговый порт ввода/вывода, который причем еще и работает в диапазоне 3.3В
Рубрики
Без рубрики

Student App — Две недели работы и…

За две недели работы было произведено не очень много изменений:

  • В первую очередь, произошел первый рефакторинг кода через полгода после создания прототипа. Часть кода была перемещена в классы Old*.java, а также я попытался минимизировать зависимости. Теперь, когда мне предоставят доступ в БД системы, я смогу очень легко реализовать новые классы и методы, которые будут легко взаимодействовать с остальным приложением.
  • Был реализован парсер для http://press.tstu.ru/.
  • Соответственно, контент из парсера теперь будет показывать страница новостей.
    Это заняло больше 50% времени, так как реализация всего для меня была первым опытом.
  • Каждую новость теперь можно просмотреть отдельно, нажав на нее. Данный функционал был сначала сделан одним методом, а после прочтения документации на тему «Android Fragment» был переделан на основе этого класса. Но здесь требуются доработки.
  • Также мне очень хотелось попробовать систему контроля версий Git — я перенес приложение из Google Drive в нее, и теперь не беспокоюсь, что что-то может произойти с исходниками. Теперь я буду стараться выбрасывать на сайт также и changelog’и — это будет намного лучше.

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

Рубрики
TSTU Cabinet

Последние правки в декабре TSTU Student App

Scr2
Полноценный Drawer компонент на Java
Scr3
Начинаем парсить кабинет
Рубрики
Компьютеры

Обновляем компьютер до Kaby Lake’а

Моему компьютеру в этом году уже бы исполнилось девять лет, если бы не одно маленькое происшествие!1343721590_l1klea4qyvg

Конечно не в таких масштабах, но все равно — материнская плата приказала всем остальным долго жить. Соответственно я попытался ее восстановить, нашел убитый 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 мне было легче убиться, чем что-то отладить прямо на компьютере. Сейчас же я могу без проблем запустить эмулятор, а через минуту уже проверять работоспособность приложения.

Scr1

Рубрики
События сайта

Прикрыл уязвимость с XMLRPC.PHP

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

Рубрики
События сайта

Выходные на HackerRank.com

cropped-wt2-1.pngКак потратить половину дня или 12 из возможных 48ми часов на что-то недостижимое? Достаточно зайти на Hacker Rank и позволить себе уйти с головой программировать разную «шляпу».

Для себя я смог найти там отличный раздел для Java-программистов — материал рассортирован по главам и есть как простые задачи, так и сложные. Задачи короткие, но достаточно своеобразные и оригинальные, которые заставят тебя пошуршать мозгами.

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

8

Рубрики
TSTU Cabinet

Новые изменения в приложении TSTU Cabinet

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

И только где-то ближе к 20.07.16 пришло осознание, что не хватает бокового современного меню навигации. Оно облегчило мою жизнь в первую очередь. Да и его реализация получилась достаточна красива.

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

Screenshot_20160720-004913Screenshot_20160720-004917
 

 

Рубрики
TSTU Cabinet

Проект «TSTU Cabinet»

Добавил страницу описания старой-новой идеи: личного кабинета студента университета в виде приложения для Android.

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

Соответственно, чтобы работать с их кабинетом, придется прибегнуть к святому парсингу. Это конечно не конфетка, но сейчас вряд ли кто мне даст доступ к бд.

Упор этого приложения делается в то, что в будущем, намного удобнее будет скачать приложение с приятным и простым интерфейсом прямо с Google Play, и просто получать уведомления о новых оценках, событиях и достижениях.

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

kab_img
Пример скриншота этого кабинета

.