Установка SSL сертификата от Let’s Encrypt на собственный сервер. Доменное имя у меня зарегистрировано на reg.ru. Мои шаги:
- Переходим по ссылке и выбираем нужные конфигурации сервера. Я выбрал nginx и ubuntu 14
- Выполняем команды
Программирование на Всем!
Установка SSL сертификата от Let’s Encrypt на собственный сервер. Доменное имя у меня зарегистрировано на reg.ru. Мои шаги:
У нас стоит задача создать ExtJS объект без применения наследования от Ext.Base или Ext.Component и чтобы можно было использовать события.
Для реализации данной задачи нам поможет объект Ext.mixin.Observable
Пример инициализации класса: Читать далее «Применение событие с Ext.mixin.Observable»
Скачиваем файл compiler-latest
Распаковываем архив и выполняем команду
java -jar closure.jar --js src\logjs.js --js_output_file logjs.min.js
Оригинал статьи
Для применения в проектах ExtJS «файлового менеджера» нужно подключить пакет filer_package. Инструкция тут
Данный пакет содержит набор компонентов для работы с файловой системой
Компонент IServ.UX.Classic.StringTagField предназначен для выбора нескольких значений и преобразовании результата в строку с разделителем в виде запятой.
Компонент является наследником Ext.form.field.Tag Читать далее «Компонент для выбора нескольких значений IServ.UX.Classic.StringTagField»
Запуск TF, создание и обучение модели.
Читать далее «Введение в TensorFlow JS»
Тем кто переходит на PostgreSQL с MySQL, наверное будет удивительно узнать что специального свойства у поля auto_increment в новой СУБД нету. Заменой автоинкрементов в PostgreSQL являются такие штуки как Sequences (счетчики).
Работают они так:
-- Создание счетчика CREATE SEQUENCE auto_id_users;
-- Создание таблицы CREATE TABLE users ( "id" integer NOT NULL DEFAULT nextval('auto_id_users'), "name" text )
То есть счетчик взаимодействует с полем id через свойство DEFAULT в которой прописывается nextval от счетчика.
У этого подхода есть ряд несомненных плюсов:
Маска подсети — битовая маска для определения по IP-адресу адреса подсети и адреса узла этой подсети. В отличие от IP-адреса маска подсети не является частью IP-пакета.
Благодаря маске можно узнать, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.
Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.255.0 находится в сети 12.34.56.0 с длиной префикса 24 бита. В случае адресации IPv6 адрес 2001:0DB8:1:0:6C1F:A78A:3CB5:1ADD с длиной префикса 32 бита (/32) находится в сети 2001:0DB8::/32. Читать далее «Маска подсети»
Для разрешения подключения со всех адресов пишем в файле postgresql.conf
listen_addresses = '*'
Для разрешения пользователей указываем в файле pg.hba.conf
#IPv4 local connections: host all all 0.0.0.0/0 md5
Выполнение команд
sudo -u postgres psql
Создание пользователя:
sudo -u postgres createuser [username]
Применение пароля для пользователя:
$ sudo -u postgres psql psql=# alter user with encrypted password '';
Создание функции с IF ELSE
CREATE OR REPLACE FUNCTION is_accesses(role_name varchar, currentuser integer, claims varchar, user_id integer) RETURNS integer AS $BODY$ BEGIN IF role_name is null and user_id is null then RETURN 1; ELSEIF (role_name is not null and claims is not null and POSITION(CONCAT('.', role_name, '.') IN claims) > 0) then RETURN 2; ELSEIF (role_name is not null and claims is not null and POSITION(CONCAT('.', role_name, '.') IN claims) > 0) then RETURN 3; ELSEIF (role_name is null and currentuser = user_id) then RETURN 4; else RETURN 0; end if; END $BODY$ LANGUAGE plpgsql;
Создание функции
CREATE OR REPLACE FUNCTION get_object_fields() RETURNS SETOF sys_users AS $ BEGIN return QUERY SELECT * from sys_users; END $ LANGUAGE plpgsql;
или
CREATE OR REPLACE FUNCTION get_object_fields() RETURNS SETOF RECORD AS $ SELECT department_id WHERE ... $ LANGUAGE sql STABLE;
Создание backup’a
sudo su - postgres pg_dump postgres > postgres_db.sql
Восстановить. Нужно заранее создать бд и пользователя.
su - postgres psql -d database -f databas.sql ==== psql -U postgres dbname < infile
ufw status numbered ufw delete [number]