Библиотека программиста | программирование, кодинг, разработка
88.3K subscribers
3.14K photos
148 videos
88 files
6.36K links
Все самое полезное для программиста в одном канале.

Список наших каналов: https://tttttt.me/proglibrary/9197
Учиться у нас: https://proglib.io/w/a32a0d94

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
👩‍💻 PGlite — Postgres в WASM

Эта сборка упакована в клиентскую TypeScript-библиотеку, которая позволяет запускать Postgres в браузере, Node.js и Bun без необходимости устанавливать какие-либо другие зависимости. Занимает 3,7 МБ в сжатом виде.

👩‍💻 GitHub
👉 Playground
Please open Telegram to view this post
VIEW IN TELEGRAM
big-o-cheatsheet.pdf
254.8 KB
🤔 Вычислительная сложность алгоритмов: удобная шпаргалка

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

Что это такое?

Вычислительная сложность пытается ответить: как изменятся время исполнения алгоритма и объём занятой памяти в зависимости от размера входных данных? Тут вводится понятие асимптотической сложности. Это математическая модель, описывающая поведение ограничений на ресурсы (например, время выполнения или использование памяти) в пределе, когда размер входных данных стремится к бесконечности. Алгоритм с меньшей асимптотической сложностью является более эффективным для всех входных данных.

 Для асимптотической сложности алгоритма используется следующая нотация: 𝑂
(«О»-большое), которое описывает верхнюю границу времени. 

✍️ Категории алгоритмической сложности в 𝑂-нотации:

- Постоянное время: 𝑂(1)
Время выполнения не зависит от количества элементов во входном наборе данных.
- Линейное время: 𝑂(𝑁)
Время выполнения пропорционально количеству элементов в наборе.
- Логарифмическое время: 𝑂(log𝑁)
Время выполнения пропорционально логарифму от количества элементов в наборе.
- Линейно-логарифмическое время: 𝑂(𝑁log𝑁)
Время выполнения больше чем, линейное, но меньше квадратичного.
- Квадратичное время: 𝑂(𝑁^2)
Время выполнения пропорционально квадрату количества элементов в наборе.

🔗 Ссылка на отличную шпаргалку
This media is not supported in your browser
VIEW IN TELEGRAM
🥤🛡️ Как сделать Flask-приложение неуязвимым: полное руководство по защите от хакерских атак

Лучшие практики по созданию надежного и безопасного Flask-приложения, включая защиту от XSS/CSRF и API, созданных с помощью Flask.

👉 Читать статью
👉 Зеркало
🔍 Скрытые коммиты GitHub и где они обитают

🤔 Было у вас такое, когда вы закоммитили то, что не должно было попасть в публичный репозиторий? Ну «секреты» там всякие, или еще что! «А в чем проблема?» — спросите вы. Дело в том, что перезаписать историю коммитов GitHub-репозитория можно, но старые коммиты физически не удаляются с серверов GitHub. Это означает, что хотя эти коммиты не отображаются в обычной истории коммитов и не клонируются с репозиторием, они все еще доступны через API.

🛠 GitHub API предоставляет информацию о различных событиях в репозитории, включая PushEvent. Даже если коммит был удален из истории, событие PushEvent, связанное с этим коммитом, все еще может быть доступно через API. Это позволяет определить хеш удаленного коммита и обратиться к нему. Читайте подробнее исследование на эту тему или воспользуйтесь Python-скриптом Github Secrets, чтобы проверить свои репозитории.
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями

👉Подписаться👈
🐱🎨🙏🤖 10 самых странных языков программирования, о которых вы никогда не слышали

Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.

👉 Читать статью
👉 Зеркало
🔥 На прошлой неделе представлена версия Git 2.44

📌 По традиции публикуем мини-обзор новых фич:

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

2️⃣ Быстрые перебазирования с git replay: новая команда предлагает альтернативу git rebase, обеспечивая более высокую производительность и возможность работы в bare-репозиториях, а также обработку нескольких веток одновременно.

3️⃣ Автоматическое слияние с --autosquash в неинтерактивных перебазированиях: в новой версии, функция autosquash теперь работает и в неинтерактивных режимах перебазирования, позволяя автоматически применять изменения fixup! и squash! без необходимости вручную редактировать список задач.

4️⃣ Улучшенные подсказки и новые возможности сортировки: Git 2.44 предлагает улучшенные подсказки для пользователей и новые опции для сортировки в командах, таких как git for-each-ref.

5️⃣ Расширенные возможности работы с путями и файлами: в новой версии добавлены новые атрибуты для работы с путями файлов, позволяя более гибко управлять добавлением файлов в индекс.

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

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
This media is not supported in your browser
VIEW IN TELEGRAM
🔎 Пошаговый разбор работы базового поискового движка

1️⃣ Crawling
2️⃣ Indexing
3️⃣ Ranking
4️⃣ Querying

👉 Источник

#инфографика
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Представьте ситуацию, что вы можете стабильно получать одинаковые деньги как в стартапе, так и в большой компании. Что бы вы выбрали?

🤩 — стартап, горящие глаза и вот это всё
👍 — большую компанию! Там можно быстрее набраться коммерческого опыта
🤔 — свой вариант (напишу в комментариях)

#холивар
This media is not supported in your browser
VIEW IN TELEGRAM
🧰 GitButler — инструмент управления ветками Git, созданный для современных workflow (работает пока только на macOS/Linux). Это Git-клиент, который позволяет быстро организовывать изменения файлов в отдельные ветки, сохраняя при этом их применение к вашей рабочей директории.

☑️ Основные особенности включают управление несколькими ветками одновременно с помощью «виртуальных веток», удобное управление коммитами (например, отмена, изменение, слияние), интеграцию с GitHub и, конечно же, функции ИИ.

💡 Короче говоря, это более гибкая версия git add -p и git rebase -i, позволяющая эффективно работать с несколькими ветками.

👉 GitHub
👉 Сайт

#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Коллеги, сворачиваем лавочку

🤨 Дженсен Хуанг, основатель и гендир Nvidia, на саммите World Government Summit в Дубае высказался о будущем мира в новой реальности ИИ и его влиянии на нашу с вами карьеру. По словам Хуанга, доминировавший в течение последних 10-15 лет призыв учиться программированию или обучать этому детей, а также стремиться к карьере в области компьютерных наук, теперь устарел.

🗣 Основатель Nvidia утверждает, что благодаря достижениям в области ИТ потребность в технических специалистах и количество технических рабочих мест в долгосрочной перспективе сократятся. Он говорит, что задача создателей компьютерных технологий — сделать так, чтобы никому не пришлось программировать, и чтобы языком программирования был человеческий язык. Таким образом, каждый человек в мире теперь является программистом, что является чудом ИИ.

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

🤯 Хуанг также отмечает, что совет «учиться программированию» всегда казался ему неправильным, т. к. у всех нас ограниченное количество времени, и если мы тратим его на одно направление, мы автоматически не можем инвестировать его во что-то другое. Другими словами, он советует не учиться программированию, а учиться быть отличным в чем-то полезном, чем бы это ни было. ИИ всегда будет помогать в этом.

#назлобудня
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Знания — сила! Что должен изучить каждый программист?

Мы запускаем опрос среди наших читателей, чтобы выяснить, какие ключевые компетенции необходимо развивать программисту на текущий момент. Какие направления стоит изучать в первую очередь? Уровень каких знаний влияет на зарплату в отрасли?

Мы проведем анализ ответов и составим ТОП-лист навыков, которые не помешают освоить каждому программисту и разработчику для успешного карьерного роста!

👉 Пройти опрос
⚡️Свершилось: канал с книгами только по Java

Мы создали для вас канал с самыми полезными книгами по Java — подписывайтесь!

👉Книги для джавистов | Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🧰 Как Uber обслуживает более 40 млн rps с помощью встроенного кэша

Docstore — распределенная база данных Uber, построенная на основе MySQL. Храня десятки ПБ данных и обслуживая десятки миллионов запросов в секунду, это один из крупнейших механизмов базы данных в Uber, используемый микросервисами из всех бизнес-вертикалей.

С момента ее создания в 2020 году количество пользователей и юзкейсов Docstore значительно выросло. Проблема ясна — надо масштабироваться. В качестве решения команда Uber написала систему для кэширования CacheFront. Впечатляющие результаты внедрения и полезные практические наработки — под катом.