ch
Feedback
METANIT.COM

METANIT.COM

前往频道在 Telegram

Канал о программировании и разработке сайта metanit.com

显示更多
6 083
订阅者
无数据24 小时
-77 天
-5530 天
帖子存档
Шпаргалка по основным базовым функциям языка Python #python
+1
Шпаргалка по основным базовым функциям языка Python #python

SOC Forum 2025 онлайн: все профи кибербеза в одном месте 📅 18–20 ноября пройдет ключевое событие Недели кибербезопасности —
SOC Forum 2025 онлайн: все профи кибербеза в одном месте 📅 18–20 ноября пройдет ключевое событие Недели кибербезопасности — SOC Forum. 👍 Ведущие эксперты соберутся, чтобы обсудить самые острые темы и представить лучшие практические кейсы: каждый доклад прошел строгий отбор, так что вас ждет концентрат пользы. ⚡ Станьте частью форума даже онлайн! Помимо прямой трансляции лекций, для удаленных участников будут работать «Кибербез ТВ» и радиостанция «ЭХО лОСЕЙ» — с новостными дайджестами, эксклюзивными интервью, мастер-классами и специальными сюжетами, доступными только в онлайн-формате. ✅ Зарегистрируйтесь, и мы пришлем напоминание перед стартом. Узнать больше #реклама 16+ registration.forumsoc.ru О рекламодателе

Как LLM воспринимают мир (описание к предыдущему посту) Когда вы вводите фразу "Hello world" в ChatGPT или Claude, модель не обрабатывает эти буквы и пробелы так, как вы читаете этот пост прямо сейчас. Вместо этого она преобразует всё в числа посредством процесса, о котором большинство людей даже не задумывается. Сначала происходит предварительная обработка. Текст нормализуется: символы Unicode, особенности пробелов и специальные символы очищаются и стандартизируются. Фраза "Hello world" превращается в формат, с которым модель может работать. Затем наступает очередь токенизации. Здесь начинается самое интересное. Модель разбивает текст на токены, и существует несколько подходов к этому: 1. Посимвольная токенизация разбивает текст на отдельные символы. Фраза "Hello world" становится ["H", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]. Этот метод прост, но неэффективен. 2. Пословная токенизация разбивает текст на целые слова. ["Hello", "world"]. Такой подход выглядит более чистым, но сталкивается с трудностями при обработке редких слов и создаёт огромные словари. 3. Подсловная токенизация — это то, что фактически используют современные LLM. GPT, Gemini, Claude — все они полагаются на этот метод. Фраза "Hello world" преобразуется примерно так: ["Hell", "o", "world"]. Этот метод обеспечивает баланс между эффективностью и гибкостью, обрабатывая редкие слова путём разбиения их на известные подсловные части. Последний шаг — это присвоение идентификаторов токенов. Эти подсловные части сопоставляются с числами, например, [15496, 345, 995]. Каждый идентификатор токена соответствует вектору встраивания внутри модели. Именно эти векторы обрабатывает нейронная сеть.

Как LLM воспринимают мир (описание в следующем посте)
Как LLM воспринимают мир (описание в следующем посте)

Студентам самого известного колледжа Екатеринбурга пригрозили отчислением. За отказ установить MAX В Екатеринбурге студентам колледжа имени Ползунова угрожали отчислениями — под раздачу попали те, кто отказался устанавливать мессенджер MAX. Один из учащихся рассказал, что 23 октября в их группе провели собрание. Тех, кто не захотел подключаться к новой соцсети, под диктовку заставили написать заявление об отчислении по собственному желанию. Заведующая одного из отделений колледжа собрала все заявления и дала обучающимся время до понедельника. Для наглядности текст заявления даже написали на доске в аудитории. https://www.e1.ru/text/education/2025/10/23/76088087/

Рабочий процесс Docker (описание предыдущего поста) #### Шаг 1: Написание кода приложения Начните с создания вашего приложения с использованием предпочитаемого языка программирования (например, Node.js, Python или Java). Убедитесь, что все зависимости проекта чётко определены в конфигурационных файлах, таких как package.json или requirements.txt. #### Шаг 2: Создание Dockerfile Dockerfile — это шаблон, определяющий, как будет собираться ваш образ. Пример:
# Использование базового образа
FROM node:20

# Установка рабочего каталога
WORKDIR /app

# Копирование файлов проекта
COPY . .

# Установка зависимостей
RUN npm install

# Открытие порта приложения
EXPOSE 3000

# Команда для запуска приложения
CMD ["npm", "start"]
Этот файл гарантирует, что ваше приложение будет работать стабильно в любой среде. #### Шаг 3: Сборка Docker-образа Выполните команду для сборки вашего образа:
docker build -t myapp:latest .
Флаг -t присваивает вашему образу имя и версию. Docker считывает инструкции из Dockerfile и создаёт повторно используемый образ. #### Шаг 4: Запуск Docker-контейнера Используйте образ для запуска контейнера:
docker run -d -p 3000:3000 myapp:latest
Флаг -d запускает контейнер в фоновом режиме. Флаг -p сопоставляет порт контейнера с портом вашего локального компьютера. Приложение теперь доступно локально по адресу localhost:3000. #### Шаг 5: Управление контейнерами - Список запущенных контейнеров:
  docker ps
  
- Остановка контейнера:
  docker stop <id_контейнера>
  
- Удаление контейнера:
  docker rm <id_контейнера>
  
- Удаление образа:
  docker rmi myapp:latest
  
#### Шаг 6: Использование Docker Compose (опционально) Для приложений с несколькими контейнерами (например, приложение + база данных) используйте файл docker-compose.yml. Пример:
version: '3'
services:
  app:
    build: .
    ports:
      - "3000:3000"
  db:
    image: mongo
    ports:
      - "27017:27017"
Запуск всех сервисов:
docker-compose up -d
#### Шаг 7: Публикация образов в Docker Hub - Вход в Docker Hub:
  docker login
  
- Присваивание тега вашему образу:
  docker tag myapp username/myapp:v1
  
- Публикация в Docker Hub:
  docker push username/myapp:v1
  
Это позволяет другим пользователям (или вашему CI/CD конвейеру) загружать и развёртывать ваш образ. #### Шаг 8: Развёртывание в продакшене Используйте платформы вроде AWS ECS, Kubernetes или Docker Swarm для развёртывания в масштабе. Эти платформы загружают ваши образы и автоматически управляют оркестровкой контейнеров, сетью и масштабированием.

Рабочий процесс Docker (подробное описание в следующем посте)
Рабочий процесс Docker (подробное описание в следующем посте)

В руководство по языку Java добавлены новые статьи: Переменные volatile в многопоточных приложениях https://metanit.com/java/
В руководство по языку Java добавлены новые статьи: Переменные volatile в многопоточных приложениях https://metanit.com/java/tutorial/8.16.php Атомарность и Atomics. Потокобезопасность без блокировок в многопоточных приложениях https://metanit.com/java/tutorial/8.17.php #java

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

Компания JetBrains на днях выпустила отчёт о состоянии экосистемы разработчиков в 2025 году. В нем приняли участие 24 534 раз
+4
Компания JetBrains на днях выпустила отчёт о состоянии экосистемы разработчиков в 2025 году. В нем приняли участие 24 534 разработчика из 194 стран Некоторые выводы Наиболее используемый язык - Python TypeScript демонстрирует самый впечатляющий рост в реальном использовании за последние пять лет. Rust, Go и Kotlin тоже постепенно укрепляют свои позиции, хотя их успехи не столь заметны, как у TypeScript. А PHP, Ruby и Objective-C продолжают уверенно терять популярность. Индекс Language Promise от JetBrains оценивает языки по трём критериям: рост, стабильность и готовность разработчиков их осваивать. Согласно этому индексу, в 2025 году наибольший потенциал роста демонстрируют TypeScript, Rust и Go, тогда как JavaScript, PHP и SQL, судя по всему, достигли стадии зрелости. Список самых высокооплачиваемых разработчиков возглавлавила Scala — 38%, хотя этот язык является основным всего у 2% специалистов. Похоже, сказывается узкая специализация https://devecosystem-2025.jetbrains.com/

Согласно внутренней утечке, Amazon Web Services уволила до 40% DevOps-инженеров, заменив их экспериментальной AI-системой автоматического управления инфраструктурой с целью снизить расходы и ускорить обслуживание облака. Новая AI-система вроде как способна автоматически исправлять ошибки IAM, восстанавливать виртуальные сети, перезапускать инстансы и даже откатывать неудачные деплои Lambda без участия человека. Однако через несколько дней после запуска системы AWS столкнулась с масштабным сбоем, который затронул Snapchat, Roblox и другие крупные сервисы. По данным 80.lv, инженеры утверждают, что именно новая автономная система спровоцировала каскадные ошибки при синхронизации кластеров. Amazon официально не комментирует ситуацию. Но по cлухам, внутри компании идёт обсуждение — стоит ли давать ИИ слишком много контроля над критической инфраструктурой. https://80.lv/articles/amazon-allegedly-replaced-40-of-aws-devops-workers-with-ai-days-before-crash

Наглядно умножение матриц в нейронных сетях
Наглядно умножение матриц в нейронных сетях

Пул подключений в backend‑разработке (продолжение предыдущего поста) Введение → Пул подключений — это техника повторного использования подключений с базой данных вместо создания нового соединения для каждого запроса клиента. → Это повышает производительность, снижает задержки и оптимизирует использование ресурсов в backend‑системах. → Широко применяется в приложениях, обрабатывающих множество параллельных запросов к базе данных. Как работает пул подключений → При запуске приложения создаётся пул (набор) соединений с базой данных. → Каждый входящий запрос берёт соединение из пула, выполняет запрос и возвращает соединение после завершения. → Свободные соединения повторно используются для будущих запросов, что позволяет избежать затрат на открытие и закрытие новых подключений. Почему пул подключений необходим → Создание и уничтожение подключений с базой данных требует значительных ресурсов. → Без пулирования высокий трафик может перегрузить базу данных запросами на подключение. → Пул подключений обеспечивает стабильность и эффективность при пиковых нагрузках. Преимущества пула подключенийПовышение производительности → Сокращает время, затрачиваемое на установление новых подключений. → Оптимизация ресурсов → Ограничивает количество активных подключений. → Масштабируемость → Эффективно обрабатывает множество параллельных запросов. → Надёжность → Предотвращает перегрузку базы данных и исчерпание подключений. Ключевые параметры пула подключенийМаксимальное количество подключений → Определяет, сколько подключений может одновременно содержать пул. → Время ожидания для свободных подключений → Время, по истечении которого свободные соединения закрываются. → Срок жизни соединения → Максимальный срок существования соединения до его повторного создания. → Политика повторных попыток → Определяет, как обрабатываются неудачные соединения (повторные попытки или замена). Распространённые инструменты и библиотекиNode.jspg-pool для PostgreSQL, mysql2 pool для MySQL. → Java → HikariCP и Apache DBCP для управления соединениями JDBC. → Python → Пул подключений в SQLAlchemy и поддержка пула в psycopg2. → .NET → Встроенное пул подключений в ADO.NET. Рекомендации → Настраивайте размер пула исходя из ожидаемой нагрузки и возможностей базы данных. → Регулярно отслеживайте использование подключений и показатели производительности. → Корректно закрывайте неиспользованные соединения, чтобы предотвратить утечки. → Комбинируйте пулирование с логикой повторных попыток для повышения отказоустойчивости. → Избегайте длительных запросов, которые удерживают соединения занятыми. Аналогия → Представьте ресторан с ограниченным количеством столиков (подключений). → Посетители (запросы) обслуживаются, когда освобождается столик, а после ухода гостей столик повторно используется. → Без пулирования каждому посетителю требовалось бы каждый раз готовить новый столик — это неэффективно и медленно.

Пул подключений в backend‑разработке (продолжение в следующем посте)
+1
Пул подключений в backend‑разработке (продолжение в следующем посте)

Быстрый совет по Linux: Если вам нужно создать несколько директорий сразу, не обязательно делать это поочерёдно. Команда mkdi
Быстрый совет по Linux: Если вам нужно создать несколько директорий сразу, не обязательно делать это поочерёдно. Команда mkdir поддерживает расширение с помощью фигурных скобок — это позволяет за один раз создать множество вложенных директорий.
mkdir -p ~/scripts/{site-01,site-02}/{backup,monitoring,network}
Эта команда моментально создаёт папки для двух сайтов, причём у каждого — свои поддиректории: backup, monitoring и network. Отличный способ сэкономить время и поддерживать упорядоченную структуру директорий. #linux

Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная проф
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰 Научись ей бесплатно! - Бесплатный доступ - Разбор ДЗ от наставника - Мощные кейсы в портфолио Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе

Следующее поколение разработчиков
Следующее поколение разработчиков

"Роскомнадзор принимает меры по частичному ограничению работы иностранных мессенджеров WhatsApp и Telegram "для противодействия преступникам", сообщила надзорная служба. Эти мессенджеры — основные сервисы для обмана и вымогательства денег, вовлечения в диверсионную и террористическую деятельность россиян, заявили в Роскомнадзоре со ссылкой на правоохранительные органы и жалобы граждан. «Неоднократно направлявшиеся требования о принятии мер противодействия владельцами мессенджеров проигнорированы. Для противодействия преступникам в соответствии с материалами правоохранительных органов принимаются меры по частичному ограничению работы иностранных мессенджеров», — говорится в сообщении. 21 октября жители юга России снова пожаловались на сбои в работе мессенджера Telegram, а также на работу WhatsApp. https://www.rbc.ru/politics/22/10/2025/68f8b08c9a7947cd6de9b5da

Как математики видят различные вещи
Как математики видят различные вещи

Лестница проектирования систем (продолжение предыдущего поста) Проектирование систем — это не единая глобальная концепция. Это лестница. Большинство инженеров пытаются сразу перейти к «распределённым системам», а потом удивляются, почему всё рушится под нагрузкой. Масштабирование нельзя просто скопировать и вставить. Его нужно развивать — шаг за шагом. ### ОСНОВЫ Вы не можете масштабировать то, чего не понимаете. Цель этого уровня — понять базовые строительные блоки того, как данные поступают в систему и выходят из нее. Ступеньки этого уровня: API и коммуникация Знайте REST, gRPC и GraphQL; не только синтаксис, но и когда каждый из них подходит. Балансировка нагрузки и обратные прокси Распределение запросов, поддержание согласованности сессий и предотвращение единых точек отказа. Кэширование Мастерство в том, что кэшировать, когда аннулировать и как политики TTL и вытеснения влияют на производительность. Базы данных и хранилище Изучение компромиссов между реляционными и нереляционными системами, индексирования, нормализации (до BCNF) и транзакций. Сетевые технологии и HTTP Понимание того, как данные перемещаются: запросы, ответы, задержки и пропускная способность. ### МЕХАНИКА Теперь вы создаете системы, а не просто сервисы. Цель этого уровня — создать системы, которые выдерживают реальные условия: задержки, сбои и параллелизм. Основные моменты этого уровня: Безопасность и аутентификация Охватываем основы: TLS, JWTs, OAuth2, ограничение скорости и дизайн с минимальными привилегиями. Доступность и надежность Понимание SLA, SLI и SLO; и проектирование для плавного снижения производительности, а не слепого времени безотказной работы. Наблюдаемость Реализация логирования, трассировки (OpenTelemetry, Sentry) и метрик для анализа, а не шума. Согласованность данных и транзакции Применение шаблонов распределенных транзакций (SAGA, 2PC, Outbox, CDC). Асинхронное взаимодействие Использование очередей сообщений и шинков событий для децентрализации систем (Kafka, RabbitMQ, MQTT и т.д.). Шаблоны масштабирования Изучение вертикального и горизонтального масштабирования, чтения и записи, а также стратегий партиционирования. ### ПРОДВИНУТЫЙ УРОВЕНЬ Теперь вы не спрашиваете «как это построить», а «как это ведет себя под нагрузкой». Создавайте системы, которые адаптируются, восстанавливаются и предсказуемо масштабируются по мере роста сложности. Основные моменты этого уровня: Инженерия устойчивости Предохранители, повторные попытки с отступами, тестирование на хаос и разделение систем. Оптимизация производительности Настройка узких мест на всех уровнях: БД, кэш, сеть, сериализация и ввод-вывод. Эволюция системы Проектирование для изменений: сине-зеленые развертывания, флаги функций и плавные миграции. Моделирование данных в масштабе Полиглот-персистентность, материализованные представления, эволюция схемы и аналитические конвейеры. Архитектуры, управляемые событиями Полностью децентрализованные системы с богатыми, самодостаточными событиями, которые устраняют обратные вызовы к источникам. Теория распределенных систем CAP, PACELC, идемпотентность, конечная согласованность; и когда каждый компромисс приемлем.