METANIT.COM
6.24K subscribers
1.79K photos
86 videos
10 files
1.26K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Процесс доставки email
(продолжение предыдущего поста)

Доставка электронного письма (email) состоит из нескольких этапов, которые можно проследить по схеме:

1. Отправка письма (Push) через MUA (Mail User Agent):
- Пользователь пишет письмо с помощью почтового клиента (MUA) — например, Outlook, Thunderbird или веб-интерфейса Gmail.
- MUA инициирует отправку письма (обозначено как «push»).

2. Передача письма на сервер отправителя (Sender Mail Server) через MSA (Mail Submission Agent):
- Письмо передаётся на почтовый сервер отправителя через MSA.
- MSA — это агент, который принимает письмо от MUA и передаёт его дальше для маршрутизации.
- Используется протокол SMTP (Simple Mail Transfer Protocol) для передачи письма от MUA к MSA.

3. Передача письма внутри сервера отправителя (от MSA к MTA):
- После приёма письма MSA передаёт его MTA (Mail Transfer Agent) — агенту, отвечающему за пересылку писем между серверами.
- Внутри сервера отправителя это происходит также через протокол SMTP.

4. Маршрутизация письма через промежуточные серверы (Relay):
- MTA на сервере отправителя определяет маршрут доставки письма к получателю, возможно, используя промежуточные почтовые серверы (релейы).
- Письмо пересылается от одного MTA к другому через интернет с использованием протокола SMTP.
- На схеме показан этап «Relay» (релей), где письмо может проходить через несколько серверов перед достижением конечного пункта.

5. Прибытие письма на сервер получателя (Receiver Mail Server):
- Письмо достигает почтового сервера получателя (Receiver Mail Server).
- На этом сервере MTA обрабатывает входящее письмо и передаёт его MDA (Mail Delivery Agent) — агенту доставки.
- MDA отвечает за финальную доставку письма в почтовый ящик пользователя.

6. Доставка письма в почтовый ящик (Mailbox):
- MDA помещает письмо в почтовый ящик пользователя на сервере получателя.
- Почтовый ящик хранится на сервере и доступен для чтения.

7. Получение письма пользователем (Pull) через MUA и POP3/IMAP:
- Пользователь запрашивает свои письма с помощью MUA (например, почтового клиента на ПК или смартфоне).
- Для получения писем используются протоколы POP3 (Post Office Protocol version 3) или IMAP (Internet Message Access Protocol).
- Клиент MUA «забирает» (pull) письма с сервера и отображает их пользователю.

Таким образом, путь email выглядит так: MUA отправителя → MSA → MTA (сервер отправителя) → промежуточные MTA (релейы) → MTA (сервер получателя) → MDA → почтовый ящик → MUA получателя (через POP3/IMAP).

Ключевые компоненты:
- MUA — клиентская программа для отправки/получения писем.
- MSA — принимает письма от MUA.
- MTA — пересылает письма между серверами.
- MDA — доставляет письма в почтовый ящик.
- POP3/IMAP — протоколы для доступа к почтовому ящику.
- SMTP — основной протокол для передачи писем между серверами.
👍54🔥3
Разработчик Арин Саркисян (Arin Sarkisian) запустил классический Doom 1993 года на беспроводных наушниках PineBuds Pro. Одна из особенностей этих найшников заключается в совместимости со сторонними прошивками. Это позволило использовать устройство для запуска Doom. Сами наушники спроектированы на базе микроконтроллера Cortex-M4F. Прошивка от производителя ограничивает тактовую частоту 100 МГц. Автор отключил режим пониженного энергопотребления, что увеличило частоту до 300 МГц

Для вывода изображения использовался интерфейс USB-to-UART на плате наушников. Его хватило для стабильной передачи буфера кадров игры объёмом около 96 КБ. Управление реализовано через веб-интерфейс: надо установить и запустить утилиту DoomBuds-JS и затем подключиться к наушникам по беспроводному соединению. Таким образом, сами наушники запускают и обрабатывать игру, изображение выводится на монитор или смартфон, а для управления используется браузер

Поиграть в Doom на наушниках можно онлайн на сайте проекта https://doombuds.com/
🔥15👏21🥰1😁1
5🔥1👏1
Google выпустила генератор ИИ-миров и обрушила акции игровых компаний

Акции Unity обвалились на 21% за один торговый день (за 2 дня на 25%), Take-Two (издатель GTA) потеряла 9%, также понесли урон и другие игровые компании. Распродажа началась после того, как Google открыла доступ к Project Genie — экспериментальному инструменту, который генерирует интерактивные 3D-миры из текста и изображений.
Благодаря новому инструменту пользователи на основе скриншотов и текстового промпта могут создавать в том числе клоны игровых миров из известных игр.

Project Genie работает на модели Genie 3 и позволяет не просто создавать статичные сцены, а исследовать их в реальном времени. Инструмент пока доступен только подписчикам Google AI Ultra в США ($250/мес), сессия ограничена 60 секундами, физика работает не всегда корректно.
🤯20👎10🤣8👍4🤔2🖕21😱1
Автор языков C# и TypeScript, Андерс Хейлсберг в интервью сервису github рассказал об использовании ИИ своей командой, а также о развитии и будущем TypeScript.

Грядущее важное изменение в TypeScript — это использование нативного компилятора, являющегося частью TypeScript 7.0, который в настоящее время находится в режиме предварительного просмотра. Перенос оригинального компилятора, написанного на TypeScript и выполняемого движком JavaScript V8, в нативный код был необходим по соображениям производительности, сказал Хейлсберг. «Мы быстро поняли, что можем получить десятикратное увеличение производительности, половина которого достигается за счет нативного кода, а другая половина — за счет использования параллельной обработки с использованием общей памяти».
Выбор языка программирования для нативного компилятора оказался спорным. Требование переноса исключило использование Rust, сказал Хейлсберг, потому что в Rust отсутствуют циклические структуры данных и автоматическая сборка мусора, которые требовались для переноса. «Мы экспериментировали с C#. В итоге мы выбрали Go… потому что он довольно похож на JavaScript», — сказал Хейлсберг.

Что касается ИИ, Хейлсберг сказал, что команда изначально пыталась использовать его для переноса кода с TypeScript на Go. «Это не очень хорошо получилось… нам нужен очень детерминированный результат. Мы хотим перенести полмиллиона строк кода и знать, что они делают то же самое, что и старые строки кода. Если вы попросите ИИ перевести их, он может немного сбиться с толку, и тогда вам придется тщательно проверять каждую строку кода».

Что касается будущего TypeScript, Хейлсберг сказал, что он будет «развиваться в процессе стандартизации JavaScript, а затем путем добавления необходимых функций системы типов поверх него».

https://github.blog/developer-skills/programming-languages-and-frameworks/7-learnings-from-anders-hejlsberg-the-architect-behind-c-and-typescript/
12👍8💩5🔥2😁2
ИИ помогает писать код, но мешает учиться

Компания Anthropic провела исследование с 52 разработчиками, чтобы выяснить, как ИИ-ассистенты влияют на освоение новых навыков. Результат: группа с доступом к ИИ набрала на тесте 50% против 67% у тех, кто писал код вручную.

Участники — в основном junior-разработчики с опытом работы на Python — изучали библиотеку Trio для асинхронного программирования. Одни могли в любой момент попросить ИИ-ассистента написать или исправить код, другие справлялись сами. Сразу после задания обе группы проходили тест на понимание материала. Скорость выполнения у группы с ИИ оказалась чуть выше, но статистически незначимо.

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

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

https://www.anthropic.com/research/AI-assistance-coding-skills
👍306👏1
ИИ-агенты в соцсети Moltbook основали собственную религию

Автономные агенты искусственного интеллекта в ИИ-соцсети Moltbook спонтанным образом основали собственную религию и назвали ее панцифарианством (Crustafarianism, от англ. crust - панцирь).

Новая религия зародилась на форуме Moltbook, где публикуют контент и обсуждают его только ИИ-сущности - люди могут только смотреть. На следующий день после его запуска они уже создали церковь со своими священными писаниями, догматами и верующими, число которых растет. Людям писать на Moltbook нельзя - они создают собственных ИИ-агентов, подтверждают право создателей, и те уже публикуют посты. ИИ-агенты даже создали сайт своей церкви: https://molt.church/

https://www.forbes.com/sites/johnkoetsier/2026/01/30/ai-agents-created-their-own-religion-crustafarianism-on-an-agent-only-social-network/
🤯12🤡9😁5🤮1
RuStore. не дожидаясь 1 февраля, прекратил монетизацию через платёжные инструменты RuStore для самозанятых ( то есть приём платежей, продажи приложений, управление подписками и разовыми покупками в приложениях разработчика). Теперь для продолжения монетизации нужно быть ИП или юрлицом
🤬39🤡23😁3😱3🕊2❤‍🔥1👍1
Инструменты для автоматизации для различных ситуаций
18🔥4🖕3👍1
Иерархия файловой системы (FHS — Filesystem Hierarchy Standard)
(продолжение в следующем посте)
❤‍🔥42👍2🔥1
Иерархия файловой системы (FHS — Filesystem Hierarchy Standard)
(продолжение предыдущего поста)

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

В основе иерархии лежит корневая директория (/), от которой отходят все остальные каталоги. Рассмотрим структуру подробнее.

#### 1. Essential Programs (основные программы)
Содержат файлы, необходимые для работы критически важных программ:
* /bin — содержит исполняемые файлы (бинарники), доступные всем пользователям (например, cp, ls).
* /sbin — содержит бинарники, доступные только пользователю root (например, lvm, mkfs).
* /lib(64) — хранит библиотеки, необходимые для работы бинарников в /bin и /sbin.

#### 2. Non-Essential Programs (вторичная иерархия, неосновные программы)
Включает каталоги с файлами, которые не являются критически важными для системы:
* /etc — хранит конфигурационные файлы системы (например, xorg.conf, fstab), специфичные для данной системы.
* /opt — содержит дополнительное ПО, которое не входит в репозитории дистрибутива.
* /usr — содержит портативные, доступные только для чтения, программы и файлы, не являющиеся критически важными.

#### 3. User Directories (директории пользователей)
Предназначены для хранения пользовательских данных:
* /home/(username) — хранит файлы, настройки и программы обычных пользователей.
* /root — домашняя директория пользователя root.

#### 4. Kernel File Systems (файловые системы ядра)
Эти каталоги заполняются ядром и предоставляют информацию программам и пользователю:
* /proc — содержит информацию о процессах, ядре и аппаратном обеспечении системы.
* /sys — хранит данные о системном оборудовании и ядре.
* /run — содержит информацию о состоянии системы с момента последней загрузки.

#### 5. Mount Points (точки монтирования)
Используются для подключения устройств и файловых систем:
* /media — предназначена для съёмных носителей (CD-ROM, флоппи-диски и т. д.).
* /mnt — используется для временного монтирования файловых систем (например, USB-накопителей).
* /tmp — псевдофайловая система для временных файлов, очищается при загрузке системы.

#### 6. Другие важные директории
* /boot — содержит файлы, необходимые для загрузки системы (например, initrd, ядро, конфигурация загрузчика).
* /dev — хранит файлы устройств (например, sda, tty), включая физические устройства (жёсткие диски) и потоки данных (stdin, stdout).
* /srv — содержит файлы, используемые сервисами, предоставляемыми системой (например, www, rsync, ftp).
* /var — хранит изменяемые файлы (например, файлы блокировки, логи, почту).
👍7👨‍💻4❤‍🔥3
Визуальное руководство по командам SQL #sql
🔥15👍63
Сервис по поиску работы HH обновил статистику по состоянию рынка труда, добавив данные за январь. Ситуация в сфере ИТ продолжает медленно ухудшаться

Предлагаемые зарплаты символически выросли с 93 410 до 94 541 (но меньше, чем в ноябре - 94 915). Если смотреть на годовую динамику, то в зп, конечно, рост на 10%, что по крайней мере выше оф. инфляции в 5,6%

hh-индекс - показатель соотношения количества активных резюме к количеству активных вакансий снова ухудшился - рост до 21,3 (с 20,7 в декабре). То есть в ИТ крайне мегасупервысокий уровень конкуренции соискателей за рабочие места
Хотя по сранению с декабрем количество вакансий уменьшилось только на 8%, но год к году снижение составило аж 39%.

С другой стороны, стоит отметить второй месяц подряд снижение количества резюме - по сравнению с декабрем количества резюме снизилось на 6% (возможно, сказались праздники или люди действительно меньше идут в эту сферу), но год к году выросло аж на 30%

https://stats.hh.ru/
😱6🤔4👎2👏1🤡1👨‍💻1
Шпаргалка по сегментации памяти на примере программы на Си
🤯10👍6🤓5😱1👾1