proglibrary | Technologies

Telegram-канал proglibrary - Библиотека программиста | программирование, кодинг, разработка

77049

Все самое полезное для программиста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Учиться у нас: https://proglib.io/w/a32a0d94 Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Subscribe to a channel

Библиотека программиста | программирование, кодинг, разработка

😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных

Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу. Рекурсивные CTE состоят из двух частей:

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

Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Энтузиасты уже сделали:

Визуализацию множества Мандельброта с помощью ASCII-графики.
pallada-92/sql-3d-engine">3D-движок для рисования объемных фигур.
GPT на 500 строках SQL-кода. Подробная статья о реализации этого проекта опубликована здесь.
Трассировку лучей (это метод создания реалистичных изображений).

На прошлой неделе коллекция крутых SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».

Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:

Игровой цикл. В основе игры – рекурсивное общее табличное выражение (CTE). Оно создает бесконечный цикл, который инициализирует состояние игры, обновляет его на основе ввода пользователя и отрисовывает игру. Цикл продолжается, пока игра не закончится.
Вывод игры. Поскольку SQL-запрос обычно возвращает результат только после завершения, для отображения игры в реальном времени используется команда RAISE NOTICE. Эта команда выводит информацию в стандартный вывод, позволяя отображать игровое поле и другую информацию в процессе игры.
Пользовательский ввод. Обработка пользовательского ввода реализована через отдельную таблицу в базе данных. Эта таблица служит коммуникационной шиной между игрой и пользователем. Пользователь добавляет команды в эту таблицу, а игра их считывает.
Решение проблемы изоляции данных. Чтобы игра могла видеть новые команды, добавленные в таблицу ввода во время выполнения запроса, используется расширение dblink. Оно позволяет создавать новое подключение к базе данных с новым снимком данных, что дает возможность считывать самые последние команды пользователя.
Предотвращение кэширования. Чтобы PostgreSQL не кэшировал результаты запроса к таблице ввода, к запросу добавляется уникальный идентификатор итерации. Это заставляет базу данных выполнять запрос заново на каждой итерации игрового цикла.

Для управления состоянием игры и обработки игровых событий используются подзапросы и агрегатные функции.

• Подзапросы позволяют вычислить новое состояние игры после каждого хода, включая позицию фигуры, состояние поля, счет и т. д. К примеру, рекурсивный подзапрос используется для вычисления максимального количества линий, на которые может упасть текущая фигура.
• Агрегации применяются для подсчета очищенных линий, выбора фигуры с наименьшим рангом, обновления счета и уровня игры. Например, BOOL_OR() применяется для определения, есть ли хотя бы одно столкновение между фигурой и занятыми клетками на поле.

🔗 Подробнее читайте в статье
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

⚛️🔄 Улучшенная обработка асинхронных операций в React 19

Новая функциональность в React 19 направлена, прежде всего, на улучшение:
☑️ Управления состоянием.
☑️ Обработки ошибок.
☑️ Работы с асинхронными операциями.

👉 Рассмотрим ключевые улучшения подробнее:
▪️ Actions предназначены для обработки асинхронных запросов и автоматизации управления отложенными состояниями, ошибками и оптимистичными обновлениями. Фронтендеры теперь могут работать с асинхронными операциями более интуитивно, сохраняя пользовательский интерфейс отзывчивым в любое время — даже когда запросы выполняются в реальном времени.
▪️ Улучшенная работа с формами: в React 19 появился новый хук useActionState, который предоставляет разработчикам встроенную поддержку для обработки состояний и отправки формы.
▪️ Оптимистические обновления — способ мгновенно показать пользователю предполагаемый финальный результат в интерфейсе, даже если в фоновом режиме продолжается обработка данных. Это делает приложение более отзывчивым, особенно в случаях плохого соединения или долгих запросов. Если при выполнении возникает ошибка, интерфейс возвращается к исходному состоянию.
▪️ В React 19 появилась новая возможность — использовать API use для работы с ресурсами, такими как промисы и контексты, прямо внутри функции рендеринга. Это позволяет использовать use даже в условных конструкциях, что ранее было невозможно с хуками.
▪️ Server Components в React 19 — новый способ рендеринга компонентов: рендеринг происходит заранее, либо один раз во время сборки, либо при каждом запросе на сервере, который отделен от клиентской части приложения. Похожим образом реализован серверный рендеринг в Next.js.
▪️ Server Actions — новая функция в React, позволяющая компонентам на клиенте вызывать асинхронные функции, выполняемые на сервере.

🔗 Читать статью полностью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Компания Tidelift провела опрос более 400 мэйнтейнеров опенсорсных проектов. Ниже — краткие выводы, а подробнее читайте в статье на OpenNET или в оригинале.

▪️60% мэйнтейнеров не получают оплату за свою работу, но 44% из них были бы не против её получить, а 24% связывают с этим часть дохода.
▪️Мэйнтейнеры тратят 11% времени на задачи по безопасности (против 4% в 2021 году), 50% — на рутину и 35% — на разработку новых возможностей.
▪️71% используют двухфакторную аутентификацию, а 48% мэйнтейнеров считают свою работу недооценённой.
▪️После инцидента с бэкдором в библиотеке xz 66% стали меньше доверять pull-запросам.
▪️45% мэйнтейнеров негативно относятся к ИИ-инструментам, и только 9% оценивают их положительно.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔥 Релиз СУБД PostgreSQL 17

После года разработки опубликована новая стабильная ветка СУБД PostgreSQL 17, а PostgreSQL 12.x перестанут поддерживать уже 14 ноября.

📌 Что нового добавлено?

🔸 VACUUM: используется новая структура данных, которая потребляет до 20 раз меньше памяти, ускоряя работу и снижая нагрузку на ресурсы.
🔸 I/O: оптимизация кода WAL повысила пропускную способность записи до 2 раз. Новый интерфейс потокового ввода/вывода ускоряет перебор данных и обновление статистики.
🔸 Оптимизация запросов: ускорены запросы с IN, улучшена работа с индексами BRIN и CTE, а также использованы SIMD-инструкции для ускорения вычислений.
🔸 JSON: добавлена поддержка SQL/JSON, включая JSON-TABLE, jsonpath, и функции для работы с JSON, такие как JSON_EXISTS и JSON_QUERY.
🔸 SQL MERGE: расширены возможности для объединения INSERT, UPDATE и DELETE, добавлена поддержка выражения RETURNING и обновления представлений.
🔸 Загрузка данных: увеличена скорость экспорта данных в команде COPY, добавлена опция ON_ERROR для продолжения импорта после ошибок.
🔸 Секционированные таблицы: добавлена поддержка уникальных идентификаторов и техники оптимизации Constraint exclusion.
🔸 Foreign Data Wrapper: поддержка передачи подзапросов EXISTS и IN на внешний сервер.
🔸 Collation: встроенный движок для обработки локали обеспечивает единое поведение сортировки и сопоставления символов на всех платформах.
🔸 Логическая репликация: упрощён переход на новый релиз без удаления слотов, добавлена поддержка failover и утилита pg_createsubscriber.
🔸 TLS: новая опция sslnegotiation для настройки защищённых TLS-соединений через ALPN.
🔸 Резервное копирование: поддержка инкрементальных бэкапов и новая утилита pg_combinebackup для их объединения. В pg_dump добавлена опция --filter.
🔸 EXPLAIN: добавлены новые опции для вывода информации о времени чтения/записи и использовании памяти.
🔸 Прогресс VACUUM: добавлен индикатор прогресса при работе с индексами.
🔸 pg_wait_events: новое системное представление для анализа причин ожидания сеансов в сочетании с pg_stat_activity.

👉 Новость на OpenNET & Официальный анонс

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Привет, друзья! 👋

Мы хотим обсудить важную тему — токсичность в среде разработчиков и значимость поддержки и наставничества. Нам интересно узнать ваше мнение и опыт! Поделитесь своими мыслями, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:

🤔 Приходилось ли вам сталкиваться с токсичными коллегами на работе? Как вы справлялись с этой ситуацией?

🌟 Какие качества вы считаете важными для хорошего наставника в IT-сфере?

💡 Какие советы вы бы дали тем, кто хочет создать более поддерживающую и позитивную рабочую атмосферу?

Спасибо за ваше участие! Ваши ответы помогут сделать рабочую среду лучше для всех. 🚀

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

IT-индустрия стремительно меняется: миллениалы теряют позиции, на пике популярности — зумеры

Сейчас в IT преобладают специалисты моложе 25 лет. Их число стремительно растет.

И в этой динамике все чаще слышно:

Если тебе за 40, в крупных IT-компаниях может быть непросто.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста

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

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

🔗 Читать статью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🙌 Хардкорный вышмат для тех, кто интересуется ML, AI, DS

Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/3077986f

Что будет на демо?

🔹Вводный урок от CPO курса;

🔹Лекции со всеми преподавателями МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск;

🔹Практические задания и дополнительные материалы!

⚡️Переходите и активируйте – https://proglib.io/w/3077986f

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Нашли прикольный сайт с играми для кодеров

CodinGame — это платформа, где можно качать свои навыки в программировании и играть одновременно. Тут есть куча языков: Python, Java, C++ и другие.

Игры доступны бесплатно, разобраться несложно — присутствует туториал

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💰 Долгожданный листинг «для хомяков»

20 сентября «Hamster Kombat» выпустил обновление, которое обнулило прогресс игроков. Ежедневные комбо-карточки и шифры исчезли, остались только алмазы.

Разработчики подсчитали выплаты для игроков: реферальные лидеры получат значительные суммы, а обычные пользователи — от $10 до $60. Все монеты будут переведены в криптовалюту Hmstr, с которой можно будет работать уже 26 сентября.

Будем следить за ситуацией, не всё так однозначно, ведь слишком много экспертов сомневались в этом

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Об IOCCC (International Obfuscated C Code Contest)

Это ежегодный конкурс, где разработчики соревнуются в написании максимально запутанного и сложного для понимания кода на C, который при этом выполняет полезные функции 🤯

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

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🏗 3 основных шаблона событийно-ориентированной архитектуры

Знание данных шаблонов позволяет:

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

1️⃣ Шаблон конкурирующих потребителей используется для эффективного распределения большого количества асинхронных сообщений между несколькими потребителями. Ключевой момент в этом шаблоне — необходимость обработки каждого сообщения только одним потребителем. Разные инструменты и платформы решают эту задачу по-своему:
2️⃣ Шаблон повторных попыток сообщений используется для обработки ошибок при работе с очередями сообщений. Этот шаблон позволяет создать надежную систему обработки транзакций, способную справляться с временными сбоями и обеспечивающую контролируемый процесс для работы с проблемными транзакциями, например, при обработке платежей.
3️⃣ Шаблон асинхронного запроса-ответа позволяет создавать масштабируемые и устойчивые к сбоям системы, где сервисы могут взаимодействовать асинхронно, не блокируя друг друга и сохраняя способность корректно обрабатывать ответы даже при изменении состояния системы между запросом и ответом.

👉 Подробнее читайте в нашей статье
👉 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

❗Вакансии «Библиотеки программиста» — ждем вас в команде!

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

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🧽➡️💻 От мытья посуды до управления NVIDIA

Вот как это бывает: начинал на кухне у Denny's, а теперь крутит миллиарды как основатель и CEO NVIDIA


Это Дженсен Хуан и когда он основал NVIDIA в 1993 году и арендовал офис в скромном здании рядом с рестораном Denny’s.

А еще, на старте компании он и его коллеги не знали, станет ли их продукт востребованным, ведь тогда никто толком не знал, что такое 3D-графика.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

📌 Шпаргалка по Linux администрированию

Эта шпаргалка представляет собой краткое руководство по основным темам администрирования Linux для начинающих и мидл+ инженеров DevOps.

Стоит отметить пункты: «Infrastructure as Code» и «Monitoring & Logging»

Что вы считаете полезным?

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

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

☝️ Посмотрите, как вы можете быстро просмотреть все ваши существующие профили и создать новый профиль + настроить источник его содержимого.

#инструменты

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Интеграция с Tabby

Tabby
— это самостоятельный помощник по кодированию на основе ИИ, предлагающий альтернативу GitHub Copilot с открытым исходным кодом и локально.

Он может похвастаться несколькими ключевыми функциями:

▪️ Автономный, без необходимости в СУБД или облачном сервисе
▪️ Интерфейс OpenAPI, легко интегрируемый с существующей инфраструктурой (например, Cloud IDE)
▪️ Поддерживает GPUs потребительского уровня

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

⚠️ Что происходит: подборка важных новостей

💗 Создатель онлайн-библиотеки Flibusta Stiver предупредил об окончании работы проекта и своём уходе из жизни

🤖 Проект по анализу использования языка людьми в интернете закрылся, потому что нейросети слишком загрязнили данные

💰 СМИ: Дуров на допросе во Франции заявил, что зарабатывает за год один эмиратский дирхам (25 рублей)

🧑‍💻 В Ижевске выпустили в релиз скульптуру программиста

🏠 «Яндекс Карты» научились строить маршруты внутри зданий

⚛️ Физики только что обнаружили самый редкий распад частиц из наблюдавшихся

🌐 Qualcomm объявила о решении купить Intel полностью, а не часть подразделений

🚗 Китайский производитель электрокаров Zeekr начнёт отключать машины, ввезённые в РФ по «серым» схемам

💡 Учёные наконец разобрались, как статическое электричество возникает от трения

Какие новости пропустили? Поделитесь с нами.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Берём на вооружение: разработчик опубликовал скрипт, который клонирует любой сайт

Ситуация принимает интересный оборот: кто-то на основе этого кода создал расширение и продаёт его на Product Hunt за 10$. Весь этот ажиотаж взорвал Twitter — разработчики не остались в стороне и быстро отреагировали, разместив оригинальный скрипт бесплатно на GitHub

Скрипт, полезный особенно бесплатно, так что сохраняем

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Yandex Cloud ускорит разработку продуктов в облаке при помощи Yandex Serverless Integrations

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

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

Помимо этого, Yandex Serverless Integrations включает в себя инструменты EventRouter для передачи событий между сервисами и API Gateway для создания шлюзов между внешними и облачными сервисами.

Читайте подробнее в статье.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💡 Зачем использовать distributed lock: на заметку разработчику

Распределённая блокировка (distributed locking) — это метод координации доступа к общим ресурсам между несколькими процессами или узлами в распределённой системе.

👉 Источник

#инфографика

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Telegram начнет передавать данные пользователей по запросам властей

В телеграм обновили Terms of Service and Privacy Policy, теперь те, кто нарушает правила сервиса, могут быть раскрыты соответствующим органам в ответ на обоснованные юридические запросы. Эти меры должны отпугнуть преступников

Также обновили Telegram search: с помощью AI он отсеивает весь проблемный контент

➡️ Ссылка на новость

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤖 Supermaven — один из самых быстрых ИИ-помощников для разработчика. Доступен в виде расширения для IDE от Jetbrains, VSCode или Neovim.

👉 Скачать

#инструменты

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👩‍💻 Знаете ли вы, что в VS Code можно просмотреть историю репозитория?! Никакие дополнительные расширения не требуются!

#инструменты

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👨‍💻 Подборка шпаргалок по работе с Git: на заметку разработчику

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🖥 Демонстрация работы OpenAI o1

OpenAI o1 разработана с акцентом на то, чтобы тратить больше времени на размышления перед ответом. Эти модели способны решать более сложные задачи, чем предыдущие версии, благодаря умению рассуждать при работе с наукой, кодированием и математикой.


В видео на YouTube «Researcher» демонстрирует, как OpenAI o1 помогает создавать код для визуализации сложных механизмов, таких как Self-Attention — это технология, которая лежит в основе моделей ChatGPT.

В примере с 2:05 используется предложение «The quick brown fox». Когда пользователь наводит курсор на слова, модель показывает связи между ними в виде стрелок с толщиной, пропорциональной вниманию (attention score). И это позволяет лучше понять, как модели Transformer обрабатывают информацию.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👨‍💻 Технологии, связанные с API: #инфографика для разработчика

👉 Источник

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🐘🔧 Расширение pg_variables: мощная альтернатива временным таблицам в PostgreSQL

Расширение pg_variables для PostgreSQL предлагает альтернативу временным таблицам для эффективной работы с промежуточными данными, но имеет свои преимущества и недостатки, требующие тщательного анализа перед внедрением:

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

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

Флаг is_transactional нужно указывать каждый раз, когда вы изменяете значение транзакционной переменной с помощью функций pgv_set() и pgv_insert(). В противном случае возникнет ошибка. Другим функциям передавать этот флаг не нужно.

Если вызовы функций pgv_free() или pgv_remove() откатываются, затронутые транзакционные переменные восстанавливаются. В отличие от них, нетранзакционные переменные удаляются безвозвратно.

👉 Читать подробнее в статье

Читать полностью…
Subscribe to a channel