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

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

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

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

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

Читать далее «Кстати, про предыдущий щиток»

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

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

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

Читать далее «Вдогонку про логгер консоли на JavaScript»

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

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

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

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

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

Читать далее «Про букмарклеты»

sprintf на javascript

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

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

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

React-router и require.js

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

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

Читать далее «React-router и require.js»

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

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

Читать далее «Логгер для JS консоли»

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

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

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

Читать далее «Модальные окна Bootstrap»

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

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

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

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

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

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

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

Читать далее «ENC28J60 и REST-управление реле»