Программирование {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
This media is not supported in your browser
VIEW IN TELEGRAM
Оптимистичное перетаскивание в Next.js


#frontend@bookflow

👉 @Bookflow
👍2🤔1
9 способов обмена массивом Numpy между процессами

В Python можно передавать массивы numpy между процессами.

Существует множество способов передать массив numpy между процессами, например, как аргумент функции, как наследуемую глобальную переменную, через очередь или трубу, как ctype Array и RawArray, файл с отображением памяти, массив с поддержкой SharedMemory или через менеджер.

https://superfastpython.com/numpy-share-array-processes/


#python@bookflow

👉 @Bookflow
👍4🔥1
Программирование на С++

https://bdpx.github.io/cpp/


#cpp@bookflow

👉 @Bookflow
👍4🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Будьте осторожны при подсчете строк из outer join

COUNT (*) => строки в группе; всегда хотя бы одна
COUNT ( inner_tab_col ) => строки из внутренней таблицы; ноль, если нет совпадений.

Это происходит потому, что COUNT ( col ) добавляет только ненулевые значения.

Убедитесь, что inner_tab_col является обязательным!


#db@bookflow

👉 @Bookflow
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Mapwidget

Пользовательские виджеты Jupyter для создания интерактивных 2D/3D-карт с помощью популярных библиотек JavaScript с двунаправленной связью, таких как Cesium, Mapbox, MapLibre, Leaflet и OpenLayers

https://github.com/opengeos/mapwidget


#github@bookflow

👉 @Bookflow
👍3
Высокоскоростная передача пакетов в Go: От net.Dial до AF_XDP

Недавно я разработал программу на Go, которая отправляет ICMP ping-сообщения на миллионы IP-адресов. Естественно, я хотел, чтобы это происходило как можно быстрее и эффективнее. Это побудило меня изучить различные методы взаимодействия с сетевым стеком и быстрой отправки пакетов! Это было увлекательное путешествие, поэтому в этой статье я поделюсь некоторыми своими наработками и задокументирую их для себя в будущем :) Вы увидите, как мы достигаем 18,8 Мбит/с, используя всего 8 ядер. На Github есть репозиторий с примерами кода, что облегчает процесс.

https://toonk.io/sending-network-packets-in-go/


#golang@bookflow

👉 @Bookflow
👍8🔥1
KrakenD

Это расширяемый, сверхвысокопроизводительный API-шлюз, который поможет вам без труда внедрить микросервисы и безопасные коммуникации. KrakenD прост в эксплуатации и управлении и масштабируется без единой точки отказа.

https://github.com/krakend/krakend-ce


#devops@bookflow

👉 @Bookflow
👍3
Пишем калькулятор на Rust с GUI

Зачем еще один калькулятор? Да не зачем, просто как тестовый проект для рассмотрения GUI-библиотеки.

Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.

Об Slint есть всего несколько новостных постов на Хабре, поэтому, возможно, вам будет интересно посмотреть, что это такое.

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


#rust@bookflow

👉 @Bookflow
👍42🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
View Transitions — это подарок 🎁

Один набор CSS keyframes и одна локальная пользовательская переменная для ::view-transition-old/new(body) 🚀


#frontend@bookflow

👉 @Bookflow
👍2
Совет по чистому коду в Python

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


#python@bookflow

👉 @Bookflow
6🔥1🤨1
Авторизация в React - базовые сведения

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

https://danshin.ms/simple-login-react-app/


#react@bookflow

👉 @Bookflow
👍1🎉1
Оптимизация GUI на Qt

Как правило, при создании desktop-приложений на платформе Qt не возникает проблем, связанных с медленностью работы GUI. Qt – платформа достаточно надежная, неплохо вылизанная по всем параметрам, в том числе и по скорости работы. Однако всё же иногда бывают ситуации, когда из-за обилия виджетов графический интерфейс немного притормаживает, и это печально). В этой статье я приведу один частный пример простого графического интерфейса и покажу, как за два шага можно сначала ускорить его в 11 раз, а потом и в целых 34 раза. Вдобавок к этому, я постараюсь немного осветить механизм принятия решения для таких оптимизационных задач, постараюсь показать направление мыслей для правильного решения. Поехали!

https://habr.com/ru/post/672962/


#cpp@bookflow

👉 @Bookflow
👍31🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Получение значений из строк N до/после текущей строки с помощью 2-го параметра LAG/LEAD

например.

LAG ( ..., 2 ) OVER ( ORDER BY ... ) = 2 before
LEAD ( ..., 3 ) OVER ( ORDER BY ... ) = 3 after


За пределами first/last row => возвращаем null

Используйте 3-й параметр, чтобы вернуть значение по умолчанию


#db@bookflow

👉 @Bookflow
👍3🔥1👏1
VSCodium

Это свободно лицензируемый сообществом бинарный дистрибутив редактора VS Code от Microsoft.

https://github.com/VSCodium/vscodium


#github@bookflow

👉 @Bookflow
🤷‍♂3👍2🤔1
Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд

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

Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато давно интересует оптимизация кода на Go.

Этот челлендж был очень прост: обработать текстовый файл названий метеорологических станций и температур, и для каждой станции вывести минимальное, среднее и максимальное значение. Чтобы упростить задачу, было ещё несколько ограничений, однако я проигнорировал те, что относятся только к Java.

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


#golang@bookflow

👉 @Bookflow
👍4
Глубокое погружение в сетевые технологии Kubernetes

На вебинаре описывается сетевая модель Kubernetes (узлы, поды, сервисы), ее преобразование в сетевые конструкции Linux, интеграция с физической сетью и оркестровка виртуальных сетевых устройств, таких как маршрутизаторы, балансировщики нагрузки и NAT-шлюзы.

https://my.ipspace.net/bin/list?id=Kubernetes#INTRO


#devops@bookflow

👉 @Bookflow
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Как я снизил время инкрементных сборок Rust на 40%

Я форкнул и модифицировал компилятор Rust rustc. Одна фича — кэширование расширения процедурных макросов — привела к снижению времени инкрементных сборок на 11-40% в различных реальных крейтах. Благодаря этому ускорились dev-сборки и меньше стал тормозить rust-analyzer (IDE IntelliSense).

Если вы специалист в повышении производительности компилятора Rust, то можете сразу перейти к разделу «Кэширование расширения макросов: ускорение инкрементных сборок Rust на 40%».

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


#rust@bookflow

👉 @Bookflow
👍31🥰1