Skip to content

Instantly share code, notes, and snippets.

@artrey
artrey / configure_postgres.sh
Created October 19, 2018 13:07
Configuring postgres database
#!/usr/bin/env bash
DB_USER=${DB_USER:-"default_user"}
DB_PASSWORD=${DB_PASSWORD:-"default_password"}
DB_NAME=${DB_NAME:-"default_name"}
sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASSWORD';"
sudo -u postgres psql -c "CREATE DATABASE $DB_NAME;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
@artrey
artrey / locales-instructions.txt
Created October 24, 2018 08:51
Locales to *NIX systems
1. nano /etc/default/locale
# example
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_TYPE=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
2. locale-gen en_US.UTF-8
@artrey
artrey / Инструкция.md
Last active May 10, 2024 14:59
Как создать Telegram бота?
  1. Запустите Telegram и найдите бота @BotFather или просто перейдите по ссылке. Это бот для создания новых ботов.
  2. Начните чат с ботом. Для того чтобы создать нового бота - напишите команду /newbot.
  3. Укажите имя бота - это имя будет отображаться в чатах и оно может быть любым.
  4. Затем укажите идентификатор бота - это имя без пробелов, которое оканчивается на bot или Bot. Этот идентификатор должен быть уникальным. Можете пробовать различные имена, BotFather укажет, если что-то ему не понравится :)
  5. Все, на этом бот готов! На экран будет выведен токен для управления ботом.
  6. По желанию можно установить описание бота с помощью команды /setdescription и изображение с помощью команды /setuserpic.
@artrey
artrey / Инструкция.md
Last active October 22, 2023 15:30
nginx + certbot
  1. Установить nginx и certbot
apt install nginx certbot
  1. Создаем/изменяем файл с настройками получения сертификатов (метод webroot). Файл /etc/letsencrypt/cli.ini
authenticator = webroot
@artrey
artrey / dataset.csv
Created July 21, 2021 21:19
Fake dataset
Date Shop Country Visitors Earnings
2021-01-10 Metro DE 30861 663462
2021-01-10 IKEA GB 45071 233363
2021-01-10 H&M US 64099 488619
2021-01-10 Walmart DE 49261 271064
2021-01-10 IKEA FR 65216 615775
2021-01-11 IKEA DE 7618 126885
2021-01-11 IKEA RU 38168 775906
2021-01-11 IKEA FR 12712 689709
2021-01-11 Prisma FR 91555 522156

Dataset: https://gist.github.com/artrey/8d6a3f2d91cefb5e6343bedbc9ef8c79

Вам необходимо разработать API сервис для выдачи информации из датасета выше. Клиент должен иметь возможность:

  1. Получать только запрошенные колонки
  2. Фильтровать данные по одной или нескольким колонкам: дате (from/to), магазинам, странам
  3. Группировать данные по одной или нескольким колонкам: датам, магазинам, странам
  4. Сортировать по любой из колонок

Если клиент не указывает, какие колонки необходимо отобразить, то требуется отобразить все колонки.

@artrey
artrey / GoogleSheetEmail.md
Last active May 10, 2024 14:59
Отправка писем в Google Sheets
function remind() {
  var scheduleSheet = SpreadsheetApp.getActive().getSheetByName("График");
  var infoSheet = SpreadsheetApp.getActive().getSheetByName("Дежурные");

  var duty = scheduleSheet.getRange(12, 7, 1, 1).getValue();
  var info = infoSheet.getRange(1, 1, infoSheet.getLastRow(), 3).getValues();

  for (var index in info) {
    var row = info[index];
from __future__ import annotations
import typing
from typing import Generic, TypeVar
T = TypeVar("T")
class LinkedListError(Exception):
pass
@artrey
artrey / send-file-rest-client.md
Created February 21, 2022 21:31
How to send file via VS Code RestClient
PATCH {{baseUrl}}/users/me/
Authorization: JWT {{token}}
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary

------WebKitFormBoundary
Content-Disposition: form-data; name="photo"; filename="demo-name.png"
Content-Type: image/png

< /home/alexander/Pictures/google-calendar.png

Start

sudo apt install rclone
rclone config

Dialog