Библиотека программиста | программирование, кодинг, разработка
82.5K subscribers
3.88K photos
185 videos
89 files
6.93K links
Все самое полезное для программиста в одном канале.

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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5ba2901234b69883a4d46
Download Telegram
Очевидно, что в открытом виде пароли в базе никто уже не хранит. Хранить хеш пароля — не всегда хорошая идея, т. к. его можно восстановить по радужным таблицам.

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

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

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
👨‍💻 9 мифов об IT и найме айтишников

Развеиваем мифы об ИТ-специалистах, их зарплате, востребованности и процессе найма.

🔗 Читать статью
🔗 Зеркало
💯19🥱4🌚2
🤩 Гайды с кликабельными иллюстрациями — отдельный вид искусства. Особенно когда они рассказывают про не самые очевидные вещи в программировании или информатике.

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

🔢 Хеширование
🤯 Выделение памяти
🏄 Балансировка нагрузки
16👍8
Эволюция микросервисной архитектуры Airbnb за последние 15 лет: иллюстрация от ByteByteGo (Alex Xu) по мотивам этого выступления на конференции

Микросервисная архитектура Airbnb прошла три основных этапа и продолжает развиваться:

1️⃣Монолит (2008 — 2017)
Сайт Airbnb начинался как простая торговая площадка для хозяев и гостей. Это был огромный монолит на Ruby on Rails.

📌В чем проблема?
— проблемы масштабирования;
— медленный деплой;
— снижение скорости разработки.

2️⃣Микросервисы (2017 — 2020)
Микросервис был призван решить эти проблемы. В микросервисной архитектуре было 4 ключевых сервиса, которые находились за API gateway:
— fetching сервис;
— сервис бизнес-логики;
— workflow сервис;
— UI aggregation сервис.

📌В чем проблема?
Разработчикам было трудно управлять сотнями сервисов и зависимостей.

3️⃣Микро+макросервисы (2020 — настоящее время)
Над этим сейчас работает Airbnb. Гибридная модель микро- и макросервисов фокусируется на унификации API.

#проектирование_систем
👍15