Вдогонку про логгер консоли на JavaScript

Ах да, чуть не забыл добавить к предыдущему посту на эту тему. Между прочим, у нас ведь есть console.warn(); и console.error();; которые сами выводят имена функций, что их вызвали; да ещё и с указанием полезных мелочей, вроде строк в коде. Тогда можно улучшить ранее предложенный вариант так:

Или наоборот — заменить штатный способ выдачи данных в консоль… Хотя нет, лучше всё и сразу:

Подробнее »

Опубликовано в Code, JavaScript Метки:

Кстати, про предыдущий щиток

Завалялись тут старые фотографии.

Правда, дело происходило за городом. Поэтому, учитывая, что защитное заземление всё равно будет, вместо связки «автомат-УЗО» захотелось поставить АВДТ. Обрыв нуля исключён же (заземление по системе TN-C-S).

Сам процесс сборки (на момент фотографирования ГЗШ не была заземлена, не стоит на это обращать внимание):

Подробнее »

Опубликовано в Электрика, Электротехника Метки: ,

Новый щиток

Итак, очередной щиток собран. В этот раз был самый минимум.

Сам процесс сборки вот, если что:

Подробнее »

Опубликовано в Электрика, Электротехника Метки: ,

Логгер для JS консоли

Чего только люди не выдумывают, дабы было проще отлаживать код. Некоторые, например, желая получить ответ на вопрос «что это было?!», в ходе отладки, пытаются вставлять дату и/или время рядом с выводом console.log();. Возможно, такой подход актуален на сервере, если мы говорим о Node.JS; но при отладке клиентской части целесообразнее выводить дельту от времени начала работы скрипта…

Подробнее »

Опубликовано в Code, JavaScript Метки:

sprintf на javascript

«Нужен ли аналог sprintf на javascript»? С одной стороны, в принципе, всегда достаточно было добавить в код что-то вроде:

…и использовать его во всех направлениях, к примеру:

Однако, мне попалась забавная реализация sprintf, которая гораздо удобнее:
Подробнее »

Опубликовано в Code, JavaScript Метки:

Модальные окна Bootstrap

Однажды, на некоем сайте мне до жути понадобилось вызвать модальное окно. Bootstrap на страницах уже был, но, к сожалению, вся тема оформления ресурса представляла собой изуродованный оригинальный код этой библиотеки и её стилей. Поэтому вызвать окно, прицепив шикарную библиотеку Bootstrap3-dialog не удалось. Разбираться в ней и пытаться заставить её работать хоть как-то не хотелось.

Короче, проще было переписать её заново. Получилось, по-моему, гораздо компактнее и не так уж и плохо.

Подробнее »

Опубликовано в Code, JavaScript Метки: ,

Про букмарклеты

Букмарклеты — это такие кусочки javascirpt-кода, которые встроены непосредственно в тело атрибута „href“ ссылки. Например, нажатие на эту ссылку вызовет появление окна alert(). Кстати, вот её код:

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

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

Отсюда возникает вопрос, а есть ли у них хоть какие-то преимущества? Существуют же «пользовательские скрипты» — userJS — например, скрипты для Tampermonkey. Есть ли хоть одна причина, по которой имеет смысл использовать эту лазейку с букмарклетами в браузере?

Подробнее »

Опубликовано в Code, JavaScript Метки: ,

React-router и require.js

Некоторые сталкивались с проблемой подключения ReactRouter к require.js. Здесь описывается каким образом можно решить эту проблему.

Причиной возникновения сабжа является то, что React-Router откажется работать, если не увидит в области видимости объекта window библиотеку React.

Подробнее »

Опубликовано в Code, JavaScript Метки: ,

„Always use semicolons“

Встречаются до сих пор люди, которые убеждены, что точка с запятой в JS не обязательна; или что эксплуатация случаев автовставки точки с запятой интерпретатором полезна. Разумеется, всё совсем не так…

Рассмотрим банальный пример, который не заработает:

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

Опубликовано в Code, JavaScript Метки:

ENC28J60 и REST-управление реле

ENC28J60 — почему-то, именно с этим Ethernet-модулем возникают проблемы у всех, кто пытался его использовать, отойдя в сторону от одно-двухстраничного WEB-сервера. Ответ в принципе работы ENC28J60; его работа с TCP/IP организована программно, а не аппаратно. Оттого, ожидать совместимости с другими похожими Ethernet-модулями несколько необдуманно.

IMG_0333

Кратко. Нужно реализовать Web-сервер на Arduino, в качестве Ethernet-модуля которого будет использоваться ENC28J60. Сервер должен получать REST-команды с клиента и возвращать JSON-строку в качестве ответа. Также, в качестве управляемого устройства должен выступать реле-модуль.

Клиентом же может выступать некий абстрактный скрипт, написанный на NodeJS.

План решения этой задачи можно разбить на следующие этапы:

  1. Подключение модуля ENC28J60 к Arduino,
  2. Подключение реле-модуля на 2 реле,
  3. Реализация обработки запросов модулем ENC28J60,
  4. Соединение всего вместе,
  5. Написание „клиента“ на NodeJS.

Подробнее »

Опубликовано в Электроника, Электротехника Метки: , , , ,