Евгений Козлов пишет про IT

Description
Руководитель платформенной команды в Т-Банке.

📌 Golang, Python, Ruby
📌 Backend, Databases, System Design
📌 Linux, DevOps, SRE
📌 Computer Science
📌 Личный опыт, Карьерные истории

Для связи: @ea_kozlov
Advertising
We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago

3 weeks ago
1 month, 1 week ago

Учел ваши пожелания и собрал все посты по теме многозадачности и производительности в один пост. Приятного чтения, дальше больше, это еще далеко не конец😊

🔹Многозадачность на уровне железа и OS / Kernel Space
1. Многозадачность в OS. Введение.
2. Процессор и его роль в многозадачности
2.1. Про Hyper Threading
3. Процессы. Начало
4. Процессы в Linux
5. Потоки. Начало
6. Потоки в Linux
7. Модели ввода-вывода. Универсальная(блокирующая) модель ввода-вывода
8. Multiplexed IO
9. Asynchronous IO

*🔹Легковесные потоки в User Space / Многозадачность в языках программирования*10. Fibers. Виды многозадачности с примерами в языках программирования.
11. Сравнительный обзор двух видов многозадачности

*🔹Модели памяти*
12. Что такое модель памяти? Sequential Consistency.

1 month, 1 week ago

Вижу что вам комфортнее всего взаимодействовать с текстом. А подскажите в таком случае, что сейчас стильно / модно / молодежно для бложика использовать? Я последнее что использовал это Jekyll, но наверняка прогресс уже ушел сильно дальше. Поделитесь в комментариях, думаю доберусь и создам свой webpage😊

3 months, 2 weeks ago

Перед тем как переходить с уровня ОС на уровень приложения (рантайм, виртуальные машины ЯП) отдельным постом расскажу зачем я посвятил такое количество постов внутренностям с которыми многие редко сталкиваются, а возможно и вообще впервые увидели.

Дело в том что производительность это довольно сложно и складывается она из большого количества факторов. И для того чтобы грамотно бенчмаркать и профилировать очень полезно знать из чего же сложилась итоговая цифра.

К тому же, я посчитал важным показать внутренности на уровне ОС для того чтобы мы перейдя на уровень ЯП могли посмотреть во что именно превращаются красивые инструкции на языке Go / Python / Java или например Elixir / Rust. А учитывая то что мы рассмотрели на примере Linux - всё есть процессы. Нет никакой секретной магии в языках программирования делающей что-то быстрее или лучше. Всё везде одинаково так как языки для взаимодействия с ОС используют одни и теже примитивы - системные вызовы ?

В следующих постах мы как раз поднимемся на уровень выше и посмотрим какие есть примитивы в языках программирования для достижения высокой производительности и есть ли ограничения.

Всем спасибо что читали, до встречи в новых постах!

3 months, 2 weeks ago

CPU, Memory Models, Concurrency, Multiprocess, Multithreading и Async. Часть 5. Потоки. Начало. Продолжаем разговор о конкурентности. Сегодня разбираемся с потоками. Начнем с основ и базовых определений. Пото́к выполне́ния (тред; от англ. thread — нить)…

3 months, 2 weeks ago

CPU, Memory Models, Concurrency, Multiprocess, Multithreading и Async. Часть 3. Процессы. Начало Сегодня поговорим о процессах операционной системы в контексте многозадачности. Процесс - это экземпляр компьютерной программы. Если компьютерная программа представляет…

6 months, 2 weeks ago

Raft - Understandable Distributed Consensus

Последнее время я всё больше и больше погружаюсь в те самые Distributed Systems, которые уже несколько лет на хайпе, о которых говорят на каждом system design интервью и конференции.

Одной из важнейших частей дисциплины является достижение консенсуса - согласованности данных среди участников распределенной системы.

Консенсус достигается с помощью софта реализующего конкретный протокол.

В качестве примеров такого софта можно привести:

Kafka + kraft
ClickHouse + CHKeeper (raft)
Kubernetes + etcd (raft protocol)
Cassandra + Paxos protocol

  • Отдельно стоит выделить Apache Zookeeper (протокол zab)

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

Как видите примеров много и используются они в довольно популярных технологиях.

Отличный материал для погружения в эту довольно обьёмную тему это Raft - Understandable Distributed Consensus - интерактивный гайд с анимациями, который шаг за шагом посвятит вас в основные этапы работы алгоритма на примерах.

https://thesecretlivesofdata.com/raft/

P.S. Расскажите о своем опыте работы с алгоритмами консенсуса? Неважно по работе или в пет проджектах?

7 months ago

Ребята, это была жесть. В этом году меня в ШАДе не будет?

Слишком сложно для меня, если с программированием я что то смог наковырять то математические задачки мне не поддались. Нужно больше готовиться. Наскоком не получилось.

7 months ago

Что происходит при старте терминала?
В процессе работы над плейбуком из прошлого поста мне волей и не волей пришлось погрузиться глубже в то как именно происходит установка утилит, какие файлы редактируются и какие переменные окружения проставляются.

Да, я знал со времен работы на Windows что есть магическая переменная PATH которая отвечает за поиск по набору директорий любой вводимой команды.
Да, я знал что например в домашней директории на Linux есть файлы занимающиеся настройкой переменных окружения.

Но вот в процессе создания плейбука я заметил что в некоторых случаях эти файлы остаются нетронутыми, но при этом всё работает, магия не правда ли?

Поэтому сегодня я поделюсь с вами заметкой в которой описаны все файлы участвующие при старте терминала помимо тех что лежат в домашней директории (bashrc, bash_profile)?

https://www.thegeekstuff.com/2008/10/execution-sequence-for-bash_profile-bashrc-bash_login-profile-and-bash_logout/

Советую посмотреть, особенно если при установке утилит ловите себя на мысли что не понимаете зачем просят что либо редактировать (в 99% это именно файлы из статьи)?

Ну и заодно можете пройтись по своей локальной машине и узнать сколько всего интересного делает ОС перед тем как показать заветный терминал.

P.S. Про переменную PATH https://www.ibm.com/docs/fi/aix/7.1?topic=accounts-path-environment-variable

We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago