Программирование {BookFlow}
15.6K subscribers
1.68K photos
513 videos
145 files
2.24K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

РКН https://clck.ru/3KoAbH
Download Telegram
АВК-6: Персональный Аналоговый Компьютер

Итак, перед нами персональный аналоговый компьютер АВК-6.

Аналоговые вычислительные машины в 60-70-е годы были способны в реальном времени решать системы дифференциальных уравнений до 60 порядка и выше, обеспечивая эквивалентное быстродействие в сотни миллионов операций в секунду, в то время пока цифровые ЭВМ только набирали обороты. Советская и зарубежная промышленность активно выпускала большие и малые аналоговые компьютеры и АВК-6 в этой истории — вершина развития настольных аналоговых компьютеров, удостоенная множества наград в СССР и за рубежом.

Я с детства мечтал заполучить АВК-6 и вот наконец могу провести на нем различные эксперименты, попытаться построить аттракторы, а главное — подтвердить миф о том может ли аналоговый компьютер использоваться как синтезатор.

https://habr.com/ru/companies/timeweb/articles/1052834/

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1🎉1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Чем отличаются друг от друга блокировки баз данных?

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

Основные типы блокировок:

🔴Shared Lock: позволяет нескольким транзакциям одновременно читать ресурс, но не модифицировать его
🔴Exclusive Lock: позволяет транзакции как читать, так и модифицировать ресурс
🔴 Update Lock: используется для предотвращения взаимоблокировки, когда транзакция намеревается обновить ресурс
🔴 Schema Lock: используется для защиты структуры объектов базы данных
🔴 Bulk Update Lock: используется во время массовых вставок
🔴 Key-Range Lock: используется в индексированных данных для предотвращения фантомных чтений
🔴 Row-Level Lock: блокирует конкретную строку в таблице
🔴 Page-Level Lock: блокирует конкретную страницу (фиксированный блок данных) в базе данных
🔴 Table-Level Lock: блокирует всю таблицу

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👀2🏆1
Что такое SSO — единый вход?

SSO, или Single Sign-On, — это схема аутентификации, которая позволяет пользователю входить в разные системы с помощью одной учётной записи.

На схеме ниже показано, как работает SSO.

Шаг 1. Пользователь открывает Gmail или другой почтовый сервис. Gmail обнаруживает, что пользователь не авторизован, и перенаправляет его на сервер аутентификации SSO. Сервер также определяет, что пользователь ещё не вошёл в систему, поэтому перенаправляет его на страницу входа SSO, где пользователь вводит свои учётные данные.

Шаги 2–3. Сервер аутентификации SSO проверяет учётные данные, создаёт глобальную пользовательскую сессию и формирует токен.

Шаги 4–7. Gmail отправляет токен на сервер аутентификации SSO для проверки. Сервер регистрирует систему Gmail и возвращает ответ «токен действителен». После этого Gmail предоставляет пользователю доступ к защищённому ресурсу.

Шаг 8. Из Gmail пользователь переходит на другой сайт Google, например YouTube.

Шаги 9–10. YouTube обнаруживает, что пользователь не авторизован, и запрашивает аутентификацию. Сервер SSO определяет, что пользователь уже вошёл в систему, и возвращает токен.

Шаги 11–14. YouTube отправляет токен на сервер аутентификации SSO для проверки. Сервер регистрирует систему YouTube и возвращает ответ «токен действителен». После этого YouTube предоставляет пользователю доступ к защищённому ресурсу.

Процесс завершён: пользователь получает доступ к своему аккаунту без повторного ввода логина и пароля.

Теперь ваша очередь:

Вопрос 1. Реализовывали ли вы SSO в своих проектах? Какая часть оказалась самой сложной?

Вопрос 2. Какой способ входа вам нравится больше всего и почему?

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
Чтобы разобраться с правами доступа к файлам в Linux, нам нужно понять, что такое Ownership и Permission.

Ownership

Каждому файлу или каталогу присваивается три типа прав собственности:

🔹Owner: Владелец - это пользователь, создавший файл или каталог.
🔹Group (группа): В группе может быть несколько пользователей. Все пользователи в группе имеют одинаковые разрешения на доступ к файлу или каталогу.
🔹Other: Другие - это пользователи, которые не являются владельцами или членами группы.

Permission

Существует только три типа разрешений для файла или каталога:

🔹Read (r): Разрешение на чтение позволяет пользователю читать файл.
🔹Write (w): Разрешение на запись позволяет пользователю изменять содержимое файла.
🔹Execute (x): Разрешение execute позволяет выполнять файл.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3
Redox - это операционная система, написанная полностью на Rust. Проект вдохновлён принципами Unix, но стремится к более безопасной и современной архитектуре. В Redox используются микроядерный подход, драйверы и сервисы запускаются в пространстве пользователя, что уменьшает поверхность атак и повышает стабильность.

Кроме ядра, экосистема включает файловую систему TFS, собственный дисплейный сервер Orbital и набор утилит. Разработчики делают упор на безопасные абстракции Rust и минимизацию использования небезопасного кода.

https://gitlab.redox-os.org/redox-os/redox

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2🥱2❤1🤷‍♂1🥰1🤣1🤗1🤪1
Шпаргалка по синтаксису CRON


Формат записи:


* * * * * команда
│ │ │ │ │
│ │ │ │ └─ День недели (0–6, где 0 = воскресенье)
│ │ │ └─── Месяц (1–12)
│ │ └───── День месяца (1–31)
│ └─────── Час (0–23)
└───────── Минуты (0–59)


Специальные символы:

* — любое значение (например, каждая минута, каждый день).
, — перечисление (например, 1,15 = 1-е и 15-е число).
- — диапазон (например, 1-5 = с понедельника по пятницу).
/ — шаг (например, */10 = каждые 10 минут).
? — «неважно» (обычно в день месяца или день недели).

Примеры:

0 * * * * → запуск каждый час.
*/30 * * * * → каждые 30 минут.
0 0 * * * → в полночь каждый день.
0 8 * * 1 → каждый понедельник в 8:00.
0 18 15 * * → 15-го числа каждого месяца в 18:00.

Специальные строки:

@reboot → запуск при старте системы.
@hourly → каждый час.
@midnight → каждый день в полночь.
@monthly → каждый месяц в полночь 1-го числа.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
🇷🇺 Разбираешься в радиочипах, оптике и связи?
Забери до 1 000 000 рублей за свои инженерные навыки на турнире «Дронкон» 🇷🇺

«Сталинские Соколы» открывают регистрацию на 4-й Всероссийский турнир «Дронкон», который пройдет с 22 по 26 августа.

Турнир пройдет по направлению:
- Инженерное дело: навыки программирования, сборка электронного оборудования, беспроводная связь, оптические системы + стратегия «Битва Дронов»;

Призовой фонд для победителей:
🥇место – 1 000 000 рублей
🥈место – 700 000 рублей
🥉место – 500 000 рублей
Награда за 4-8 места - 100 000 рублей

Пройди заочный онлайн-этап и получи путевку на очный этап турнира в Республику Татарстан!
Перелет, питание, проживание - за счет организаторов.

🇷🇺 Подать заявку и узнать подробности 🇷🇺
💩5👎4🤡3👍2😁1🆒1
‍Quake 1/2/3 (1996-1999)

Разработчик: id Software
Издатель: GT Interactive / Activision
Платформа: DOS / Windows / others
Code review: fabiensanglard.net (Quake 1)
Code review: fabiensanglard.net (Quake 3)

Тут писать особо нечего, вы и сами всё знаете. Знатная веха в создании полностью трёхмерных движков, без всяких хаков вроде 2.5D

Упомяну несколько интересных подробностей. Возможно, это первая коммерческая игра, скомпилированная компилятором с открытым исходным кодом (DJGPP for DOS, ранний порт gcc).

В игре был свой скриптовой язык “Quake C” (позже lcc у Quake 3). Он был встроен специально для того, чтобы игроки могли делать модификации. Это, вкупе с системой ресурсов PWAD, породило огромное сообщество моддеров.

В Quake 1 был инновационный механизм кэширования результатов шейдинга. Но после распространения 3D-ускорителей это потеряло смысл. Следующая игра от id, Rage, использовала эту же идею.

Кроме того, Quake был очень надёжным движком. Никаких глюков растра или обсчёта столкновений.

Quake / Исходники: github.com/id-Software/Quake
Quake 2 / Исходники: github.com/id-Software/Quake-2
Quake 3 / Исходники: github.com/id-Software/Quake-III-Arena

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🆒2
Leptos

Это современный фреймворк для разработки веб-приложений на Rust с реактивным подходом. Он позволяет писать как фронтенд, так и бэкенд, используя единый стек, с акцентом на производительность и безопасность.

Особенности:

⚡ Высокая скорость работы благодаря компиляции в WebAssembly и оптимизациям Rust.
🔄 Реактивность: обновления интерфейса происходят автоматически при изменении состояния.
🛠 Полный стек: можно писать и серверный, и клиентский код на Rust.
🌐 SSR (Server-Side Rendering) и гидратация для SEO и быстрого первого рендера.
🧩 Богатая экосистема и возможность использовать привычные паттерны вроде компонентов.

Фреймворк позиционируется как альтернатива React/Vue/Svelte, но с силой и безопасностью Rust.

https://github.com/leptos-rs/leptos

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
📌Лучшие практики для CI/CD-пайплайнов

Правильная настройка CI/CD (Continuous Integration/Continuous Deployment) позволяет ускорить доставку кода, минимизировать ошибки и повысить безопасность. Вот ключевые best practices для CI/CD:

1. Используйте систему контроля версий для всего
- Храните в Git (или другом VCS) не только код, но и конфигурации, скрипты для CI/CD и инфраструктуру как код (IaC).
- Следуйте стратегии ветвления: Git Flow, GitHub Flow, trunk-based development.
- Включите код-ревью и защиту веток перед слиянием (Pull Requests, Merge Requests).

2. Автоматизируйте сборку, тестирование и развертывание
- Используйте Jenkins, GitHub Actions, GitLab CI/CD, CircleCI для автоматизации.
- Включите в пайплайн юнит-, интеграционные, функциональные и безопасностные тесты.
- Настройте автоматическое развертывание, чтобы исключить человеческий фактор.

3. Shift Left: Тестируйте на ранних этапах
- Запускайте статический анализ кода (SAST) сразу после коммита (SonarQube, Checkmarx).
- Добавьте динамическое тестирование (DAST) и сканирование контейнеров.
- Используйте feature flags, чтобы включать/выключать фичи без релиза.

4. Применяйте инфраструктуру как код (IaC)
- Управляйте инфраструктурой с помощью Terraform, AWS CloudFormation, Pulumi.
- Храните IaC-файлы в Git и тестируйте их перед развертыванием.
- Применяйте принцип неизменяемости инфраструктуры (избегайте ручных изменений на проде).

5. Оптимизируйте производительность пайплайнов
- Кэшируйте зависимости (Docker-образы, npm, Maven) для ускорения сборки.
- Разбивайте тесты на параллельные потоки.
- Используйте инкрементальную сборку, чтобы пересобирать только измененные части проекта.

6. Обеспечьте безопасность пайплайна
- Храните секреты в защищенных хранилищах (AWS Secrets Manager, HashiCorp Vault, GitHub Secrets).
- Включите RBAC (разграничение прав доступа) в CI/CD-системе.
- Автоматически сканируйте зависимости, контейнеры и инфраструктуру на уязвимости.

7. Используйте Blue-Green и Canary-развертывания
- Blue-Green: два окружения (старое и новое), переключение трафика без даунтайма.
- Canary-релизы: выкатывайте обновления на небольшой процент пользователей перед полным релизом.
- Автоматически откатывайте неудачные развертывания.

8. Внедрите мониторинг и логирование
- Настройте централизованные логи через ELK Stack, Grafana Loki, AWS CloudWatch.
- Используйте мониторинг Prometheus, Datadog, New Relic.
- Настройте алерты и автоматическую реакцию на сбои.

9. Соблюдайте комплаенс и управление изменениями
- Внедряйте policy-as-code (например, Open Policy Agent (OPA), AWS Config).
- Логируйте все развертывания для аудита.
- Соблюдайте SOC2, HIPAA, GDPR при работе с чувствительными данными.

10. Контроль качества и постоянное улучшение
- Анализируйте метрики CI/CD и оптимизируйте узкие места.
- Получайте обратную связь от разработчиков для улучшения процесса.
- Проводите автоматизированные post-mortem разборы инцидентов.

Следуя этим best practices, вы получите быстрые, надежные и безопасные CI/CD-процессы с минимальными рисками и затратами. 🚀

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
📌 Шпаргалка по Linux

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Google разрешила восстанавливать доступ к аккаунту с помощью селфи-видео.

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

Для восстановления доступа потребуется записать короткое видео с лицом. Система проверит, что перед камерой действительно владелец аккаунта, после чего позволит войти.

♻️ Сделай репост, чтобы помочь другим.

📲 Мы в MAX

👉 @Bookflow
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🤔1😨1
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Rust📌
https://max.ru/channel_rust_lib

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных

Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
💩6🖕2🤮1