Библиотека программиста | программирование, кодинг, разработка
82.6K subscribers
3.87K photos
183 videos
89 files
6.92K links
Все самое полезное для программиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/eLH_zQ

Другие курсы: https://clc.to/goHZHA

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5ba2901234b69883a4d46
Download Telegram
📈Компания Sonatype, специализирующаяся на защите от атак на цепочки поставок, опубликовала результаты исследования (62 стр.) проблем с зависимостями и сопровождением открытых проектов на Java, JavaScript, Python и .NET, представленных в репозиториях Maven Central, NPM, PyPl и Nuget.

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

💬Страшные цифры, которые каждый год приводят к страшным последствиям. Кстати, вы анализируете сторонние зависимости? Если да, то как?
🤔9👍7👾2
⚡️ Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

Спустя полтора года работы восьми айтишников с суммарным опытом в IT 130 лет достигнут результат в виде учебника по тестированию, которого еще никто и никогда не делал.

🚀700+ страниц без учета картинок — один из самых полных источников по тестированию
🚀Интерактивный — более 40 наборов встроенных тестов (если не прошел тест, то к следующей теме не перейти) и 40 ДЗ
🚀На русском и полностью бесплатный

100-Year QA-Textbook включает 42 модуля (130 занятий), 42 набора онлайн-тестов, 700+ страниц базовых знаний, посвященных тест-дизайну, работе с требованиями, тестовой документации, тестированию на всех уровнях и локализации дефектов в трехзвенной архитектуре, базам данных, Linux, сетям, методологиям разработки и другим полезным для новичков темам. Опытные специалисты могут просто «прогнать тесты» учебника и при обнаружении провалов/забытого быстро освежить знания.
👍438
💬 Какие технологии/фреймворки/ЯП/стеки, по вашему мнению, будут доминировать в индустрии разработки в ближайшие пять лет?

#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
📈Каким бы противоречивым ни был индекс TIOBE, который отслеживает показатель популярности языков программирования, но согласно ему C# потихоньку обгоняет Java.

«Разрыв между C# и Java никогда не был таким маленьким», — говорится в последнем выпуске. «В настоящее время разница составляет всего 1,2 процента, и если тенденция сохранится, C# превзойдёт Java примерно через 2 месяца».

📌Почему этим данным можно верить?

💬Снижение популярности Java может быть вызвано решением Oracle ввести модель платного лицензирования после Java 8 и ростом популярности Kotlin. .NET/C# в свою очередь повернулся в сторону открытого исходного кода и сообщества.
👍17🔥4🤔21❤‍🔥1
🤩От шаверма-бота до игры в слова

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

И есть немало примеров, когда такие пет-проекты становились не только полем развития навыков разработчика, но и коммерческой идеей. Ребята из Selectel собрали шесть подобных задач — для вдохновения и прокачки навыков.

🐍 Shawarma as a service
🐍 «Minecraft» на Python
🐍 Мод для Cyberpunk 2077
🐍 Динозаврик Google на тачбаре
🐍 Рускоязычная игра в слова с ИИ
🐍 Тетрис в QR-коде

#оффтоп
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115
This media is not supported in your browser
VIEW IN TELEGRAM
💥Хотите увидеть, как серверы падают из-за неправильной обработки повторных запросов?

Sam Rose для блога Encore создал интерактивный гайд, в котором исследует различные методы повтора запросов к серверу и показывает, почему одни методы лучше других. В качестве бонуса — небольшая реализация идеальной стратегии на Go.
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍6
📊 Опрос о состоянии WebAssembly (Wasm) за 2023 год завершен, результаты получены ... и они очень увлекательны!

👉 Читайте полный отчет или основные моменты в нашей подборке:

🔹Использование Rust и JavaScript продолжает расти, но некоторые более заметные изменения происходят немного ниже — Swift и Zig увеличивают свою популярность
🔹Желание разработчиков использовать Zig, Kotlin и C# превышает текущее использование
🔹Wasm по-прежнему чаще всего используется для разработки веб-приложений, но серверные решения также набирают популярность, как и использование Wasm в качестве окружения для плагинов
🔹Потоки, сборка мусора и относительно новое предложение по компонентной модели — это разработки Wasm, которые наиболее интересуют людей
🔹Что же касается WASI, то наибольший интерес привлекают предложения по I/O (например, HTTP, файловая система)
🔹Многие респонденты поделились тем, что ожидают от Wasm выполнения обещания "write once and run anywhere", которое первоначально было дано Java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥2
Очевидно, что в открытом виде пароли в базе никто уже не хранит. Хранить хеш пароля — не всегда хорошая идея, т. к. его можно восстановить по радужным таблицам.

Решение — добавлять уникальную соль к паролю, что позволит получить уникальный результат хеширования для каждого пароля. И если даже вашу базу взломают, алгоритм формирования пары пароль + соль никто не узнает 🤷‍♂️

📌Как в таком случае проверить пароль?

1️⃣Пользователь вводит пароль.
2️⃣Система извлекает соответствующую соль из БД.
3️⃣Система добавляет соль к паролю и хеширует его. Назовем хешированное значение H1.
4️⃣Система сравнивает H1 и H2, где H2 — это хеш, хранящийся в базе данных. Если они одинаковы, пароль действителен.

👉 Более детально данный вопрос рассмотрен в визуальном руководстве.
👍363😍3
Почему экосистема фронтенда настолько сложна?

📌Основные тезисы из статьи, которая подчеркивает боль всех фронтендеров:

🤯Нет единой системы импортов: ESModules, CommonJS, Asynchronous Module Definition (AMD), Universal Module Definition (UMD)
🤯Многочисленные шаги минификации, траспиляции
🤯Совершенно разные условия запуска кода: разные версии браузеров, server side, client side и т. д.
🤯Слишком многие фронтенд-инструменты полагаются на определенную структуру файлов в проекте
🤯Configuration hell: огромное количество инструментов, которые нужно как-то подружить между собой
🤯Из-за множества слоёв преобразования затруднён hot reload

💬Согласны с автором?

👍 — в точку
🤔 — нет, я не испытываю таких проблем при разработке
👍49🤔6
🤔А что дальше, искусственный интеллект?

Reuven M. Lerner, преподаватель и автор онлайн-курсов по Python и Pandas, поделился историей одной несостоявшейся рекламной кампании.

Он разместил рекламу курсов на Facebook (Meta*) и забыл про неё. Спустя год увидел, что учётная запись заблокирована за несоблюдение политики платформы на пожизненный срок.

Знаете почему? Дело в том, что решение о блокировке и отмене апелляции принимали боты, которые приняли рекламу курсов за продажу настоящих питонов и панд 🤦

*организация, деятельность которой запрещена на территории РФ
Please open Telegram to view this post
VIEW IN TELEGRAM
💯12👍6
This media is not supported in your browser
VIEW IN TELEGRAM
— Она: как долго ты будешь программировать?

— Он (разработчик): несколько минут... я хочу пофиксить один баг

#юмор
😁118👍7👾3
👩‍💻 Conventional Commits является соглашением о структуре сообщений коммитов, которое предлагает простой и понятный набор правил для создания истории изменений. Это помогает в написании ясных сообщений коммитов, которые облегчают процесс создания и поддержки открытых и закрытых исходных кодов.

🤩 Основные принципы и преимущества:

1️⃣Структурированный формат: каждое сообщение коммита следует определенному формату:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

, где

type обозначает тип изменений (например, feat, fix, chore).
scope является необязательным и указывает часть проекта, к которой относится коммит (например, компонент или файл).
description — краткое описание сделанных изменений.

2️⃣Семантическое версионирование: поддерживает семантическое версионирование, позволяя автоматически генерировать версии и записи изменений.

3️⃣Четкое разделение: помогает разделять различные типы изменений для более четкого понимания и организации истории изменений.

4️⃣Автоматизация: позволяет разработчикам использовать скрипты для автоматизации различных частей рабочего процесса разработки, таких как генерация заметок о выпуске или определение следующей версии.

5️⃣Совместимость с другими системами: соглашение обеспечивает совместимость с другими системами и инструментами, которые могут обрабатывать семантику сообщений коммитов.

#советыдляразрабов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍203
Ищем IT-специалистов, желающих поговорить o SQL

Заполните анкету – https://forms.gle/7X6kuAbE93ckBYcX7
Мы напишем вам, чтобы договориться о времени😉

Кого ищем?
Специалистов, которые учатся SQL самостоятельно и планируют углубить свои знания.

Зачем нам это нужно?
Мы собираемся запускать новый продукт по SQL, хотим сделать его максимально полезным и отвечающим потребностям клиентов.

Как будет проходить?
Длительность до 30 минут в формате онлайн, в удобное для вас время.
Мы пообщаемся про реальные задачи связанные с базами данных и вариантах обучения.

Чего точно не будет:
Никаких продаж с нашей стороны.

Благодарность:
Всем участникам интервью мы дадим в подарок курс по Machine learning c практикующим преподавателем из Stripe.

Приходите, будет уютно🙌
6👍1
📊 Эффективная работа с JSON в Go

В статье рассматриваются основные подходы для работы с JSON в языке Go. Большое внимание уделено определениям из документации, а также конкретным примерам.

🔗 Читать статью
🔗 Зеркало
7
🧰 Измерение производительности Git с помощью OpenTelemetry

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

🔍С помощью инструмента вы сможете определить формы данных, которые приводят к ухудшению производительности, заранее заметить проблемные тенденции и понять, где собственную производительность Git необходимо улучшить. Узнайте подробнее, как использовать новый опенсорсный компонент-приемник Trace2 и OpenTelemetry для сбора и визуализации телеметрии из ваших команд Git.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍10🔥2
🤖 8 лучших бесплатных курсов по ИИ и глубокому обучению

Расскажем о самых интересных и эффективных курсах, которые помогут начать карьеру AI/ML-разработчика. Ниже — подборка курсов, остальные детали читайте в статье.

👨‍🎓 Введение в искусственный интеллект
👨‍🎓 Основы машинного обучения
👨‍🎓 Быстрый старт в искусственный интеллект
👨‍🎓 Введение в Data Science и машинное обучение
👨‍🎓 ИИ для всех (AI for Everyone)
👨‍🎓 IBM Сертификат инженера по искусственному интеллекту (IBM AI Engineering Professional Certificate)
👨‍🎓 Сборник лекций Инженерной школы Стэнфордского университета
👨‍🎓 Полный курс машинного обучения (CS229 Стэнфордского университета)
👍86
🧰 Если вы проектируете сложные системы, вам может понравиться использовать диаграмму последовательности

Сложные архитектуры систем могут быстро стать запутанными и трудными для понимания — и здесь на помощь приходит диаграмма последовательности!

Она помогает сохранить ваш дизайн понятным и необходима, когда вы стремитесь:

🚀Отобразить рабочие процессы системы от начала до конца
🔍Объяснить взаимодействие между компонентами
📚Создать ясную и сжатую документацию
🔧Выявить недостатки дизайна архитектуры

👉 Один из инструментов, который поможет легко создать диаграмму последовательности с помощью текста: WebSequenceDiagrams.

#проектирование_систем
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥32