MongoDB

Буду собирать полезности

Бесплатный инструмент с графическим интерфейсом Robo 3T (он же robomongo).

Общий не очень большой обзор.

Официальная дока по запросам.

Не везде можно найти поиск по регулярному выражению. Вот статья и мой рабочий пример на Python:

regex_query = { "_id" : {"$regex" : clean_quaral} }
counter = parcels.count_documents(regex_query) # количество выбранных объектов
Bson filter = Filters.and(Filters.regex("_id", "^" + quartal + ":*"), Filters.eq("loc_xst", true));
// Два фильтра сразу на Java

Проверки на null

vim

Небольшой мануал

http://ashep.org/2010/vim-neobxodimyj-minimum-znanij/

Vim Awesome

Установка цветовой схемы Solarized:

https://vimawesome.com/

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Add this to your vimrc:
execute pathogen#infect()
syntax on
filetype plugin indent on
Clone theme:
 $ cd ~/.vim/bundle
 $ git clone git://github.com/altercation/vim-colors-solarized.git
 $ mv vim-colors-solarized ~/.vim/bundle/
Add this to your vimrc:
syntax enable
set background=light
colorscheme solarized

или

syntax enable
set background=dark
colorscheme solarized

15 полезных команд PostgreSQL

Оригинал стати

https://tproger.ru/translations/useful-postgresql-commands/

А тут для меня

Размер базы данных

Чтобы получить физический размер файлов (хранилища) базы данных, используем следующий запрос:

SELECT pg_database_size(current_database());

Результат будет представлен как число вида 41809016.

current_database() — функция, которая возвращает имя текущей базы данных. Вместо неё можно ввести имя текстом:

SELECT pg_database_size('my_database');

Для того, чтобы получить информацию в человекочитаемом виде, используем функцию pg_size_pretty:

SELECT pg_size_pretty(pg_database_size(current_database()));

В результате получим информацию вида 40 Mb.

Размеры таблиц по убыванию:

SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;

Перечень подключенных пользователей

Чтобы узнать имя, IP и используемый порт подключенных пользователей, выполним следующий запрос:

SELECT datname,usename,client_addr,client_port FROM pg_stat_activity;

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

Чтобы узнать активность соединения конкретного пользователя, используем следующий запрос:

SELECT datname FROM pg_stat_activity WHERE usename = 'devuser';

Подсчёт количества строк в таблице

Количество строк вычисляется стандартной функцией count, но её можно использовать с дополнительными условиями.

Общее количество строк в таблице:

SELECT count(*) FROM table;

Количество строк при условии, что указанное поле не содержит NULL:

SELECT count(col_name) FROM table;

Количество уникальных строк по указанному полю:

SELECT count(distinct col_name) FROM table;

Конически проекции для России (Albers)

Albers-Europe
Projection: Albers Equal-Area Conic
Units: Meters
Spheroid: Krasovsky
Central meridian: 45
Standart Parallel 1: 52
Standart Parallel 2: 64
Reference Latitude: 0
False Easting: 8500000
False Northing: 0

PROJ.4: +proj=aea +lat_1=52 +lat_2=64 +lat_0=0 +lon_0=45 +x_0=8500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs

MapInfo: “Albers-Europe”, 9, 1001, 7, 45, 0, 64, 52, 8500000, 0

Albers-Siberia
Projection: Albers Equal-Area Conic
Units: Meters
Spheroid: Krasovsky
Central meridian: 105
Standart Parallel 1: 52
Standart Parallel 2: 64
Reference Latitude: 0
False Easting: 18500000
False Northing: 0

PROJ.4: +proj=aea +lat_1=52 +lat_2=64 +lat_0=0 +lon_0=105 +x_0=18500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs

MapInfo: “Albers-Siberia”, 9, 1001, 7, 105, 0, 64, 52, 18500000, 0

Albers-FarEast
Projection: Albers Equal-Area Conic
Units: Meters
Spheroid: Krasovsky
Central meridian: 135
Standart Parallel 1: 52
Standart Parallel 2: 64
Reference Latitude: 0
False Easting: 23500000
False Northing: 0

PROJ.4: +proj=aea +lat_1=52 +lat_2=64 +lat_0=0 +lon_0=135 +x_0=23500000 +y_0=0 +ellps=krass +units=m +towgs84=28,-130,-95,0,0,0,0 +no_defs

MapInfo: “Albers-FarEast”, 9, 1001, 7, 135, 0, 64, 52, 23500000, 0

git

В качестве примера используется репо – https://github.com/filippov70/town_map_front

Начало работы

Статья в тему

Видео в тему

Клонировать репо на локальный компьютер:

git clone https://github.com/filippov70/town_map_front.git

Теперь в репо были добавлены файлы. Посмотреть их git-статус:

git status
На ветке master
Ваша ветка обновлена в соответствии с «origin/master».

Неотслеживаемые файлы:
  (используйте «git add <файл>…», чтобы добавить в то, что будет включено в коммит)

        data.js
        index.html
        map.js
        school.geojson

ничего не добавлено в коммит, но есть неотслеживаемые файлы (используйте «git add», чтобы отслеживать их)
➜  town_map_front git:(master) ✗

Добавление этих новых файлов в git (индексация добавленных файлов). Команда git add. Точка означает текущую директорию (все не отслеживаемые файлы в текущей директории).

➜  town_map_front git:(master) ✗ git add .
warning: CRLF will be replaced by LF in data.js.
The file will have its original line endings in your working directory
warning: CRLF will be replaced by LF in index.html.
The file will have its original line endings in your working directory
warning: CRLF will be replaced by LF in map.js.
The file will have its original line endings in your working directory
warning: CRLF will be replaced by LF in school.geojson.
The file will have its original line endings in your working directory
➜  town_map_front git:(master) ✗ git status
На ветке master
Ваша ветка обновлена в соответствии с «origin/master».

Изменения, которые будут включены в коммит:
  (используйте «git reset HEAD <файл>…», чтобы убрать из индекса)

        новый файл:    data.js
        новый файл:    index.html
        новый файл:    map.js
        новый файл:    school.geojson

➜  town_map_front git:(master) ✗

Видно, что в новых файлах окончание строк в формате windows (CL/LF). Нужно изменить конец строк на линуксовую. Затем опять проверим статус репо:

git status
На ветке master
Ваша ветка обновлена в соответствии с «origin/master».

Изменения, которые будут включены в коммит:
  (используйте «git reset HEAD <файл>…», чтобы убрать из индекса)

        новый файл:    data.js
        новый файл:    index.html
        новый файл:    map.js
        новый файл:    school.geojson

Изменения, которые не в индексе для коммита:
  (используйте «git add <файл>…», чтобы добавить файл в индекс)
  (используйте «git checkout -- <файл>…», чтобы отменить изменения
   в рабочем каталоге)

        изменено:      data.js
        изменено:      index.html
        изменено:      map.js
        изменено:      school.geojson

➜  town_map_front git:(master) ✗

Теперь можно зафиксировать изменения в локальном хранилище (репо) git.

➜  town_map_front git:(master) ✗ git commit -m "Change end of line for linux"
[master 8b2886c] Change end of line for linux
 4 files changed, 144 insertions(+)
 create mode 100644 data.js
 create mode 100644 index.html
 create mode 100644 map.js
 create mode 100644 school.geojson
➜  town_map_front git:(master) ✗

Теперь можно внести эти изменения на удалённый сервер.