Способ узнать ID Chrome расширения без установки

При разработке и тестировании расширений для Google Chrome иногда возникает необходимость уточнить, какой ID будет присвоен браузером при установке этого расширения. Стадартный способ это узнать: перейти на страницу chrome://extensions/ и включить режим разработчика. Однако ID так же можно получить из bash'a, вообще не запуская браузер.Есть два способа. Локальное…

JSON Web Token авторизация для Sails.js

Рассматривая фреймворк Sails.js в качестве инструмента реинкарнации одного старого PHP-проекта я решил попутно посмотреть что есть из готовых модулей для реализации авторизации с применением JSON Web Token (JWT). Так вот, на момент публикации статьи, готовые решения отсутствуют. Есть лишь небольшой ряд примеров по работе с JWT в Sails, абсолютно…

stub_status не доступен через localhost

При попытке настроить stub_status для NGINX Amplify столкнулся с тем, что статус-страница успешно резолвилась через IP: curl http://127.0.0.1/nginx_status Active connections: 41 server accepts handled requests 64 64 174 Reading: 0 Writing: 1 Waiting: 40 Однако отдавала 404 при попытке открыть через хост: curl…

Автоматизированное получение золотого значка на StackOverflow c помощью Nightmare

Изучая значки (badges) на StackOveflow.com, я обратил внимание на золотую награду "Фанатик" (Fanatic), которая дается при выполнении условия: Visit the site each day for 100 consecutive days. (Days are counted in UTC.) (пер.: "Посещать сайт ежедневно в течение 100 дней подряд. (Учёт дней по UTC.)"…

Анализ статистики использования WebStorage

Привожу результаты анализа использования localStorage и sessionStorage сайтами, которые я посетил за пару недель. Для сбора информации применялось самописное расширение «Collector». Данные собирались со всех сайтов, которые используют Web Storage. За 17 дней таких сайтов 268. (С учетом полного доменного имени). Статистика По типу хранимых данных: Используют Web Storage для…

Расширение Chrome для сбора статистики по использованию localStorage

Работая над расширением для Chrome Local Storage Explorer решил параллельно собрать статистику о хранимых типах данных в localStorage и sessionStorage. А именно: как часто веб-разработчики используют локальное хранилище для размещения JSON-объектов. Подразумевается, что информация будет собираться моим браузером на каждом посещенном сайте, в фоне. Полагаю, информации с пары-сотен доменов будет…

Простой способ распарсить и редактировать URL строку

Необходимость распарсить и модифицировать URL-строку произвольного вида часто приводит к использованию большого количества регулярных выражений. Есть достаточно удобный способ этого избежать и переложить парсинг URL на сторону браузера. Для этого необходимо создать (но не прикреплять к DOM) элемент <a> и указать нужный URL в href: var parser = document.…

Сниппет для подсветки клика по элементу на чистом JS

Важной кнопке или интерактивному элементу, с которым пользователь может взаимодействовать посредством клика, зачастую не хватает подтверждения совершённого действия. Для таких случаев автор применяет небольшой JavaScript-сниппет для анимации. Суть анимации такова: мгновенная установка свойства background-color и последующее плавное изменение его до оригинального значения спустя несколько секунд. Демо Некая важная кнопка для…

Устранение слабого Wi-Fi сигнала для чипа RTL8723be

Если вы читаете эту статью, значит на вашем устройстве есть подключение к интернету. Хорошо. После покупки ноутбука HP 15-ac124ur на нем было проведено тестирование дистрибутивов: Linux Mint 17.3, Xubuntu 14.04 LTS и Elementary OS «Freya». На вышеописанных системах наблюдалась проблема — крайне слабое качество Wi-Fi сигнала. Фактически полная невозможность…

Рекурсивное сложение всех цифр числа

Возникла необходимость в реализации алгоритма сложения всех цифр числа до тех пор, пока не получится однозначное. Пояснение задачи Имеется некое число, требуется получить сумму его цифр. Если в результате сложения получено не однозначное число — процедура сложения цифр повторяется уже для полученной суммы. И так до тех пор, пока на выходе…