Открытый канал ID 68940505778690

Обычный программист

Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций.

Разработка игр, создание и верстка сайтов, дизайн, уроки по схемотехнике, уроки по созданию приложений для IOS и Android и многое другое!

Каналов в рубрике
1 733
Место этого канала
№ 224
Открыть рубрику →
Открыть в MAX

Публикации за период

По реакциям

Поиск и вся лента — после бесплатной регистрации. Свои даты — по подписке; владелец канала видит их бесплатно. Сортировка по реакциям — по подписке. Зарегистрироваться

Загрузка…

Как работает DNS

1. Пользователь вводит домен: bytebytego.com
2. Поиск в кэше (браузер/ОС) — не найдено
3. DNS-запрос к резолверу
4. Поиск в кэше резолвера — не найдено
5. Запрос к корневому DNS-серверу (Root NS)
6. Ответ: адрес TLD .com
7. Запрос к TLD-серверу .com
8. Ответ: адрес авторитетного сервера для bytebytego.com
9. Запрос к авторитетному DNS-серверу
10. Ответ: запись A/AAAA — IP 172.67.21.11
11. Сохранение IP в кэше резолвера
12. Передача IP в браузер: 172.67.21.11
13. Сохранение IP в кэше браузера/ОС
14. HTTP-запрос: GET /index.html
15. HTTP-ответ: OK

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 86
Перейти в пост Открыть в MAX Сообщить о неточности
📦 cpp-sort — это коллекция высокоэффективных алгоритмов сортировки, написанная на C++. Она предоставляет как классические алгоритмы (например, quicksort, mergesort), так и более современные, такие как ska_sort и spreadsort.

🔧 Основные особенности:
- Простое подключение
- Упор на производительность: множество алгоритмов оптимизированы под современные CPU
- Совместимость с std::sort и пользовательскими компараторами
- Некоторые алгоритмы устойчивы (stable), другие — нет (для повышения скорости)
- Поддержка сортировки по ключу (projection)

💡 Если ты работаешь с C++ и тебе нужна кастомная или быстрая сортировка — обязательно стоит взглянуть. Особенно если std::sort не даёт нужного эффекта.

https://github.com/Morwenn/cpp-sort

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 330
Перейти в пост Открыть в MAX Сообщить о неточности
В 2002 году мир математики стал свидетелем исторического момента, когда российский математик Григорий Перельман представил первую из трех новаторских работ, представивших доказательство неуловимой гипотезы Пуанкаре. Эта гипотеза ставила в тупик математиков более столетия, что сделало ее одной из самых сложных нерешенных проблем в этой области.

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

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

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

Действия Перельмана оставили в мире больше вопросов, чем ответов. Его отказ как от медали Филдса, так и от премии в миллион долларов пролил свет на его глубоко укоренившиеся ценности и приоритеты. Это выдвинуло на первый план математика, движимого не похвалами или богатством, а непоколебимой преданностью делу чистой математики и поиску истины.

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

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 257
Перейти в пост Открыть в MAX Сообщить о неточности
▶ видео
📱 Google разрешила восстанавливать доступ к аккаунту с помощью селфи-видео.

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

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

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 216
Перейти в пост Открыть в MAX Сообщить о неточности
Почему Redis такой быстрый (несмотря на однопоточность)?

🔹 Хранение в памяти
Redis хранит все данные в оперативной памяти, где время доступа измеряется наносекундами, а не миллисекундами.

🔹 Однопоточный цикл событий
Redis обрабатывает команды в одном потоке, избегая блокировок, гонок и переключений контекста. Благодаря мультиплексированию ввода-вывода он эффективно обслуживает тысячи одновременных подключений через цикл событий.

🔹 Оптимизированные структуры данных
Redis предоставляет специализированные реализации списков, множеств, отсортированных множеств и хешей, оптимизированные для производительности и экономии памяти.

🔹 Эффективность ввода-вывода
Redis использует лёгкий текстовый протокол RESP для обработки сетевого I/O и поддерживает конвейеризацию, позволяя клиентам отправлять несколько команд в одном запросе.

🔹 Скрипты на стороне сервера
Встроенный движок Lua даёт возможность выполнять сложные многошаговые операции атомарно на сервере, убирая необходимость лишних сетевых запросов.

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 266
Перейти в пост Открыть в MAX Сообщить о неточности
Как избежать выгорания программисту 🔥👨‍💻

Выгорание – частая “болезнь” айтишников: дедлайны давят, код не сходится, а в голове постоянно мысли о задачах. Чтобы не оказаться “выгоревшим” через пару месяцев интенсивной работы, обратите внимание на эти практики:

1. Распознавайте первые признаки

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

Если вы заметили хотя бы пару пунктов – пора действовать заранее.

2. Организуйте рабочий процесс

🔹Чёткое планирование: разбейте крупные задачи на маленькие шаги. Каждодневный список дел (to-do) поможет “не тонуть” в мелочах.
🔹Техника Pomodoro: 25 минут работы + 5 минут отдыха. После 4 циклов — длинный перерыв 15–20 минут. Такой ритм позволяет сохранять свежесть мыслей.
🔹Ограничьте время “погружения”: не сидите за кодом по 12 часов подряд. Оптимальная рабочая смена для программиста – 6–8 часов с регулярными паузами.

3. Выделяйте время на восстановление

🔹Физическая активность: хотя бы 30 минут в день. Прогулка, лёгкая пробежка, упражнения на растяжку между задачами улучшают кровообращение и снимают напряжение.
🔹Сон и режим: ложитесь и вставайте в одно и то же время, даже в выходные. Качественный ночной сон (7–8 часов) – залог продуктивности и хорошего настроения.
🔹Цифровой детокс: вечером полностью отвяжитесь от гаджетов, чтобы мозг успел “отключиться” от задач. Ограничьте соцсети и мессенджеры минимум за час до сна.

4. Умейте сказать “нет”

🔹Реалистичные дедлайны: если видите, что не успеваете, обсудите с менеджером или заказчиком перенос. Лучше честно признаться, чем до последней минуты “ломать” себя.
🔹Не берите задачу сверх возможностей: если проект слишком сложный или сроки нереальны, предложите альтернативный подход или помощь коллег.

5. Баланс между “я” и “кодом”

🔹Хобби вне IT: найдите увлечение, не связанное с технологией — музыка, рисование, спорт, настольные игры. Это переключит мозг и наполнит энергией.
🔹Кружки и сообщества: общайтесь с теми, кто разделяет ваши интересы: книжные клубы, клубы настольных игр, спортивные секции. Социальная поддержка помогает “не застрять” только в рабочих задачах.

6. Периодические “мини-отпуска”

🔹Отпуск хотя бы раз в полгода: даже короткая поездка на уик-энд без работы способна “перезагрузить” голову.
🔹Регулярные выходные без диагоналки: не проверяйте почту, не отвечайте на рабочие сообщения. Дайте себе реально отдохнуть.

7. Постоянное обучение – но без перегрузок

🔹Учитесь постепенно: вместо марафонов видеокурсов лучше 30 минут в день. Так новые знания встраиваются в мозг легче и без стресса.
🔹Не гонитесь за всеми трендами: выбирайте то, что важно именно для ваших проектов и целей, а не всё подряд.

8. Работайте в команде и делегируйте

🔹Парное программирование (pair programming): совместная работа помогает находить ошибки быстрее и снижает психологическую нагрузку.
🔹Помощь коллег: если застряли, не мучайтесь в одиночку – попросите совета. Иногда взгляд со стороны решает проблему за пару минут.

9. Осознанность и простые практики

🔹Медитация или дыхательные упражнения (5–10 минут утром/вечером). Помогают снизить уровень тревожности.
🔹Ведение дневника: записывайте мысли и идеи, избавляясь от “ментального шума”. Это упорядочивает внутреннее состояние.

10. Регулярно оценивайте свой “уровень выгорания”

🔹Раз в месяц задавайте себе вопросы: “Насколько я воодушевлён проектом?”, “Что вызывает раздражение?”, “Когда в последний раз я отдыхал без мыслей о работе?”
🔹Если градус недовольства растёт – сразу включайте превентивные меры: пора добавить отдыха, сменить активность или обратиться к ментору/психологу.

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 282
Перейти в пост Открыть в MAX Сообщить о неточности
🐳 Как на самом деле работает Docker? Взгляд изнутри

Мы привыкли писать в терминале docker run и магия происходит сама собой. Но что стоит за этими командами? Давайте разберем архитектуру Docker на одной наглядной схеме.

Все держится на трех китах:

1️⃣ Docker Client - это ваш терминал. Вы отдаете приказы (build, pull, run), а клиент передает их главному исполнителю.

2️⃣ Docker Host - «мозги» и «мускулы» системы. Здесь живет Daemon, который слушает команды клиента и управляет объектами:

🔴Images (Образы): Чертежи или слепки ваших приложений (MySQL, Nginx, Ubuntu).
🔴Containers (Контейнеры): Запущенные версии этих образов (живые процессы).

3️⃣ Docker Registry - склад (например, Docker Hub). Здесь хранятся образы, доступные всему миру или вашей команде.

🎨 Что значат стрелки на схеме?

🔹 Build (Синяя): Клиент командует собрать образ из Dockerfile. Демон создает его на хосте.
🔸 Push (Оранжевая): Готовый образ отправляется с хоста в реестр (в облако).
💖 Pull (Розовая): Нужно скачать образ? Демон тянет его из реестра к себе на хост.
💚 Run (Зеленая): Самая частая команда. Демон берет локальный образ и разворачивает из него рабочий контейнер.

📌 Сохраняй шпаргалку в «Избранное», чтобы не путаться в потоках данных!

#docker #devops #шпаргалка #обучение

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 293
Перейти в пост Открыть в MAX Сообщить о неточности
RAG против Агентов (RAGs vs Agents)

Спросите LLM (большую языковую модель) о данных вашей компании, и она начнет гадать. Два паттерна, которые исправляют это - RAG и агенты, и они решают разные задачи.

RAG (Поисково-ориентированная генерация)

RAG объединяет LLM с поиском информации, чтобы обосновать ответы фактами. Этот процесс состоит из 4 шагов:

• Шаг 1: Запрос пользователя (User Query) векторизуется и отправляется на этап поиска (Retrieval).
• Шаг 2: Компонент поиска извлекает наиболее релевантные фрагменты из базы знаний (Knowledge Base: PDF-файлы, вики-страницы и т.д.).
• Шаг 3: Эти фрагменты вставляются в промпт в качестве контекста.
• Шаг 4: LLM пишет ответ, опираясь на извлеченный текст (Answer grounded).

Особенности: Один поиск. Одна генерация. Дешево, предсказуемо и легко поддается отладке.



Агенты (Agents)

Агенты оборачивают LLM в цикл рассуждений с набором инструментов (Tools) для выполнения конкретных действий.

• Шаг 1: Запрос пользователя поступает в среду выполнения агента (Agent runtime) — цикл рассуждений вокруг LLM.
• Шаг 2: LLM анализирует цель и выбирает нужный инструмент (Чтение, Запись, Редактирование, Bash и т.д.).
• Шаг 3: Среда выполнения (runtime) запускает инструмент и передает результат обратно в LLM.
• Шаг 4: LLM снова проводит рассуждения, выбирает следующий инструмент и повторяет этот цикл, пока задача не будет выполнена.

Особенности: Более гибко. Расходует больше токенов. Сложнее отлаживать, так как ошибки накапливаются от шага к шагу.


Главное эмпирическое правило (из центральной части картинки):

• Используйте RAG, когда ответ находится внутри ваших документов.
• Используйте Агента, когда решение задачи требует действий в других системах.

♻️ Сделай репост, чтобы помочь другим.

👉 @oproger
Просмотры: 416
Перейти в пост Открыть в MAX Сообщить о неточности
Вся лента — после бесплатной регистрации
ВКонтакте Телеграм Одноклассники
Избранное в datool.ru

Следите за каналом в личном кабинете

Зарегистрируйтесь в datool.ru, чтобы добавить канал «Обычный программист» в избранное и отслеживать его показатели.

Зарегистрироваться
Для владельцев каналов

Подтвердите свой канал

Войдите или зарегистрируйтесь в datool.ru, затем добавьте нашего бота в канал по инструкции в личном кабинете. После проверки владения замок исчезнет и вам станет доступно управление каналом.

Войти или зарегистрироваться

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти