Совет по Javascript 💡
Для лучшей отладки используйте именованные выражения стрелочных функций для критических/часто используемых callback'ов ✅
#frontend@bookflow
👉 @Bookflow
Для лучшей отладки используйте именованные выражения стрелочных функций для критических/часто используемых callback'ов ✅
#frontend@bookflow
👉 @Bookflow
👍4
Как создать Minecraft на Python? Обзор библиотеки Ursina Engine
Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.
Под катом делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.
https://habr.com/ru/companies/selectel/articles/704040/
#python@bookflow
👉 @Bookflow
Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.
Под катом делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.
https://habr.com/ru/companies/selectel/articles/704040/
#python@bookflow
👉 @Bookflow
👍3
Деструктуризация в React. Очевидно, но важно
Деструктуризация, которая появилась в стандарте ES6, уже не вызывает вопросов у многих из нас, есть большое количество статей, раскрывающих ее возможности. В основном, мы все тесно с ней дружим и пользуемся.
Казалось бы, что можно рассказать о том, о чем все и так знают? Но практика и чтение статей на Хабре, показали, что есть некоторые нюансы использования деструктуризации в React, о которых не все из нас знают или просто не задумываются, хотя они и являются очевидными.
Как часто Вам приходилось сталкиваться с подобным кодом?
https://habr.com/ru/articles/804187/
#react@bookflow
👉 @Bookflow
Деструктуризация, которая появилась в стандарте ES6, уже не вызывает вопросов у многих из нас, есть большое количество статей, раскрывающих ее возможности. В основном, мы все тесно с ней дружим и пользуемся.
Казалось бы, что можно рассказать о том, о чем все и так знают? Но практика и чтение статей на Хабре, показали, что есть некоторые нюансы использования деструктуризации в React, о которых не все из нас знают или просто не задумываются, хотя они и являются очевидными.
Как часто Вам приходилось сталкиваться с подобным кодом?
export default function ParentComponent ({ post }) {
const { images, title } = post
return (
<ChildComponent images={images} title={title} />
)
}https://habr.com/ru/articles/804187/
#react@bookflow
👉 @Bookflow
👍4
Input parser - библиотека для парсинга командной строки
https://github.com/gianluisdiana/InputParser
#cpp@bookflow
👉 @Bookflow
https://github.com/gianluisdiana/InputParser
#cpp@bookflow
👉 @Bookflow
👍4
Foreign key sql что это
Foreign key (внешний ключ) в SQL - это столбец или набор столбцов в таблице, который связывается с Primary key (основным ключом) или уникальным ключом в другой таблице. Он служит для установления связи между двумя таблицами и обеспечивает целостность данных, позволяя контролировать ссылочную целостность в базе данных.
Foreign key определяет отношение между двумя таблицами: родительской таблицей (содержащей основной ключ) и дочерней таблицей (содержащей внешний ключ). Связь между ними обеспечивает ссылочную целостность, что означает, что значения внешнего ключа должны существовать как значения в основном ключе в другой таблице.
При использовании внешнего ключа в SQL можно устанавливать правила для обновления и удаления данных в связанных таблицах. Например, можно настроить каскадное удаление, чтобы при удалении записи из родительской таблицы также удалялись связанные записи из дочерней таблицы.
Использование внешнего ключа в SQL повышает целостность данных, обеспечивает надежность связей между таблицами и упрощает работу с данными, позволяя избегать ошибок при внесении изменений в базу данных.
#db@bookflow
👉 @Bookflow
Foreign key (внешний ключ) в SQL - это столбец или набор столбцов в таблице, который связывается с Primary key (основным ключом) или уникальным ключом в другой таблице. Он служит для установления связи между двумя таблицами и обеспечивает целостность данных, позволяя контролировать ссылочную целостность в базе данных.
Foreign key определяет отношение между двумя таблицами: родительской таблицей (содержащей основной ключ) и дочерней таблицей (содержащей внешний ключ). Связь между ними обеспечивает ссылочную целостность, что означает, что значения внешнего ключа должны существовать как значения в основном ключе в другой таблице.
При использовании внешнего ключа в SQL можно устанавливать правила для обновления и удаления данных в связанных таблицах. Например, можно настроить каскадное удаление, чтобы при удалении записи из родительской таблицы также удалялись связанные записи из дочерней таблицы.
Использование внешнего ключа в SQL повышает целостность данных, обеспечивает надежность связей между таблицами и упрощает работу с данными, позволяя избегать ошибок при внесении изменений в базу данных.
#db@bookflow
👉 @Bookflow
👍6
Boxxy
Упаковывает неправильно работающих приложений GNU/Linux
https://github.com/queer/boxxy
#github@bookflow
👉 @Bookflow
Упаковывает неправильно работающих приложений GNU/Linux
https://github.com/queer/boxxy
#github@bookflow
👉 @Bookflow
👍3
Паттерны гонки данных в Go
Uber использует язык Golang (сокращенно Go) в качестве основного языка программирования для разработки микросервисов. Наш монорежим Go состоит примерно из 50 миллионов строк кода (и продолжает расти) и содержит около 2 100 уникальных сервисов Go (и продолжает расти).
https://www.uber.com/blog/data-race-patterns-in-go/
#golang@bookflow
👉 @Bookflow
Uber использует язык Golang (сокращенно Go) в качестве основного языка программирования для разработки микросервисов. Наш монорежим Go состоит примерно из 50 миллионов строк кода (и продолжает расти) и содержит около 2 100 уникальных сервисов Go (и продолжает расти).
https://www.uber.com/blog/data-race-patterns-in-go/
#golang@bookflow
👉 @Bookflow
👍2
Использование Open ID Connect (OIDC) в Terraform для безопасного мультиаккаунтного CI/CD в AWS
В этом посте мы рассмотрим, как можно повысить уровень безопасности, используя Open ID Connect (OIDC) в качестве механизма аутентификации в CI/CD конвейерах для развертывания инфраструктуры на базе Terraform в Amazon Web Services (AWS).
https://hedrange.com/2023/10/07/adopt-open-id-connect-oidc-in-terraform-for-secure-multi-account-ci-cd-to-aws
#devops@bookflow
👉 @Bookflow
В этом посте мы рассмотрим, как можно повысить уровень безопасности, используя Open ID Connect (OIDC) в качестве механизма аутентификации в CI/CD конвейерах для развертывания инфраструктуры на базе Terraform в Amazon Web Services (AWS).
https://hedrange.com/2023/10/07/adopt-open-id-connect-oidc-in-terraform-for-secure-multi-account-ci-cd-to-aws
#devops@bookflow
👉 @Bookflow
🔥3👏1
Я написал одну из самых быстрых библиотек датафреймов
У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.
Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
https://habr.com/ru/companies/timeweb/articles/737808/
#rust@bookflow
👉 @Bookflow
У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.
Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
https://habr.com/ru/companies/timeweb/articles/737808/
#rust@bookflow
👉 @Bookflow
👍3
Создание игрушечного языка программирования на Python
Я подумал, что было бы забавно выйти за пределы своей зоны комфорта в области веб-разработки и написать о чем-то совершенно другом и новом, о чем я никогда раньше не писал. Поэтому сегодня я покажу вам, как реализовать язык программирования!
https://blog.miguelgrinberg.com/post/building-a-toy-programming-language-in-python
#python@bookflow
👉 @Bookflow
Я подумал, что было бы забавно выйти за пределы своей зоны комфорта в области веб-разработки и написать о чем-то совершенно другом и новом, о чем я никогда раньше не писал. Поэтому сегодня я покажу вам, как реализовать язык программирования!
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
Хуки для получения, кэширования и обновления асинхронных данных в 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
В этой статье я расскажу о 50 сайтах, которые, по моему мнению, должен знать и добавить в закладки каждый разработчик на Си или Си++. В этом списке представлены прямые ссылки на исходные коды программ вместе с их описанием.
https://www.mycplus.com/featured-articles/50-c-cpp-source-code-websites/
#cpp@bookflow
👉 @Bookflow
🔥7👍1
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
Широкоэкранный проект 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
Мы создаем 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
Сигнал 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
Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.
Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.
Поэтому я написал свой тип ошибок, использовал его как вариант ошибок fallible-функций, и продолжил двигаться дальше.
https://habr.com/ru/articles/793868/
#rust@bookflow
👉 @Bookflow
👍4
Советы по HTML 💡
Знаете ли вы, зачем мы пишем
#frontend@bookflow
👉 @Bookflow
Знаете ли вы, зачем мы пишем
<meta charset=«utf-8»> в HTML-документе?#frontend@bookflow
👉 @Bookflow
👍1
Разбиваем видео на n кол-во изображений
Для разбиения видео на n изображений вам понадобится использовать библиотеку OpenCV в Python.
В этом примере функция
Обратите внимание, что код использует целочисленное деление // и целочисленное преобразование
#python@bookflow
👉 @Bookflow
Для разбиения видео на n изображений вам понадобится использовать библиотеку OpenCV в Python.
В этом примере функция
video_to_images принимает путь к видео (`video_path`) и количество желаемых изображений (`frames_count`). Она открывает видеофайл, читает каждый кадр и сохраняет каждый "шаг" кадров как отдельное изображение. Затем функция прекращает обработку, когда необходимое количество изображений сохранено.Обратите внимание, что код использует целочисленное деление // и целочисленное преобразование
int() для обеспечения, чтобы каждое изображение было сохранено через примерно одинаковое количество кадров, чтобы равномерно распределить их по времени видео.#python@bookflow
👉 @Bookflow
👍5❤1
Понимаем полностью useMemo и useCallback
Экскурсия по двум самым известным хукам в React
Если вы изо всех сил пытались разобраться в useMemo и useCallback, вы не одиноки! Я разговаривал со многими разработчиками React, которые cломали голову над этими двумя хуками.
Моя цель в этом здесь — прояснить всю эту путаницу. Мы узнаем, что они делают, почему они полезны и как получить от них максимальную пользу.
https://habr.com/ru/articles/807139/
#react@bookflow
👉 @Bookflow
Экскурсия по двум самым известным хукам в React
Если вы изо всех сил пытались разобраться в useMemo и useCallback, вы не одиноки! Я разговаривал со многими разработчиками React, которые cломали голову над этими двумя хуками.
Моя цель в этом здесь — прояснить всю эту путаницу. Мы узнаем, что они делают, почему они полезны и как получить от них максимальную пользу.
https://habr.com/ru/articles/807139/
#react@bookflow
👉 @Bookflow
👍3