🍉 Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных
⚛️🔄 Улучшенная обработка асинхронных операций в React 19
🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста
🏗 3 основных шаблона событийно-ориентированной архитектуры
🐘🔧 Расширение pg_variables: мощная альтернатива временным таблицам в PostgreSQL
👍 25 полезных HTML тегов, элементов и атрибутов, которые должен знать каждый фронтендер
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода
🛠 Сага: эффективный шаблон микросервисной архитектуры
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
💡🎨 Источники вдохновения для UI/UX-дизайнеров и фронтендеров: 50 полезных ресурсов
Помянем пиратские APK: Google начал блокировать пиратские приложения, которые установлены не из Play Market.
Самое обидное, что у школьников перестал работать Minecraft. Но есть выход — не обновляться до последней ОС. Тогда есть шанс ненадолго остаться «пиратом».
На форумах уже вовсю идёт поиск, как обойти блокировку.
Российские компании начали активно нанимать программистов из Африки
Наши компании массово набирают дешевых кодеров из Африки, чтобы сбить зарплаты российских специалистов. Количество вакансий для африканских разработчиков выросло в 10 раз, преимущественно для специалистов из Зимбабве, Камеруна и Кении. Российские бизнесы предпочитают платить зарубежным сотрудникам гораздо меньше.
Конечно, есть сомнения по качеству таких сотрудников
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры
В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.
Читать статью
#почитать
😮 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
Мы часто говорим об AI, но так ли он полезен в работе кодера?
Исследование Uplevel среди 800 программистов выявило неожиданные результаты: использование ИИ-инструментов, таких как GitHub Copilot, не повысило продуктивность и привело к увеличению ошибок в коде на 41%
В ходе двух трёхмесячных периодов программисты сначала работали с традиционными инструментами, а затем с GitHub Copilot.
OpenAI выпустила новый инструмент — Canvas
Canvas — это визуальный инструмент для ChatGPT. Теперь можно взаимодействовать с моделью, перемещать и редактировать текст, создавать новые документы и анализировать большие объемы данных.
Основные преимущества для кодеров в Canvas:
▪️ Подсказывает, как оптимизировать код
▪️ Добавляет логи для отладки кода
▪️ Держит в голове проект целиком
▪️ Переносит код на другие языки программирования
Доступ будет доступен в ChatGPT
Гарвардские студенты создали умные очки с технологией распознавания лиц
На самом деле они использовали Meta Smart Glasses, в которые добавили своего софта. Теперь, когда смотришь через очки на чьё-то лицо, они его идентифицируют, включая их имя, адрес и место работы, но не всегда выдаётся верный результат.
Разработчики приняли решение не публиковать код, так как их целью было продемонстрировать проблему неконтролируемого доступа к личным данным.Читать полностью…
🤯 Знаете ли вы этот хак на GitHub?
1️⃣ Откройте любой GitHub-репозиторий
2️⃣ Замените .com
на .dev
3️⃣ Просмотрите код репозитория в инстансе VS Code!
И да, можно просто на клавиатуре нажать кнопку «.
».
💡8 ключевых концепций в предметно-ориентированном проектировании (Domain-driven design, DDD): на заметку разработчику
👉 Источник
#инфографика
MyLens.ai — нейронка мастхев для ютуба
Нейронка пересказывает видео с ютуба. Может справиться с часовыми видео за пару секунд.
▪️ Можно закинуть любое видео
▪️ Саммари появляется мгновенно. Нейросеть создаст план, схемы и выделит ключевые цитаты
▪️ Если загружаете свой собственный ролик — программа даст советы, как сделать контент вирусным
Единственный минус: ограничение на три видео в день
📌 Шпаргалка по 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.
👉 Скачать
#инструменты