proglibrary | Technologies

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

77025

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

Subscribe to a channel

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

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

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

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

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

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

Модель OSI 🆚 Стек протоколов TCP/IP

Ключевые отличия TCP/IP от OSI:

☑️ Первый уровень — канальный. Он объединяет L1 и L2 уровни OSI.
☑️ Второй уровень — межсетевой. Он идентичен L3 OSI.
☑️ Третий уровень — транспортный. Он идентичен L4 OSI.
☑️ Четвертый уровень — прикладной. Он объединяет L5 — L7 уровни OSI.

И главное: TCP/IP — это практическая модель, которая решает конкретные проблемы связи и опирается на стандартизированные протоколы; OSI служит всеобъемлющей, независимой от протокола структурой, разработанной для охвата различных методов сетевой связи.

#этобаза

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

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

🦀 Embedded Software Engineering 101 — курс по основам разработки встроенного ПО, начиная с основ микроконтроллеров и постепенно переходя к более сложным встроенным системам.

👉 Пройти курс

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

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

😈 Осторожно — Regex! 3 эпических сбоя, вызванных регулярками

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

1️⃣ Сбой Stack Overflow

В 2016 году Stack Overflow испытал 34-минутный перебой в работе. Причиной стало регулярное выражение, используемое для обработки пользовательского ввода:

^[\s\u200c]+|[\s\u200c]+$


Это выражение должно было находить пробелы в начале и конце строки. Проблема возникла, когда какой-то пользователь запостил комментарий, содержащий около 20 000 последовательных пробелов. Механизм обработки регулярных выражений начал проверять каждый пробел. Когда после 20 000-го пробела встретился другой символ, движок начал откатываться назад, пытаясь найти соответствие, начиная со второго пробела, третьего и так далее.

Это привело к катастрофическому возврату (catastrophic backtracking) — ошибке, которая возникает, когда движок регулярных выражений тратит чрезмерное количество времени на попытки найти соответствие шаблону, перебирая различные комбинации. Количество проверок начало лавинообразно увеличиваться и быстро достигло 199 990 000 — это вызвало значительную задержку и в итоге сбой системы.

Для решения проблемы потребовалось 10 минут на обнаружение причины, 14 минут на написание исправления и еще 10 минут на развертывание решения. В результате регулярное выражение было заменено на функцию подстроки.

2️⃣ Сбой Cloudflare

2 июля 2019 года произошел крупный сбой в работе платформы Cloudflare. Один из инженеров написал регулярное выражение, которое привело к действительно катастрофическому возврату — вызвало экстремальную перегрузку всей инфраструктуры. Использование процессоров выросло до 100%, а большинство сайтов, подключенных к Cloudflare, замедлились до крайности или вовсе оказались недоступными.

Коварная регулярка выглядела так:

(?:(?:\"|'|\]|\}|\\|\d|(?:nan|infinity|true|false|null|undefined|symbol|math)|\`|\-|\+)+[)]*;?((?:\s|-|~|!|{}|\|\||\+)*.*(?:.*=.*)))


Самую большую опасность в этом выражении представляет .*(?:.*=.*) — группа без захвата, которая может привести к чрезмерному использованию процессора при обработке определенных шаблонов. Эта конструкция вызвала серьезные проблемы с производительностью и в конечном итоге привела к массовому сбою.

3️⃣ Глобальный сбой Windows/CrowdStrike

19 июля 2024 года произошел самый массовый сбой в истории — из строя вышли около 8,5 млн Windows-компьютеров с ПО CrowdStrike. Причиной сбоя стало несоответствие между ожидаемым количеством входных параметров (21) и фактическим количеством параметров (20), которые были переданы в интерпретатор контента (этот компонент отвечает за обработку содержимого с использованием регулярных выражений). Когда система получила ввод с 21 параметром, интерпретатор контента попытался считать данные за пределами выделенной памяти, что и привело к сбою системы.

📨 Материал взят из нашей еженедельной email-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.

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

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

Пользователи из России больше не могут скачивать плагины в Android Studio из-за экспортных ограничений

Плагин Flutter/PyCharm Community Edition/ IntelliJ IDEA Community Edition не устанавливается у пользователей из России

Как обойти ограничение:
C помощью VPN

🌚 — как же они задолбали

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

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

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

Готовим статью «Лучший ноутбук для программирования в 2024 году» и хотим узнать ваше мнение! 👇💻✨

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

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

Редактор Hex Editor

Как написано в репозитории:

Для реверс-инженеров, программистов и людей, которые ценят свою сетчатку, работая в 3 часа ночи.


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

👉 Ссылка

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

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

❗️Задача для конкурса в честь дня программиста

Условие:

Даны две строки s и f (начальная и конечная) и словарь D (набор слов).

Нужно определить, можно ли преобразовать s в f, используя только слова из словаря D. При этом каждое преобразование должно менять только один символ, а длина слова должна оставаться неизменной. Если преобразование возможно, нужно найти кратчайшую последовательность таких преобразований и вернуть ее длину. Если преобразование невозможно, вернуть "Преобразование невозможно".

Пример ввода 1:

    D = ["cat", "cot", "dot", "dog", "bat", "dag"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': 3

Пример ввода 2:
    D = ["cat", "cot", "bat"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': Преобразование невозможно

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

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

🔔 Полезный репозиторий для программистов

Юзайте как шпаргалку


jnv/lists это коллекция полезных списков, связанных с программированием и не только: от языков и библиотек до инструментов и обучающих материалов.

Репозиторий подходит:
➡️ Поиск ресурсов
➡️ Помощь в улучшение навыков разработки
➡️ Для того, чтобы быть в курсе последних трендов

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

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

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

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

📰 Time включил актёров и блогеров в список 100 самых важных персон в сфере ИИ

🖥 Новый процессор iPhone 16 будет построен на архитектуре armv9

📱Пользователи из России больше не могут скачивать плагины в Android Studio из-за экспортных ограничений

💻 Исследование: ПК с Windows 11 может показывать разную производительность без явной причины

🔐 За первое полугодие 2024 года в России утекло в сеть 986 млн строк персональных данных пользователей

📹 Runet: YouTube начал вводить технические меры против переноса контента на российские видеохостинги

📱 Telegram обновил раздел FAQ, касающийся нелегального контента, после задержания и выпуска под судебный надзор Дурова

💰 Бывший сотрудник OpenAI привлек $1 млрд на создание «безопасного сверхинтеллекта»

Какие новости пропустили? Расскажите в комментариях.

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

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

🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода

От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:

☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова infer.
☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью as: при работе с объектами типа ключ-значения можно использовать as для переименования ключей — это позволяет создавать производные типы с измененными именами свойств.
☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием unique symbol: позволяют создавать типы, которые структурно похожи, но рассматриваются типовой системой как разные.
☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.

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

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

🛠 Сага: эффективный шаблон микросервисной архитектуры

Полную бизнес-транзакцию, как правило, очень сложно описать с помощью одной транзакции в базе данных. Возьмем, к примеру, процесс покупки в онлайн-магазине — с момента нажатия кнопки «Купить» до момента доставки заказа к вашей двери происходит серия шагов:

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

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

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

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

🍉 Подборка лучших статей «Библиотеки программиста» за август: сохраняй в заметки, чтобы не пропустить #самыйсок

🎮🚀 Saturated Outer Space: как инди-разработчики перезапускают игру и бросают вызов жанровым стереотипам
🤖🛠️ Секреты эффективного промптинга: 4 способа улучшить качество ответов чат-бота
🎮 Как зарабатывать на играх или зачем изучать игровую аналитику в 2024 году
🏄 6+ главных алгоритмов балансировки нагрузки
🖼️ 5 стратегий рендеринга веб-страниц: как выжать максимум из вашего сайта
🚀 Ускорьте свою базу данных: 7 проверенных методов масштабирования и оптимизации
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
🏃 Самоучитель по Go для начинающих. Часть 15. Конкурентность. Горутины. Каналы
🆕📜 Что нового в TypeScript 5.5: 4 ключевых улучшения
🎮📖 Библиотека геймдизайнера: 10 must-read книг 2024 года
🤖 6 основных алгоритмов машинного обучения: руководство для начинающих
🏗️ Структуры данных для разработчиков: 10 самых важных

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

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

🔍 Детальное сравнение и углубленный анализ производительности Java, Go, C++, Rust: как сборка мусора влияет на производительность и эффективность использования ресурсов

Любопытное исследование, в котором рассматриваются накладные расходы, связанные с использованием языков с автоматической сборкой мусора (Java и Go) по сравнению с языками с ручным управлением памятью (C++ и Rust), в контексте систем репликации конечного автомата (SMR), работающих в облаке.

👉 Читать

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

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

Arch.Meetup by Sber: современное управление архитектурой данных – регистрация открыта

Уже 11 сентября в офисе Сбера и онлайн вместе с ИТ-архитекторами, data-инженерами и спикерами из трех IT-компаний поговорим об архитектуре данных и ее роли в управлении данными.
 
В программе – сразу 3 доклада, нетворкинг с большим архитектурным сообществом, выставка новых продуктов и технологий Сбера и фуршет.

О чем поговорим?
 
▪️Есть ли Архитектура данных за пределами хранилищ?
▪️Как моделировать данные на Enterprise-уровне?
▪️Как архитектура помогает в вопросах инвентаризации данных?
▪️Что такое Data API и почему мы часто говорим об интегрируемости данных?
 
 👉🏻 Подробная программа и регистрация – по этой ссылке. Успей пройти регистрацию – количество очных мест ограничено.

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

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

👍 25 полезных HTML тегов, элементов и атрибутов, которые должен знать каждый фронтендер

В HTML есть средства для создания раскрывающихся виджетов, индикаторов прогресса и скалярных значений, переадресации на нужный URL, воспроизведения аудио/видео, сохранения форматирования кода и валидации с помощью regex.

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

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

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

🐬🐘 PostgreSQL или MySQL: что лучше подойдет для вашего проекта

Новый бесплатный и познавательный контент от Proglib


На нашем сайте Proglib.io регулярно выходят статьи на разные айтишные темы.

Представляем наши статьи в виде коротких роликов ⚡️

❗️ Внутри:
▪️ Мемасики
▪️ Котики
▪️ Весь полезный материал за минуту

🔥 — Понравилось

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

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

🤔 «Почта России» переходит на отечественное ПО

На протяжении ближайших трёх лет «Почта России» планирует перевести 130 тысяч рабочих мест с Windows на российскую операционную систему «Альт»

Этот шаг направлен на повышение технологической независимости и безопасности госкомпании, сообщает ТАСС


Похоже, мемы с замедленной доставкой почты России будут всё чаще появляться в ленте. А вы что думаете?

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

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

🥇 Итоги конкурса: победитель определён

Надеемся, что все отлично отпраздновали день программиста. А нам за два дня пришло много ответов на нашу задачу.


У нас есть победитель, он выбран рандомно среди правильных ответов:
erdnya — аккаунт закрытый. Свяжитесь с @mdudarevcontact

Мы с ним свяжемся и дадим доступ к любому из следующих курсов

Курсы на выбор:
🔵 Архитектуры и шаблоны программирования
🔵 Основы программирования на Python
🔵 Базовые модели ML и приложения
🔵 Frontend Basic: принцип работы современного веба

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

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

💬 Поделитесь опытом: на каком ноутбуке вы сейчас работаете и почему он вам нравится (или не нравится)? 🌟

Ждем ваши ответы в комментариях! Самые полезные советы войдут в нашу статью. 📝💡

Спасибо за участие! 🙌

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

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

Пивной бар-хоппинг для айтишников
12 сентября в 20:00


Финтех-компания Точка приглашает в пять московских баров в День программиста! Выпьем пива, пройдём квест про технологии и обсудим холиварные темы. Пройди задания, собери пасхалки и получи подарок — пивной бокал с гравировкой.

Подробнее что будет:

● Бесплатное пиво — по стакану в каждом из пяти баров.
● Квест по пяти барам — грохнем прод, поугадываем звуки ностальгии и найдём ошибки джуна с помощью УФ-фонарика.
● Холивары — обсудим наболевшее с инженерами из Точки:
– Свобода выбора в технологиях: рай разработчика, ад тимлида.
– Техдолг — копить или платить.
– Алгоритмы и задания на собеседованиях — кринж или база.
– 7 столпов ML — нужны ли они все.
– Куда исчезли сисадмины.

Ждём разработчиков, продактов, аналитиков и всех, кто работает в IT. Приходите сами и приводите друзей!

Зарегистрироваться и узнать больше про активности.

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

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

👨‍💻 Шпаргалка по проектированию реляционных баз данных

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

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

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

👉 Источник

#инфографика #проектирование_систем

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

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

🆒 Дарим наш курс за ответ на задачу

В предверии дня программиста проводим конкурс: решите нашу задачу на тему программирования — рандомно выберем победителя


Подробные условия:
➡️ Решаем задачу со следующего поста
➡️ Решение присылаем в бота @ProglibContest_bot
➡️ Рандомно среди правильных ответов разыгрываем курс на выбор

Курсы на выбор:
🔵 Архитектуры и шаблоны программирования
🔵 Основы программирования на Python
🔵 Базовые модели ML и приложения
🔵 Frontend Basic: принцип работы современного веба

Таймлайн:
11-12 сентября — принимаем ответы
⬇️
13 сентября — подводим итоги

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

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

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

Мы готовим статью о будущем AI и его влиянии на разработку. Нам важно ваше мнение! ✨

1️⃣ Как вы думаете, AI действительно изменит мир разработки? 🤖
2️⃣ Какие плюсы и минусы использования AI в разработке вы видите? 💡
3️⃣ Есть ли у вас примеры успешного применения AI в ваших проектах? 🛠️

Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌

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

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

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

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

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

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

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

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

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

Telegram представил обновление Bot API 7.10 с рядом нововведений

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

Что там по Bot API 7.10?

Добавлен новый класс PaidMediaPurchased и поле purchased_paid_media в классе Update, которые позволяют отслеживать обновления о покупке платного медиа.

Теперь можно указывать payload в sendPaidMedia, который бот получает обратно в TransactionPartnerUser и обновлениях о платном медиа.

А что ещё завезли? 👀

Также, как все заметили добавили новый способ взаимодействия с аудиторией — звёздные розыгрыши ⭐️

👉 Подробнее смотрите по ссылке

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

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

$1.1M — именно столько заработал американский школьник

Он использовал API ChatGPT и создал удобную оболочку, которая делает взаимодействие с ним еще проще.

В итоге получил:
приложение для App Store, которое считает калории по фото. Его скачали более 100 тысяч человек.

Как вам такой подход к бизнесу? Кажется, теперь каждый может заработать свой миллион 🙂

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

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

😮 Японцы наняли 10 котов для своих айтишников

Они не просто домашние животные, а полноценные «employees». Среди них есть «главный клерк», «аудитор» и даже «председатель» — кот по имени Футаба.🤔

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

😁 — Хочу котиков себе на работу
🌚 — У меня свой котик
🥱 — Не нужны котики, так как не сосредоточишься на работе (душнила)

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

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

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

Мы готовим статью о самых странных и уникальных дистрибутивах Linux, и нам нужно ваше мнение! 🤔💬

1️⃣ Какой самый необычный дистрибутив Linux вы когда-либо пробовали? Почему он вас удивил?
2️⃣ Есть ли у вас советы для новичков, которые только начинают работать с Linux? 🐧✨

Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌

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

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

Санкт-Петербург, приглашаем в гости в Сбер! 💚

В нашем уютном технохабе пройдёт первый внешний митап для инженеров сопровождения, DevOps-инженеров и разработчиков.

Дата и время: 18 сентября, 18:30–21:00
Локация: ул. Уральская, д.1, Литера Ч.

Поговорим о развёртывании CI/CD-конвейеров, расскажем про реализацию облачных сервисов в Cloud.ru и обменяемся опытом по работе с Jenkins и практике создания комплементарных технологических команд.

Спикеры и темы:

▪️ Коротин Александр, Сбер: «Как десятикратно разогнать скорость поставки в большом Enterprise»
▪️ Алексей Молчанов, Cloud.ru: «Cloud.ru: Operations & SRE»
▪️ Алексей Снятков, Сбер: «Развитие лидеров и построение комплементарной команды»

Регистрируйтесь и приходите на IT Talk by Sber, будет интересно!

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