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

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

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

РКН https://clck.ru/3KoAbH
Download Telegram
Подборка Telegram каналов для программистов

Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux


https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика

https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

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

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT

Чат программистов📌
https://t.me/developers_ru

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

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

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

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"

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

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Excel лайфхак📌
https://t.me/Excel_lifehack
👍1
e-maxx_algo.pdf
5.9 MB
Вас приветствует книга, собранная по материалам сайта e-maxx.ru/algo

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

Представлено 145 алгоритмов. Ко всем алгоритмам даны краткие описания и программы на C++.

Алгебра
Графы
Геометрия
Строки
Структуры данных
Алгоритмы на последовательностях
Динамика
Линейная алгебра
Численные методы
Комбинаторика
Теория игр
Расписания
Разное

👉@Bookflow
👍8
Не знаете, как эффективно управлять конфигурацией и обеспечивать консенсус данных? Ваши проекты сталкиваются с проблемами масштабируемости и надежности?

Тогда присоединяйтесь к открытому вебинару 21 августа в 20:00 мск, где мы:
1. Рассмотрим основы и архитектуру Apache Zookeeper: алгоритмы обеспечения консенсуса данных (Zookeeper Atomic Broadcast с Paxos)
2. Узнаем, как Zookeeper обеспечивает координацию и синхронизацию в распределенных системах
3. Разберём методы настройки и администрирования Zookeeper

👨‍💻🛠👨🏻‍💻 Урок будет полезен разработчикам, DevOps-инженерам, администраторам систем и сетей, архитекторам ПО и всем, кто хочет глубже понять работу Apache Zookeeper.

🔴 Запишитесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czyuEv

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍1
Два потока, одно ядро: как устроена одновременная многопоточность

Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ресурсы между ними?

В статье я объясню, как устроена эта функция. Понимание внутреннего устройства SMT поможет вам решить, подходит ли она для ваших продакшен-серверов. Иногда SMT способна резко повысить производительность системы, но в некоторых случаях она приводит к замедлению. Знание подробностей позволит вам сделать правильный выбор.

https://habr.com/ru/companies/ruvds/articles/836978/

👉@Bookflow
👍53🥰1👀1
Как я заработал с помощью хомяка, ни разу на него не кликнув

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

Это история о том, как я, студент третьего курса ТюмГУ, впервые в качестве разработчика смог заработать с помощью собственного проекта. Часть текста будет посвящена теме проекта, часть — аспектам реализации, а в конце — немного о раскрутке и монетизации.

https://habr.com/ru/articles/837014/

👉@Bookflow
👎5👍4🤔1
Рейтинг лучших вузов России RAEX-100, 2024 год

https://raex-rr.com/education/russian_universities/top-100_universities/2024/

👉@Bookflow
👍5
Рейтинг IT-вузов России 2024 от Суперджоб

https://students.superjob.ru/reiting-vuzov/it/

👉@Bookflow
👍7
Сколько, реально, lossless треков в Яндекс Музыке

Я Беслан, IT-шник по любви, искренне увлеченный этим всем.

Люблю ковыряться в коде, писать код, прошивать всё что можно, поднимать инфру на линуксах, собирать роботов, datascience, нейронки, LLM-ки, и много ещё всего такого, вы поняли.

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

https://habr.com/ru/articles/837700/

👉@Bookflow
👍5🔥1
Как Linux запускает процесс

...и как использовать ptrace, чтобы отследить точку входа и повозиться со стеком.

В этой статье вы узнаете, что происходит внутри ядра Linux, когда процесс вызывает execve(), как ядро подготавливает стек и как управление передается процессу в пользовательском пространстве для выполнения.

https://iq.thc.org/how-does-linux-start-a-process

👉@Bookflow
👍7
GET, POST, PUT... Общие HTTP «глаголы» в одной схеме.

1. HTTP GET
Этот метод извлекает ресурс с сервера. Он идемпотентен: несколько идентичных запросов возвращают один и тот же результат.

2. HTTP PUT
Этот метод обновляет или создает ресурс. Он также идемпотентен: несколько идентичных запросов обновят один и тот же ресурс.

3. HTTP POST
Этот метод используется для создания новых ресурсов. Он не идемпотентен: два одинаковых POST-запроса создадут дублированные ресурсы.

4. HTTP DELETE
Этот метод используется для удаления ресурса. Он идемпотентен: несколько идентичных запросов удалят один и тот же ресурс.

5. HTTP PATCH
Метод PATCH применяется для частичного изменения ресурса.

6. HTTP HEAD
Метод HEAD запрашивает ответ, идентичный GET-запросу, но без тела ответа.

7. HTTP CONNECT
Метод CONNECT устанавливает туннель к серверу, идентифицированному целевым ресурсом.

8. HTTP OPTIONS
Этот метод описывает параметры связи для целевого ресурса.

9. HTTP TRACE
Этот метод выполняет тест возврата сообщения по пути к целевому ресурсу.

👉@Bookflow
👍10
Полезные сайты с таблицами системных вызовов ядра Linux для различных архитектур и версий ядра

https://syscalls.mebeim.net/?table=x86/64/x64/latest

https://arm64.syscall.sh/

#Linux #syscall

👉@Bookflow
👍4
Игрушечная телеметрия на Arduino

Все началось в какой-то из вечеров, когда после работы очень хотелось просто полежать на диване, но у ребенка были другие планы на папу. Мне было поручено управлять игрушечным светофором и включать машинкам красный и зеленый свет, причем светофор должен был располагаться как можно дальше от дивана. И тут родилась идея! А что, если сделать светофор на радиоуправлении?

https://habr.com/ru/articles/836334/

👉@Bookflow
👍10
Хотите уверенно проектировать гибкие, масштабируемые и надежные системы, используя современные архитектурные практики?

Присоединяйтесь к онлайн-курсу «Software Architect», где за 4 месяца под руководством практикующих экспертов вы разберёте:
✔️ актуальные тактики по работе с атрибутами качества архитектуры: доступность, отказоустойчивость, безопасность и многое другое;
✔️ основные паттерны и стили архитектуры, их плюсы, минусы и подводные камни;
✔️ технологические домены, включая бекенд, BigData, мобильную разработку, фронтенд и хранилища данных.

👨‍💻🛠👨🏻‍💻 Программа разработана для архитекторов, разработчиков и тимлидов.

Старт группы уже 30 августа. Доступна рассрочка и 🎁 10% скидка по промокоду otus10 до 31.08 включительно!

➡️ Пройдите тест прямо сейчас, чтобы чтобы активировать скидку и получить доступ ко всем открытым урокам курса: https://vk.cc/czYIF5

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎1
Чем опасен чистый RSA? Разбираем подводные камни

Алгоритм RSA является одним из первых представителей асимметричной криптографии, прошедший свой путь сквозь бурные дискуссии математиков, сквозь сотни успешных и безуспешных попыток взлома криптоаналитиками, сквозь тысячи неправильных применений и реализаций.

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

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

https://habr.com/ru/articles/838882/

👉@Bookflow
👍3
«Белое зеркало»: как AI улучшит жизнь в ближайшие 10 лет

2035 год кажется вам далеким будущим? А ведь он ближе, чем 2013-й…

В 2013-м было сложно представить, как AI-технологии изменят мир через десять лет. Но сейчас перспектива обрисовалась: к 2035-му искусственный интеллект проникнет везде, где сможет быть полезен. Как именно это произойдёт — лучше всех представляют люди, которые внедряют ИИ.

Для этой статьи мы попросили трёх наших экспертов провести нам экскурсию по нейросетевому будущему и по тому, как устроены процессы в ГПБ одиннадцать лет тому вперёд. Под катом: финтех, кодинг и наём сотрудников в 2035 году.

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

https://habr.com/ru/specials/831304/

👉 @bookflow
🤡9👍1🤔1
Советы по Spring 💡

Чтобы выполнять действия в транзакции базы данных, вы можете использовать шаблон Spring TransactionTemplate вместо @Transactional

👉 @bookflow
👍4
Нас часто просят разрабатывать системы с высокой доступностью, масштабируемостью и пропускной способностью. Что это именно означает?

Выше приведена шпаргалка по проектированию систем с распространенными решениями.

1. Высокая доступность
Это означает необходимость обеспечения высокого уровня времени работы. Обычно мы описываем целевой уровень дизайна как «3 девятки» или «4 девятки». «4 девятки» (99,99% времени работы) означает, что сервис может быть недоступен только 8,64 секунды в день.

Для достижения высокой доступности необходимо спроектировать систему с избыточностью. Существуют несколько способов сделать это:

- Горячий-горячий: два экземпляра получают один и тот же ввод и отправляют вывод в downstream-сервис. Если одна из сторон недоступна, другая сторона может сразу же взять на себя ее функции. Поскольку обе стороны отправляют вывод в downstream, downstream-система должна выполнять дедупликацию.

- Горячий-теплый: два экземпляра получают один и тот же ввод, но только горячая сторона отправляет вывод в downstream-сервис. Если горячая сторона недоступна, теплая сторона берет на себя функции и начинает отправлять вывод в downstream-сервис.

- Кластер с единственным лидером: один лидер получает данные от upstream-системы и реплицирует их на другие реплики.

- Кластер без лидера: в таком кластере нет лидера. Любая запись будет реплицироваться на другие экземпляры. Пока количество экземпляров для записи плюс количество экземпляров для чтения больше общего числа экземпляров, мы должны получать корректные данные.

2. Высокая пропускная способность
Это означает, что сервис должен обрабатывать большое количество запросов за определенный период времени. Обычно используются метрики QPS (запросов в секунду) или TPS (транзакций в секунду).

Для достижения высокой пропускной способности часто добавляются кэши в архитектуру, чтобы запросы могли возвращаться без обращения к медленным устройствам ввода-вывода, таким как базы данных или диски. Также можно увеличить количество потоков для вычислительно интенсивных задач. Однако добавление слишком большого количества потоков может ухудшить производительность. В таком случае необходимо определить узкие места в системе и увеличить ее пропускную способность. Использование асинхронной обработки может эффективно изолировать ресурсоемкие компоненты.

3. Высокая масштабируемость
Это означает, что система может быстро и легко расширяться, чтобы справляться с большим объемом (горизонтальная масштабируемость) или добавлением новых функциональностей (вертикальная масштабируемость). Обычно мы отслеживаем время отклика, чтобы решить, нужно ли масштабировать систему.

👉 @bookflow
👍6
Настраиваем iptables с нуля

Защита сетевых соединений сейчас просто необходима буквально на каждом устройстве, подключенном к Интернет. Тем более, на сервере. Расскажем и покажем конфигурирование штатного сетевого экрана Linux через интерфейс Iptables.


IPTables: NAT и Port forwarding

Продолжаем разговор про основополагающий инструмент управления трафиком, IPTables. Углубимся в реализацию таких технологий, как NAT и port forwarding.

👉 @sys_adminos
👍7