BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
== Как работает процессор
https://youtu.be/kIrKeKiJt90

RAM:
- шина адреса
- шина данных
- шина управления (установить/получить)

- Управляющее устройство
- АЛУ
- регистр
- шина процессора
- временный буфер
- регистр инструкций
== Безопасность интернет-приложений
https://youtu.be/c9k3WUdDMpo

Угрозы
Spoofing - подмена данных
Tampering - перехват
Repudiation - нарушение апелируемости, попытка скрыть источник запроса
Information Disclosure
Denial of service
Elevation of privilege

Оценка рисков
- damage
- reproducibility
- Exploitability
- Affected users
- discoverability

Контрмеры
- контроль доступа (идентификация, аутентификация, авторизация)
- управление сессиями
- валидация входных данных
- обработка ошибок
- классификация данных
- прицип наименьших привелегий
- криптография

== Безопасность интернет-приложений №2
https://youtu.be/0zIgTtXkMWk
иньекции
- XSS
- XSF
- XM... XXE
- HTTP headers
- SQL
- NoSQL
- OS Command
....

XSS
- Stored
- reflected
- DOM-based

Cross-Site Request Forgery
- выполнение запросов к приложению от имени и без ведома пользователя (невозможность отличить источник запроса)

== Безопасность интернет-приложений #3
https://youtu.be/8I9fDF-r0E0

Аутентификация
- no pass
- ID + pass
- webAuthn (устроство подтверждения)
- email, sms
- totp (time based one time password)
- hotp (HMAC-based one time password)
- клиентский сертификат

авторизация (права)
- для каждого вызова (function level)
- для каждого обьекта (object level) -insecure direct object reference (IDOR)

Server Side Request Forgery (SSRF)
заставить сервер сервиса сделать запрос на произвольный урл

XXE - xml extra entities

конфигурация
- читать документацию
- логи
- лимиты
- обновление версий

== Безопасность интернет-приложений #4 / Криптографические средства
https://youtu.be/B8ID_t7q4Uc

https://www.crypto101.io/ -

- блочные / поточные
- симметричные / асимметричные
- хэш функции

https://github.com/owasp/owasp-masvs
https://github.com/0xmachos/iOS-Security-Guides

Ios / android
- каждое приложение изолировано
- есть приватное хранилище
- есть секреты
- ОС обеспечивает изоляцию при выполнении

== Безопасность интернет-приложений #5 / Моделирование угроз. SDLC
https://youtu.be/Rq_eAWbCqUc
Crypto101.pdf
14.9 MB
Crypto 101
https://www.crypto101.io/

- XOR
- Block ciphers
- Stream ciphers
- Key exchange
- public-key encryption
- hash functions
- message authentication codes
- signature algorithms
- key derivation functions
- random number generators
- ssl & tls
- openPGP & GPG
- Off the record messaging (OTR)
- Modular arothmetic
- elliptic curves
- side-channel attacks
== Базы данных. Лаборатория Tarantool. Современные алгоритмы для двухуровневой памяти
https://youtu.be/0A4_SdNEH8c
- диск-память-кэш-процессор
- стоимостная модель
- проблема memory-layout матрицы
- транспонирование матриц
- log-structured-merge дерево
- bloom фильтр
- двойная буфиризация (пишем в один, сбрасываем на диск второй, чередуем)
LSM БД юзаются для частого обновлеющихся данных
- Fractional Cascading - способ уменьшить затраты для упорядоченных структур
- bit-cask. Append only file (AOF) - нет спаек при записи как у LSM. Надо переписывать индекс каждый раз в конец вместе с изменениями
- page-index сохраняет мин-макс в ячейке, что бы сократить время поиска
== Базы данных. Лаборатория Tarantool. Кэширование
https://youtu.be/jhAOFFUVSjk

Least Recently Used - вытеснение давноиспользуемых (одновязанный список, например)
- былали изменена страница?
- завершена ли транзакция, кот модифицировала страницу ?
- физический порядок страниц на диске
- вытеснение осуществляется превентивно в другом потоке

для Index Scan лучше MRU

Midpoint insertion strategy
- LRU разбивается на тёплую и горячую зоны
- Граница между зонами плавающая
- index scan более не «вымывает» кэш

Идея
Балансировать между малыми и большими издержками до тех пор пока сумма малых издержек не превысит большие

LFD - longest forward distance (~clairvoyant algorithm, ~Belady's algorithm)
выталкиваем страницу которая будет запрошена позже всего в будущем

Для любого другого алгоритма А, cost(A) не ухудшается если мы, в случаях когда A отличается от LFD, выталкиваем страницу в
соответствии с LFD, а не с A

для онлайн алгоритмов худший случай это загрузить все страницы

алгоритм консервативен если нет чтения когда работаем с элементами которые в памяти. так же увеличение кэша линейно увеличивает производительность (в лучшем случае линейно)

Рандомизированный алгоритм: MARK
- Помечает страницу при использовании (они не выталкиваются)
- Когда все страницы помечены, и нужна страница, все пометки снимаются (кроме пометки на новой странице)
- Для выталкивания выбирается случайная страница из непомеченных
====> const(MARK) = lg(k) * cost(LFD)

LRU таким образом в целом не хуже чем MARK (на случайных данных)
== Caching and Cache-Efficient Algorithms
https://youtu.be/xDKnMXtZKq8
Fully Associative Cache
Direct-Mapped Cache
Set-Associative Cache

Taxonomy of Cache Misses
- cold miss
- capacity miss
- conflict miss
- sharing miss
Conflict Misses for Submatrices

Ideal-Cache Model
How Reasonable Are Ideal Caches?
Cache-Miss Lemma
Tall Caches
What's Wrong with Short Caches?
Submatrix Caching Lemma
Multiply Square Matrices
Analysis of Cache Misses
Swapping Inner Loop Order
Tiled Matrix Multiplication
Two-Level Cache
тот момент когда лекции MIT оч хорошо рассказывают то где ты уже сьел целый выводок собак, но блять где вы были раньше ? )))

но насколько же круто они преподают... захотелось быть студентом у них на курсе

== Bit Hacks
https://youtu.be/ZusiKXcz_ac

0b10010110
signed int -106 = 2 + 4 + 16 - 128
unsigned int 150 = 2 + 4 + 16 + 128
0b11111111 => -1

x + ~x = -1
-x = ~x + 1

A    = 0b10110011
B = 0b01101001
A&B = 0b00100001
A^B = 0b11011010
A|B = 0b11111011
A >> 3 = 0b00010110
A << 2 = 0b11001100

- set
- clear
- flip
- extract
- set x to y
- swap without temp var
(x ^ y) ^ y
- min x and y
m = y ^ ((x ^ y) & -(x < y))
NO BRANCHES -> no performance leaks!
- branchless merging sorted arrays
- power of 2
- kog base 2 of power of 2
ну просто шикарные преподы в MIT. даже то что знаешь хорошо просто приятно послушать

== Assembly Language & Computer Architecture
https://youtu.be/L1ung0wil9Y

data movement
- mov, cmov
- sigh or zero extension: movs, movz
- stack: push, pop
arithmetic and logic
- int logic: add, sub, mul, imul, div, idiv, lea, sal, sar, shl, shr, rol, ror, dec, neg
- bin logic: and, or, xor, not
- bool logic: test, cmp
Control transfer
- unconditional jump: jmp
- conditional jumps: j<condition>
- subroutines: call, ret

for fetching something from memory - x*100 тактов

compiler generates NOP lines for optimize instruction memory (code, size, alignment....)

SSE and AVX supports x64 fpu
sufixies: ss, sd, ps, pd

pipelininig improves processor throughput !
but
- structural hazard (one instruction for one tact)
- data hazard (depends from result):
- i writes a location that j reads
- j reads location that j writes
- i and j write to the same location
- control hazard (fetching/loading/storing etc operators)
👍1
🆖 Nginx common useful configuration - вдруг кто-то найдёт для себя что-то полезное для работы с Nginx. Там ещё и ссылок приличное количество имеется, по ним тоже имеет смысл пройти.

#nginx #будничное
🆖 Comparing NGINX Performance in Bare Metal and Virtual Environments - сравнение производительности Nginx на голом железе и в виртуальном окружении.

#nginx #kubernetes #baremetal
у меня очередной небольшой виток в схемотехнику )

== Намотка импульсного трансформатора
https://youtu.be/gIacydXiF0o
нюансы импульсных блоков питания. особенности намотки трансформаторов для импульсников. разбор резонансов и параметров

== A power supply with voltage regulation
https://youtu.be/Wq0JFW2KhUo

== STM32 - программирование для начинающих. Пошагово. CubeMX CubeIDE
https://youtu.be/fxAsY0S2Xa0
если чтото идет не так с маунтом то
sudo mount -a
оч помог в дебаге того что намутил в fstab
Сбор и хранение данных

SQL
- «SQL Problems and solutionsS», I. Moiseenko Интерактивный учебник по SQL
- ByteScout SQL Trainer Быстрый и приятный тренажер, усложняющийся по мере вашего продвижения.
- Simple SQL Queries Упражнения для Постгреса
- SQL Tutorial for Beginners: Database, JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIKE, IN, BETWEEN
- Тренажер по SQL
- Как посчитать всё на свете одним SQL-запросом. Оконные функции PostgreSQL https://habr.com/ru/post/268983/
- Простенький тренажер с теорией https://sqlzoo.net/wiki/SQL_Tutorial
- Мануал по установке PostgreSQL в MacOS https://www.robinwieruch.de/postgres-sql-macos-setup
- Пример обращения к MySQL с помощью Python, используя библиотеку sqlalchemy https://pythondata.com/quick-tip-sqlalchemy-for-mysql-and-pandas/
- Пример обращения к PostgreSQL с помощью Python: https://khashtamov.com/ru/postgresql-python-psycopg2/
- window function - https://learnsql.com/course/window-functions
- window function - https://campus.datacamp.com/courses/intermediate-t-sql/window-functions?ex=4
- Хорошая статья об оконных функций SQL - https://khashtamov.com/ru/window-functions-sql/

Парсинг
- Русский перевод документации к BeautifulSoup Beautiful Soup — это библиотека Python для извлечения данных из файлов HTML и XML. Она работает с вашим любимым парсером, чтобы дать вам естественные способы навигации, поиска и изменения дерева разбора. Она обычно экономит программистам часы и дни работы.
- Статья с примером парсинга данных с веб-сайтов с применением BeautifulSoup Освещены все основные этапы: формирование запроса и получение странички с помощью requests, поиск нужного элемента в HTML через инспектор, выделение данных из элемента через методы BeautifulSoup.

API
Работа с первичной аналитикой: выгружаем сырые данные из Метрики с помощью скрипта
То чувство, когда Telegram начинает тестировать рекламные сообщения... но не на твоем канале. Потому что и Дурову ты не нужен.
забавный редактор для 3D
https://www.tinkercad.com
забавно что построено это немного по другому принципу, нежели в солидворкс. очень напомнило флэш в логике создания обьектов
сложных инженерных штук мне кажется сделать будет нереально но для 3д принтера накидать побыстрому чтото простое очень даже в тему. онлайн это плюс