Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Makefile/includes #58

Open
wants to merge 13 commits into
base: develop
Choose a base branch
from
Binary file added .DS_Store
Binary file not shown.
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
mind_store/**/*.png
mind_store/**/*.svg
mind_storm/**/*.png
mind_storm/**/*.svg

.vscode
6 changes: 6 additions & 0 deletions ops/memory_cache_clean.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env sh

# 2022-05-28 22:33

# Before run htop & see Mem [cache used::Yellow_color_stick]
sync; sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
115 changes: 115 additions & 0 deletions postgresql/bh-001.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Bh-001

> Bage-hour
> 2022-05-12 7:00-8:20(8:34)

## PostrgeSQL

> Чтение книги `b_PG11[1]`

## Глава 1

> Что нового в PG11?

### Новые средства администрирования базы данных

+ снизить нагрузку на администратора и сделать систему более надежной и стабильной.

**Задание размера сегментов WAL**

- `initdb -D /pgdata --wal-segsize=32`
- создает экземпляр базы данных.
для чтения - 16Мб / Для активной записи в базу стоит увеличить размер файла предзаписи

**Увеличенный queryid в pg_stat_statements**

Модуль `pg_stat_statements` загружается в момент запуска PostgreSQL, если прописан в параметре `shared_preload_libraries`, и собирает статистические сведения о запросах, выполняемых сервером. Представление сразу покажет, если что-то пошло не так

- имеется поле `queryid`, которое до сих пор содержало 32-разрядный идентификатор (внутренний хеш-код).

### Усовершенствования в индексировании и оптимизации

**Статистика индекса по выражению**

```sql
SELECT * FROM person WHERE gender = 'female';
```

> (посмотрите справку по команде `CREATE STATISTICS`).

Хорошая новость состоит в том, что PostgreSQL может также собирать статистику для функциональных индексов:

```sql
CREATE INDEX idx_cos ON t_data (cos(data));
```

Рассмотрим пример индекса по нескольким столбцам:

```sql
CREATE INDEX coord_idx ON measured (x, y, (z + t));
ALTER INDEX coord_idx ALTER COLUMN 3 SET STATISTICS 1000;
```

В этом примере мы говорим PostgreSQL, что по третьему столбцу в системной статистике должно быть 1000 записей

**Покрывающие индексы**

```sql
SELECT id, name FROM person WHERE id = 10;
```
> Это называется просмотром индекса (`index scan`)

```sql
CREATE UNIQUE INDEX some_name ON person USING btree (id) INCLUDE (name);
```

**Параллельное построение индексов**

параллельное построение __B-деревьев__

### Улучшенное управление кешем

**Усовершенствованная команда pg_prewarm**

### Улучшенные оконные функции

```sql
SELECT *,
array_agg(x) OVER (ORDER BY x ROWS BETWEEN
1 PRECEDING AND 1 FOLLOWING),
array_agg(x) OVER (ORDER BY x ROWS BETWEEN
1 PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW)
FROM generate_series(1, 5) AS x;
```
```terminal
x | array_agg | array_agg
---+-----------+-----------
1 | {1,2} | {2}
2 | {1,2,3} | {1,3}
3 | {2,3,4} | {2,4}
4 | {3,4,5} | {3,5}
5 | {4,5} | {4}
(5 строк)
```

### Добавление JIT-компиляции

### Улучшенное секционирование

> postgres=#

```sql
CREATE TABLE default_part PARTITION OF some_table DEFAULT;
```

> test=#

```sql
CREATE TABLE tab(i int, t text) PARTITION BY HASH (i);
```

> test=#

```sql
CREATE table tab_1 PARTITION OF tab FOR VALUES WITH (MODULUS 4, REMAINDER 0);
```
7 changes: 7 additions & 0 deletions postgresql/sources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Sources

## Books

- [ ] "PostgreSQL 11 Мастерство разработки", Ганс-Юрген Шениг, Второе издание, Москва 2019
- `code: b_PG11[1]`

8 changes: 8 additions & 0 deletions ruby/lessons/2_hexlet/app/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
source "https://rubygems.org"

gem 'open3'

group :test do
gem 'minitest',
gem 'minitest-reporters', '>= 1.1.7'
end
15 changes: 15 additions & 0 deletions ruby/lessons/2_hexlet/app/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
GEM
remote: https://rubygems.org/
specs:
minitest (5.15.0)
open3 (0.1.1)

PLATFORMS
ruby

DEPENDENCIES
minitest
open3

BUNDLED WITH
1.17.3
5 changes: 5 additions & 0 deletions ruby/lessons/2_hexlet/app/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
console:
@ruby-console

test:
ruby test.rb
5 changes: 5 additions & 0 deletions ruby/lessons/2_hexlet/app/solution.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# frozen_string_literal: true

# BEGIN (write your solution here)
puts 'Hello, World!'
# END
17 changes: 17 additions & 0 deletions ruby/lessons/2_hexlet/app/test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# frozen_string_literal: true

require 'minitest'
require 'minitest/power_assert'
require 'minitest/autorun'
#require 'open3'
require_relative './solution'

class SolutionTest < Minitest::Test
def test_solution
o, _e, = Open3.capture3('ruby solution.rb')

result = o.chomp

assert { result == 'Hello, World!' }
end
end
57 changes: 57 additions & 0 deletions ruby/lessons/bh-003_001.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Ruby

> 2022-05-12 10:07
> (отставание по графику 27 мин)

## Теория

- [Введение в программирование. Ruby](https://learn.dualboot.ru/courses/5/lessons/74/theories)

глянул* TDD

## Узнал
- [Введение в Ruby](https://ru.hexlet.io/courses/ruby)

4 способа запуска кода руби локально

1. `ruby test.rb`
2. `ruby -e 'puts "Ruby is alive!"'` 🍊
3. `irb`
4. `pry`

##

Правила

1. Классы не могут содержать больше чем 100 строк кода.
2. Методы не могут быть длиннее чем 5 строк кода.
3. Нельзя передавать больше 4 параметров в метод. Значения хэша также считаются параметрами.
4. Контроллеры могут инстанциировать только один объект. Следовательно, представление может знать только об одной инстанс переменной и должно только слать сообщения этому объекту (`@object.collaborator.value` не допустим).


## Числа

https://ru.hexlet.io/courses/ruby/lessons/ruby_numbers/theory_unit

- [x] https://ru.hexlet.io/code_reviews/575656#tips

---

### 🐛 Поиск ошибок в коде

> source: `https://ru.hexlet.io/code_reviews/575656#tips`

Шаги, которые выполняют программисты для поиска ошибок в коде

- [ ] Найдите сообщение об ошибке в выводе. Попробуйте перевести его и понять.
- [ ] Изучите [стектрейс](https://en.wikipedia.org/wiki/Stack_trace), [🇷🇺 Трассировка стека](https://ru.wikipedia.org/wiki/Трассировка_стека), найдите указание на файл и строку, где произошла ошибка. Откройте файл, проанализируйте код вокруг.
- [ ] Посмотрите, как вызывается ваш код в тестах, какие данные в него передаются.
- [ ] Убедитесь, что вы не пропустили ничего в описании задания. В конце бывают подсказки.
- [ ] Прочитайте обсуждения конкретного урока, возможно, там есть разбор некоторых ошибок.

---

## Задачи

[x] Выполнил 2 задачи https://ru.hexlet.io/courses/ruby/lessons/ruby_numbers/theory_unit

4 changes: 4 additions & 0 deletions ruby/lessons/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
# 2022-05-12 10:35

ruby -e 'puts "Ruby is alive!"'
10 changes: 10 additions & 0 deletions ruby/sources.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Sources

## Books

## Courses

- [ ] [Введение в программирование. Ruby](https://learn.dualboot.ru/courses/5/lessons/74/theories)
- [x] [TDD](https://ru.wikipedia.org/wiki/Разработка_через_тестирование)

- [ ] [Введение в Ruby](https://ru.hexlet.io/courses/ruby)
6 changes: 6 additions & 0 deletions stack/ruby_rails/gitpod.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Gitpod

> Me knows about `Gitpod` from Adventech/Sabbath-school-lessons::issuie

- [ ] [Gitpod >Ruby on Rails Quickstart](https://gitpod.io/docs/quickstart/ruby-on-rails)

Binary file added tools/.DS_Store
Binary file not shown.
Empty file added tools/.keep
Empty file.
Binary file added tools/makefile/.DS_Store
Binary file not shown.
29 changes: 29 additions & 0 deletions tools/makefile/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#SHELL=/bin/sh
SHELL=/usr/bin/env bash

vpath ../makefiles

# include ./makefiles/*.mk
# include './makefiles/*.mk'
# include "./makefiles/*.mk"

-include -I ./makefiles/*.mk

#LIB_MKFLS = ./makefiles/*.mk
#include LIB_MKFLS

# ==================================================================================== #
# HELPERS
# ==================================================================================== #

## help: print this help message
.PHONY: help
help:
@echo 'Usage:'
@sed -n 's/^##//p' ${MAKEFILE_LIST} | column -t -s ':' | sed -e 's/^/ /'


read:
@echo http://re.dopo.st/201015204327/ Ivan Nemytchenko ()

rails_serve: r
7 changes: 7 additions & 0 deletions tools/makefile/make-rails.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

## rails_serve: Start Rails web-server as a daemon
.PHONY: rails_serve
rails_serve:
rails serve -b 0.0.0.0 -d

r: rails_serve
25 changes: 25 additions & 0 deletions tools/makefile/mks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Makefile

## From Makefile

```Makefile

# =====================
all :
@echo no\
space
@echo no\
space
@echo - one \
space
@echo one\
Гибралтар

info:
# 16.2 Utilities in Makefiles GNU make | book p. 158
@echo = Utilities in Makefile =
@echo
@echo - awk cat cmp cp diff echo egrep expr false grep install-info ln ls
@echo - mkdir mv printf pwd rm rmdir sed sleep sort tar test touch tr true

```
15 changes: 15 additions & 0 deletions tools/makefile/mks/make-docker.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## Docker


## docker_images: show docker images list
.PHONY: docker_images
docker_images:
docker images

docker_ps:
docker ps

## di: Alias for show docker images list
di: docker_images

ds: docker_ps
7 changes: 7 additions & 0 deletions tools/makefile/mks/make-rails.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

## rails_serve: Start Rails web-server as a daemon
.PHONY: rails_serve

rails_serve:
rails serve -b 0.0.0.0 -d

3 changes: 3 additions & 0 deletions tools/makefile/mks/subtree/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@

include ../*.mk

Loading