Библиотека программиста | программирование, кодинг, разработка
82.9K subscribers
3.83K photos
176 videos
89 files
6.88K links
Все самое полезное для программиста в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a5ba2901234b69883a4d46
Download Telegram
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных

Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу.

Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Несколько месяцев назад коллекция SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».

Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:

— игровой цикл;
— вывод игры;
— пользовательский ввод;
— решение проблемы изоляции данных;
— предотвращение кэширования.

Для управления состоянием игры и обработки игровых событий используются подзапросы и агрегатные функции.

🔗 Подробнее читайте в статье
🔗 Зеркало
🔥15😁8👍42
🤔 Кто-то из вас помнит Xenix?

Да, Microsoft пыталась сделать Unix в свое время. Билл Гейтс даже говорил об этом в журнале Unix World (~1985 год). Но потом они все такие:

Нет, забудьте Unix, мы сделаем Windows NT!


Что имеем сейчас? Microsoft всё-таки сделала большой шаг в сторону открытого исходного кода. Посмотрим, что будет дальше…
🤔16👍7🔥43
📈 Apache Superset — платформа визуализации и исследования данных

Она может заменить или дополнить инструменты бизнес-аналитики для многих команд, интегрируясь с различными источниками данных.

📦 Под капотом:
• No-code интерфейс для быстрого построения диаграмм.
• Мощный веб-редактор SQL для расширенных запросов.
• Легковесный семантический слой для быстрого определения кастомных измерений и показателей.
• Встроенная поддержка практически любой базы данных SQL или движка данных.
• Широкий спектр визуализаций для демонстрации данных: от простых столбчатых диаграмм до геопространственных визуализаций.
• Легковесный, настраиваемый уровень кэширования, помогающий снизить нагрузку на базу данных.
• Расширяемые роли безопасности и параметры аутентификации.
• API для программной настройки.
• Cloud-native архитектура.

👉 GitHub

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

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

👉Подписаться👈
3👍3
🪟 Операционная система в 1000 строк

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


— Внутри:

Автор показывает, как строить маленькую операционную систему шаг за шагом

🔗 Ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥10🎉2
😴 Писать код по ночам и в выходные — это нормально

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

🎯 Когда это становится проблемой?

1️⃣ Когда это превращается в культ.
2️⃣ Когда мы ожидаем того же от других.
3️⃣ Другие ожидают этого от нас.

🎯 Признаки, что пора остановиться:

• Ухудшение качества сна.
• Потеря социальных связей.
• Рост уровня стресса.
• Невозможность отвлечься от работы даже в личное время.

🎯 Как найти баланс?

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

Слушайте свои ритмы. Иногда разработка приносит радость, а иногда — усталость. Прислушивайтесь к себе.

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

Управляйте ожиданиями. Четко разграничивайте, что является работой, а что — личным увлечением.

👉 Читать статью полностью
24👍13🤔1💯1
ℹ️ Fidget: Библиотека для визуализации математики

Implicit surfaces — это такие математические модели, которые описывают объекты формулами вроде f(x,y,z) → d, где знак d определяет, внутри или снаружи находится точка. С помощью библиотеки Fidget можно быстро рендерить и оптимизировать такие модели.

➡️ Что делает Fidget?
Мешинг: создание 3D-моделей из математических представлений.

👉 Исходники на GitHub, поддержка WebAssembly, демо в браузере. Если интересуетесь CAD, графикой или просто любите математику, попробуйте Fidget
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔2❤‍🔥11😁1
🖥 SQL NULLs — странно себя ведут

Когда вы добавляете UNIQUE к столбцу в SQL, кажется логичным, что запись с одинаковыми значениями должна блокироваться. Но если в этой записи NULL, вас ждёт сюрприз: SQL позволяет вставлять несколько строк с одинаковыми NULL. Даже при UNIQUE-ограничении

➡️ Почему так?

В статье рассказано подробнее и приведены примеры с кодом. Но если кратко: NULL в SQL означает неизвестное значение. А поскольку неизвестные значения не равны друг другу, SQL трактует каждую строку с NULL как уникальную.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍265
🚀 Визуальный гайд по масштабируемости архитектуры

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

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

📌 Три основные проблемы масштабируемости:

1️⃣ Централизованные компоненты могут стать единой точкой отказа.
2️⃣ Компоненты с высокой задержкой — компоненты, которые выполняют трудоемкие операции.
3️⃣ Тесная связь компонентов усложняет масштабирование системы.

📌 Популярные методы повышения масштабируемости:

• Балансировка нагрузки: распределение запросов между несколькими серверами, чтобы избежать перегрузки одного сервера.
• Кэширование: хранение наиболее запрашиваемой информации в памяти.
• Обработка событий (Event-Driven Processing): асинхронная обработка для выполнения долгосрочных задач.
• Шардинг (Sharding): разделение большого набора данных на более мелкие части (шарды) для горизонтального масштабирования.

👉 Источник

#инфографика
👍74
🛠 Batch vs Stream Processing: ключевые различия

Batch Processing — обработка данных партиями с последующим выводом финального результата.

Stream Processing — обработка данных в режиме реального времени по мере их поступления.

Подробнее см. на изображении. ⚡️

#инфографика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤‍🔥11
📚👩‍💻 Напоминаем про наш полный курс «Самоучитель по Go для начинающих»

Мы написали и собрали для вас в одну подборку все 18 частей, подкрепленных практикой.

1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
15. Конкурентность. Горутины. Каналы
16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
17. Основы сетевого программирования. Стек TCP/IP. Сокеты. Пакет net
18. Протокол HTTP. Создание HTTP-сервера и клиента. Пакет net/http
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥23👍2
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
4👍1
🤦‍♂️ Ошибки, которые разработчики допускают в больших устоявшихся кодовых базах

Работа с легаси — одна из самых сложных вещей, которым приходится учиться разработчику. Вы не можете попрактиковаться в этом заранее (нет, работа с открытым исходным кодом не даёт такого же опыта). Личные проекты никогда не научат вас этому, потому что они обязательно будут небольшими и создаваться с нуля. 

Так что такое «большие устоявшиеся кодовые базы»? По мнению автора статьи, это:

— Десятки миллионов строк кода (скажем, ~5M).
— От 100 до 1000 инженеров работают над одной и той же кодовой базой.
— Первой рабочей версии кодовой базы не менее десяти лет.

Автор потратил десять лет на работу с этими кодовыми базами. Вот что он хотел бы знать с самого начала:

• Большие кодовые базы стоят того, чтобы с ними работать, поскольку они обычно платят вам зарплату.
• Самое важное — это согласованность.
• Никогда не начинайте работать над новой функциональностью, не изучив существующие подходы в кодовой базе.
• Если вы отклоняетесь от существующих шаблонов, у вас должна быть на это очень веская причина.
• Понимайте, как кодовая база работает в продакшене.
• Не рассчитывайте, что сможете протестировать все случаи — вместо этого полагайтесь на мониторинг.
• Удаляйте код при любой возможности, но делайте это очень осторожно.
• Сделайте всё, чтобы эксперты в своей области могли легко выявить ваши ошибки.
👍26😁21
👀 HR-эксперт: в 2025 году без ИИ-компетенций — никуда

Если вы не обновляли навыки последние 5 лет, то… увы, вы уже неквалифицированный работник 😐. Так считает HR-эксперт Moscow Business School Ирина Лялина.

Самые востребованные навыки будущего, как считает она:
— Умение работать с ИИ, чат-ботами и Big Data.

Также пригодятся водительские права нескольких категорий и опыт работы со сложным оборудованием.

И не забудьте добавить правильные ключевые слова в резюме — иначе его просто не заметят системы автоматического анализа.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁127🌚2👍1