fail2ban-client set ssh-iptables banip 123.456.789.001
ExtJS 6.6.0
Что нового?
- можно указывать папку с sdk по умолчанию. Например sdk с новой версией хранится тут C:\Users\Myname\sencha-sdks\ext-6.6.0И тогда путь у sdk устанавливается так
sencha config --prop sencha.sdk.path=C:\Users\Me\sencha-sdks --save
- Инициализация приложения происходит так
sencha app init --ext@6.6.0 --modern MyApp
или
sencha app init --ext@6.6.0 --classic MyApp
или
sencha app init --ext@6.6.0 --universal MyApp
- Динамические стили:
Ext.theme.Material.getColors()
Убрать надпись trial из extjs
Находим соответствующие файлы и меняем в них значения:
\modern\theme-base\sass\etc\all.scss $ext-trial: false !default;
classic\theme-base\sass\etc\all.scss $ext-trial: false !default;
\ext\cmd\sencha.cfg ext.license.name=gpl
fail2ban для wordpress
Чтобы была возможность блокировки атак в wordpress через wp-login нужно:
- создать папку с плагинами wp_fail2ban
- внутри создать файл с тем же именем
- добавить туда код
<?php /** * Plugin Name: Return 403 on Failed Login */ function my_login_failed_403() { status_header( 403 ); } add_action( 'wp_login_failed', 'my_login_failed_403' ); - активировать плагин
Оригинал статьи: https://wpmag.ru/2014/fail2ban-wordpress/
Check hdd
sudo fsck -t -y -f -c /dev/sda1
УСТАНОВКА JPEGOPTIM
sudo apt install jpegoptim
ГлавнаяМультимедиаОптимизация изображений Linux
ОПТИМИЗАЦИЯ ИЗОБРАЖЕНИЙ LINUXМультимедиа Август 24, 2015 7 admin
ubuntu
Если у вас есть очень много изображений на домашнем компьютере или сервере, и они занимают слишком много места, то их размер однозначно можно уменьшить даже без потери качества. Также это может быть очень полезным при загрузке изображений в облачное хранилище.
В этой статье мы рассмотрим как выполняется оптимизация изображений Linux. Существует очень много графических инструментов для решения этой задачи, но на самом деле все намного проще. Мы рассмотрим как сжать изображения с помощью двух простых, но очень эффективных консольных утилит командной строки. Вот они:
jpegoptim — утилита для оптимизации и сжатия изображений без потери качества в формате JPEG;
pptipng — это небольшая программа, которая позволяет уменьшить размер PNG изображений без потери качества.
JPEG и PNG — это наиболее распространенные форматы изображений в сети интернет, поэтому вы сможете оптимизировать почти все изображения.
Содержание статьи:
Оптимизация JPEG изображений
Установка Jpegoptim
Как использовать jpegoptim
Оптимизация изображений PNG в Linux
Установка optipng
Сжатие изображений с помощью optipng
Выводы
ОПТИМИЗАЦИЯ JPEG ИЗОБРАЖЕНИЙ
Утилита jpegoptim — это инструмент командной строки, который может использоваться для сжатия изображений в формате JPEG, JPG и JFIF без потери качества. Утилита оптимизирует изображения на основе таблиц Хаффмана. Как вы знаете, в алгоритме JPEG и так используется сжатие, но это сжатие достигается с помощью потери качества, а здесь мы можем оптимизировать размер не меняя картинку.
УСТАНОВКА JPEGOPTIM
Для установки утилиты в Ubuntu, Debian и основанных на нем дистрибутивах выполните:
sudo apt install jpegoptim
В Fedora, Red Hat, CentOS и других, основанных на них дистрибутивах дела обстоят немного сложнее, вам придется сначала добавить репозиторий epel-release. Вы можете сделать это с помощью такой команды:
sudo yum install epel-release
Или:
sudo dnf install epel-release
Затем вы можете установить jpegoptim из только что подключенного репозитория:
sudo yum install jpegoptim
Или:
sudo dnf install jpegoptim
КАК ИСПОЛЬЗОВАТЬ JPEGOPTIM
Давайте рассмотрим как пользоваться jpegoptim. Использовать утилиту для сжатия изображений linux очень просто. Для этого достаточно выполнить программу и передать ей имя файла. Вот такой синтаксис:
$ jpegoptim опции имя_файла.jpeg
Рассмотрим опции утилиты:
-d — указать папку, в которую нужно сохранять готовые изображения;
-f — принудительная оптимизация;
-m — показатель качества, отменяет сжатие без потерь и устанавливает уровень качества от 0 до 100, чем больше, тем лучше;
-n — не выполнять реальную оптимизацию, а только показать результат;
-S — задать размер готового изображения, можно указать в процентах или килобайтах;
-o — заменить исходный файл;
-p — сохранить временные метки;
-P — сохранить права файла.
Распознавание голоса и чтение текста в браузере в 3 строки на JavaScript: демонстрация и примеры кода
Оригинал статьи: https://tproger.ru/articles/speech-recoginition-in-the-browser/
Распознавание речи — одна из символизирующих современный мир возможностей, которой мы привыкли пользоваться благодаря Siri и Google Now.
Но она присутствует не только в мобильных ассистентах: вы замечали иконку микрофона справа от поля поиска Google?
Распознавание голоса в браузере доступно благодаря мощности нового экспериментального JavaScript API — webkitSpeechRecognition. Другое API под названием speechSynthesis позволяет озвучивать человеческим голосом любой текст. Читать далее «Распознавание голоса и чтение текста в браузере в 3 строки на JavaScript: демонстрация и примеры кода»
Установка MacOS 10.12 Sierra на VirtualBox
https://host-consult.ru/macos-sierra-virtualbox/
Генерация БД для MySql при помощи утилиты mysql-db-generator
Для быстрой генерации БД MySql применяется утилита:
git clone git://git.appcode.pw/mysql-db-generator.git
После выполнения указанной выше команду, выполнить следующую
node index dbname=[dbname] username=[username]
, где
- db:string — имя создаваемой БД
- username:string — имя пользователя для безопасности
В результате выполнения будет сформирован файл query.sql
Структура приложения
- templates — каталог для хранения шаблонов для создания запросов
- functions — функции
- tables — таблицы
- views — представления
- index — главный файл для формирования запроса
Утилита генерации схемы БД для MySql db-schema-mysql
git clone git://git.appcode.pw/db-schema-mysql.git
Модуль генерирует файлы *.schema с наименованием сущностей.
var main = require('db-schema-mysql');
main(connectionString, outputPath, override);
,где:
- connectionString: string — строка подключения к БД
- outputPath: string — выходной каталог для хранения *.schema
- override: boolean — необязательный параметр. Предназначен для указания принудительной перезаписи исходных файлов. Применяется в процессе настройки и тестирования
Структура файла *.schema
*.schema — файл типа json с комментариями. Хранит структуру таблицы, view, процедуры
//#overwrite
{
"TABLE_NAME": "application_projects",
"TABLE_TYPE": "BASE TABLE",
"TABLE_TITLE": "Тип приложения",
"PRIMARY_KEY": "id",
"TABLE_COMMENT": '',
"FIELDS":[{
"COLUMN_NAME": "description",
"COLUMN_DEFAULT_VALUE": ,
"IS_NULLABLE": "NO",
"DATA_TYPE": "text",
"CHARACTER_MAXIMUM_LENGTH": 65535,
"NUMERIC_PRECISION": ,
"NUMERIC_SCALE": ,
"COLUMN_KEY": "",
"EXTRA": "",
"COLUMN_COMMENT": "Описание",
"REFERENCED_COLUMN_NAME": ,
"REFERENCED_TABLE_NAME":
}, {
"COLUMN_NAME": "id",
"COLUMN_DEFAULT_VALUE": ,
"IS_NULLABLE": "NO",
"DATA_TYPE": "int",
"CHARACTER_MAXIMUM_LENGTH": ,
"NUMERIC_PRECISION": 10,
"NUMERIC_SCALE": 0,
"COLUMN_KEY": "PRI",
"EXTRA": "auto_increment",
"COLUMN_COMMENT": "Идентификатор",
"REFERENCED_COLUMN_NAME": ,
"REFERENCED_TABLE_NAME":
}, {
"COLUMN_NAME": "name",
"COLUMN_DEFAULT_VALUE": ,
"IS_NULLABLE": "NO",
"DATA_TYPE": "varchar",
"CHARACTER_MAXIMUM_LENGTH": 255,
"NUMERIC_PRECISION": ,
"NUMERIC_SCALE": ,
"COLUMN_KEY": "",
"EXTRA": "",
"COLUMN_COMMENT": "Наименование",
"REFERENCED_COLUMN_NAME": ,
"REFERENCED_TABLE_NAME":
}, {
"COLUMN_NAME": "outputFileName",
"COLUMN_DEFAULT_VALUE": ,
"IS_NULLABLE": "NO",
"DATA_TYPE": "varchar",
"CHARACTER_MAXIMUM_LENGTH": 255,
"NUMERIC_PRECISION": ,
"NUMERIC_SCALE": ,
"COLUMN_KEY": "",
"EXTRA": "",
"COLUMN_COMMENT": "Имя выходного файла",
"REFERENCED_COLUMN_NAME": ,
"REFERENCED_TABLE_NAME":
}]
}
, где:
- TABLE_NAME: string — наименование сущности
- TABLE_TYPE: string — тип сущности. Например BASE TABLE, VIEW, PROCEDURE
- TABLE_TITLE: string — заголовок таблицы
- TABLE_COMMENT: string — описание таблицы
- PRIMARY_KEY: string — первичный ключ. Может быть пустым для VIEW и PROCEDURE
- FIELDS: any[] — набор полей
- COLUMN_NAME: string — наименование колонки
- COLUMN_DEFAULT_VALUE: any — значение по умолчанию
- IS_NULLABLE: string — YES — может быть null’ом, NO — не может быть null’ом
- DATA_TYPE: string — тип колонки. Например text, int и т. д.
- CHARACTER_MAXIMUM_LENGTH: number — длина строки. Указывается только для строковых типов
- NUMERIC_PRECISION: number — длина числового поля
- NUMERIC_SCALE: number — количество знаков после запятой для числового поля
- COLUMN_KEY: string — тип колонки
- PRI — является первичным ключом
- MUL — является FK
- EXTRA: string тип генерации для первичного ключа. Например auto_increment
- COLUMN_COMMENT: string — описание колонки
- REFERENCED_COLUMN_NAME: string — связь с колонкой другой таблицы. Указывается наименование колонки
- REFERENCED_TABLE_NAME: string — наименование таблицы с которой происходит связь
Выполнение через командную строку
node index connection=[connectionString] output=[output] override=[true|false]
, где
-
- connection: string — строка подключения к БД
- output: string — выходной каталог
- override: boolean — переопределение данных
[e100] Раздел1
Тогда schema будет выглядеть следующим образом:
{
"TABLE_NAME": "application_projects",
"TABLE_TYPE": "BASE TABLE",
"TABLE_TITLE": "Тип приложения",
"PRIMARY_KEY": "id",
"TABLE_COMMENT": '',
"FIELDS":[{
"COLUMN_NAME": "description",
"COLUMN_DEFAULT_VALUE": ,
"IS_NULLABLE": "NO",
"DATA_TYPE": "text",
"CHARACTER_MAXIMUM_LENGTH": 65535,
"NUMERIC_PRECISION": ,
"NUMERIC_SCALE": ,
"COLUMN_KEY": "",
"EXTRA": "",
"COLUMN_COMMENT": "Описание",
"REFERENCED_COLUMN_NAME": ,
"REFERENCED_TABLE_NAME": ,
"ORDER": 100 // тут сортировка
}, {
"COLUMN_NAME": "id",
"COLUMN_DEFAULT_VALUE": ,
"IS_NULLABLE": "NO",
"DATA_TYPE": "int",
"CHARACTER_MAXIMUM_LENGTH": ,
"NUMERIC_PRECISION": 10,
"NUMERIC_SCALE": 0,
"COLUMN_KEY": "PRI",
"EXTRA": "auto_increment",
"COLUMN_COMMENT": "Идентификатор",
"REFERENCED_COLUMN_NAME": ,
"REFERENCED_TABLE_NAME": ,
"ORDER": 50 // тут сортировка
}
...
Установка колонки по умолчанию
Для указания колонки по умолчанию применять:
[e100|d] Раздел1
В этом случаи для таблицы будет указан следующий параметр
{
"TABLE_NAME": "application_projects",
"TABLE_TYPE": "BASE TABLE",
"TABLE_TITLE": "Тип приложения",
"PRIMARY_KEY": "id",
"TABLE_COMMENT": '',
"DEFAULT_PROPERTY": "name"
...
, а для колонок будет указана следующая информация
...
"REFERENCED_COLUMN_NAME": "id",
"REFERENCED_TABLE_NAME": "sys_users",
"ORDER": 90,
"REFERENCED_DEFAULT_PROPERTY": "name"
...