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

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

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

РКН https://clck.ru/3KoAbH
Download Telegram
Создание игрушечного языка программирования на Python

Я подумал, что было бы забавно выйти за пределы своей зоны комфорта в области веб-разработки и написать о чем-то совершенно другом и новом, о чем я никогда раньше не писал. Поэтому сегодня я покажу вам, как реализовать язык программирования!

https://blog.miguelgrinberg.com/post/building-a-toy-programming-language-in-python


#python@bookflow

👉 @Bookflow
👍4
React-query

Хуки для получения, кэширования и обновления асинхронных данных в React

• Transport/Protocol/Backend независимая выборка данных (REST, GraphQL, promises, что угодно!)
• Автоматическое кэширование + выборка (stale-while-revalidate, Window Refocus, Polling/Realtime)
• Параллельные + зависимые запросы
• Мутации + Reactive выборка запросов
• Многослойный кэш + автоматический сборщик «мусора» (garbage collector)
• Load-More + Infinite Scroll Queries w/ Scroll Recovery
• Отмена запросов и многое друго

https://github.com/TanStack/query


#react@bookflow

👉 @Bookflow
👍2
50 веб сайтов по изучению C/C++

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

https://www.mycplus.com/featured-articles/50-c-cpp-source-code-websites/


#cpp@bookflow

👉 @Bookflow
🔥7👍1
Наглядное объяснение джоинов SQL


#db@bookflow

👉 @Bookflow
👍7👎2
Super Mario World Widescreen

Широкоэкранный проект Super Mario World (SNES)

Super Mario World Widescreen - это ваша любимая игра Mario World для SNES, но в соотношении сторон экрана 16:10, 16:9 или 18:9/2:1. Это возможно благодаря увеличению горизонтального разрешения на 96/128 пикселей, что увеличивает разрешение с 256x224 до 352x224 или 384x224.

Поскольку оригинальная SNES не имеет такого разрешения, необходимо использовать эмулятор, ориентированный на высокое разрешение - мод bsnes-hd.

https://github.com/VitorVilela7/wide-snes


#github@bookflow

👉 @Bookflow
👍5
Пишем систему логической репликации Postgres на Golang

Мы создаем Dolt, первую в мире базу данных SQL с контролем версий. Dolt совместим с MySQL, но многие из наших потенциальных клиентов хотели бы иметь версию, совместимую с Postgres, поэтому мы усердно работаем над созданием DoltgreSQL.

https://www.dolthub.com/blog/2024-03-08-postgres-logical-replication/


#golang@bookflow

👉 @Bookflow
👍1
Какой код сигнала будет выполнен при исполнении команды kill <PID>?

Сигнал SIGTERM (код 15) — это сигнал по-умолчанию отправляемый при вызове команды kill. Это указывает процессу на завершение работы и обычно считается сигналом для использования при чистом завершении работы.


#devops@bookflow

👉 @Bookflow
👍3👎1
Это слишком опасно для C++

Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.

Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.

Поэтому я написал свой тип ошибок, использовал его как вариант ошибок fallible-функций, и продолжил двигаться дальше.

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


#rust@bookflow

👉 @Bookflow
👍4
Советы по HTML 💡

Знаете ли вы, зачем мы пишем <meta charset=«utf-8»> в HTML-документе?


#frontend@bookflow

👉 @Bookflow
👍1
Разбиваем видео на n кол-во изображений

Для разбиения видео на n изображений вам понадобится использовать библиотеку OpenCV в Python.

В этом примере функция video_to_images принимает путь к видео (`video_path`) и количество желаемых изображений (`frames_count`). Она открывает видеофайл, читает каждый кадр и сохраняет каждый "шаг" кадров как отдельное изображение. Затем функция прекращает обработку, когда необходимое количество изображений сохранено.

Обратите внимание, что код использует целочисленное деление // и целочисленное преобразование int() для обеспечения, чтобы каждое изображение было сохранено через примерно одинаковое количество кадров, чтобы равномерно распределить их по времени видео.


#python@bookflow

👉 @Bookflow
👍51
Понимаем полностью useMemo и useCallback

Экскурсия по двум самым известным хукам в React
Если вы изо всех сил пытались разобраться в useMemo и useCallback, вы не одиноки! Я разговаривал со многими разработчиками React, которые cломали голову над этими двумя хуками.

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

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


#react@bookflow

👉 @Bookflow
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
𝐓𝐨𝐩 𝐌𝐢𝐜𝐫𝐨𝐬𝐞𝐫𝐯𝐢𝐜𝐞𝐬 𝐃𝐞𝐬𝐢𝐠𝐧 𝐏𝐚𝐭𝐭𝐞𝐫𝐧𝐬

#Microservices@bookflow

👉 @Bookflow
👍7🔥2😐1
Я сделал C++ версию функции Python print()

Мне нравится функция Python print(obj...), поскольку она может выводить переменные любого типа: числа, строки, массивы и объекты, а также полезна для отладки.
В последнее время я занимаюсь соревновательным программированием, но эта функция помогает мне отлаживать и там.

https://dev.to/philip82148/i-made-a-c-version-of-consolelog-o88


#cpp@bookflow

👉 @Bookflow
👍5
Типы баз данных


#db@bookflow

👉 @Bookflow
👍4
Mplcyberpunk

Пакет на языке Python поверх matplotlib для создания графиков в стиле "киберпанк" с помощью 3 дополнительных строк кода.

https://github.com/dhaitz/mplcyberpunk


#github@bookflow

👉 @Bookflow
👍7
FormStream

FormStream - это потоковый парсер Golang для многокомпонентных данных, используемый в основном при отправке веб-форм и загрузке файлов.

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

https://github.com/mazrean/formstream


#golang@bookflow

👉 @Bookflow
👍2
Что такое LA? В каких единицах измеряется?

LA (load average) — параметр, определяющий среднюю нагрузку на систему за период времени (1 мин, 5 минут, 15 минут). Изменяется в количестве задач на одно ядро процессора. На нагрузку системы также влияет количество задач ввода-вывода и задержка сети. Также влияние на расчета LA оказывает: 1. Технология Hyper-Threading, которая делит одно физическое ядро на 2 логических, 2. Технология Turbo Bust, которая позволяет разгонять тактовую частоту процессора и работать на частоте выше заявленной, т.е. выше номинальной частоты (время на обработку одной задачи уменьшается).


#devops@bookflow

👉 @Bookflow
👍2
Как IndVarSimplification применяет математику в вашем коде

Хочу поделиться своей историей расследования одной довольно необычной компиляторной оптимизации. Необычна она в том плане, что для нее производятся довольно нетривиальные математические вычисления. Приступим!

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


#rust@bookflow

👉 @Bookflow
👍3