Пишем расширение для браузера Chrome

1311525359_google-chrome-addons_1Ну не написал об этом только ленивый 😉

Задача: написать «Оповещалку» о проблемах в сети и серверах, которая тянет данные с Zabbix.

Первым делом создаем файл manifest.json:

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

В background перечисляются скрипты, которые будут автоматически запускаться при старте браузера (ну и собственно расширения).

defalut_popup — скрипт который будет запускаться при нажатии на иконку расширения.

» Читать далее

Обмен данными между серверами..

Задача: на сервер А, периодически получить некие данные с сервера Б.

Хм. К сожаление не придумал ничего умнее кроме как:

На сервере Б регулярно выполнять скрипт, который собирает данные и при помощи

$handle=fopen("http://сервер/скрипт.php?данные", "r");

выплевывает их на сервер А, в качестве параметра GET. На сервере А, правда настроил доступы при помощи .htaccess для конкретного IP сервера..

Но решение не нравится.. Какие то должны быть механизмы попроще и понадежне..

Открыл для себя DokuWiki

Очень простой в использовании и установке WIKI подобный портал. Устанавливается простым копированием скриптов в папку. Не требует БД.  Удобный встроенный поиск, корректно работающий с русским языком.

Снимок экрана из 2015-09-04 17:46:43

Снимок экрана из 2015-09-04 17:48:02

 

fabric.js подсказка при наведении мышки на обьект..

Странно, что такой полезной функции не оказалось в «коробке»…Ну да ничего. Решаемо.

Снимок экрана из 2015-07-28 16:24:03

Библиотека для работы с графикой на JavaScript

Последнее время активно работаю с библиотекой fabric.js, для работы с графикой на JavaScript, а именно делаю «редактор муфт»:

Снимок экрана из 2015-07-28 10:13:49

Библиотека позволяет на холсте canvas работать с графикой как с объектами: выделять, изменять, назначать обработчики событий (выделение, клик, перемещение и т.п.) для каждого объекта. Ну и еще много всего. В то-же время она достаточно проста в освоении.

Однако приведу несколько моментов, на которые пришлось потратить время, что-бы разобраться:

1) Перебор всех объектов в canvas:

2)  Для очистки canvas от всех объектов:

3) Закраска объекта градиентом:

4) Назначение событий:

1 37 38 39 40 41 55