METANIT.COM – Telegram
METANIT.COM
5.78K subscribers
1.64K photos
79 videos
9 files
986 links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Что такое подоболочки в Linux

В Linux каждый раз, когда вы открываете терминал, запускается оболочка (shell), обычно это Bash или Zsh. Но что происходит, когда вы выполняете команду в круглых скобках, например так?

$ (pwd; ls)

Вы только что создали подоболочку (subshell) — новую дочернюю оболочку, которая выполняет ваши команды изолированно от родительской. Подоболочки — это один из тех механизмов оболочки, которые незаметно выполняют множество задач в Bash. Они позволяют:
* запускать команды в отдельных окружениях;
* безопасно получать вывод команд;
* выполнять параллельную обработку — и всё это без вмешательства в основную сессию оболочки.

#linux
👍4🔥3🥰1👏1
В Госдуме предложили обязать частные компании перейти на российский софт

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

«В будущем могут появиться законодательные ограничения для коммерческих компаний, чтобы они тоже импортозамещались более активно. Этот вопрос сейчас рассматривается»,— сказал господин Горелкин на форуме «Цифра права»

Сейчас иностранный софт обязаны замещать государственные и муниципальные органы, госкорпорации и компании с госучастием. В сентябре Минцифры заявило, что на российский софт должны перейти все значимые объекты критической информационной инфраструктуры (КИИ) до 1 января 2028 года. В отдельных случаях крайний срок может быть продлен до 1 декабря 2030 года.

https://www.kommersant.ru/doc/8161067
🤡54💩6😁2🤯2🔥1🖕1
В руководство по языку Java добавлены следующие статьи:

Управление процессами. Классы Process и ProcessBuilder
https://metanit.com/java/tutorial/12.4.php

CompletableFuture и промисы. Обработка результата асинхронных задач
https://metanit.com/java/tutorial/8.18.php

CompletableFuture, обработка ошибок и завершения асинхронных задач
https://metanit.com/java/tutorial/8.19.php

#java


В руководство по ассемблеру NASM добавлена статья

Создание структур с помощью макросы STRUC/ENDSTRUC
https://metanit.com/assembler/nasm/3.13.php

#assembler #assembly #nasm
😁74👍4🍓4💋3👏1
Вкратце о бесконечности
🔥24😁16🥰2👏1🤔1
В российских компаниях не происходит резких увольнений сотрудников ради внедрения искусственного интеллекта (ИИ), заявила руководитель рекрутингового агентства NEWHR и исследований IT-рынка Кира Кузьменко.

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

По мнению Кузьменко, некоторые компании используют внедрение ИИ лишь как повод для увольнений, а сокращения происходят ради урезания доходов. С другой стороны, рассказала она, в некоторых крупных IT-компаниях действительно требуют от руководства заменить часть сотрудников на ИИ-системы либо передать им часть функционала. Такие цели даже закладывались в KPI для экономии ресурсов и повышения капитализации.

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

https://www.rbc.ru/business/29/10/2025/69021b129a7947f8611d1b46
🤡18👍3🤯31👎1👏1🙉1
GitHub опубликовал отчёт за 2025 год.

Язык TypeScript вырвался на 1-ое место в рейтинге языков программирования, наиболее часто используемых разработчиками.Python и JavaScript переместились на 2-ое и 3-ье места. За год число разработчиков на TS увеличилось на 1 млн (+66%), Python - на 850 тыс (+48%), а JavaScript - на 427 тыс. (+25%).

В рейтинге наиболее быстро набирающих популярность языков лидируют Luau (3600 разработчиков, +194%), Typst (3600 разработчиков, +108%), Astro (45600 разработчиков, +78%), Blade (91100 разработчиков, +67%) и TypeScript (2.6 млн разработчиков, +67%).

По популярности в новых репозиториях лидируют языки JavaScript (9.3 млн, +14.57%), Python (9.2 млн репозиториев, +53.41%), TypeScript (5.4 млн, 78.10%), Java (3.5 млн, 9.35%), C++ (1.7 млн, 11.82%), C# (1.5 млн, 10.61%).

https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typenoscript-to-1/
👍14🔥4😢1
Процесс загрузки Linux
(продолжение в следующем посте)
👍3🥰1👏1
Процесс загрузки Linux
(описание к предыдущему посту)

1. Включение питания

→ Процесс загрузки начинается в момент включения компьютера.
→ Аппаратная часть системы инициализируется, управление передаётся BIOS или UEFI.
→ BIOS/UEFI хранится в энергонезависимой памяти и выполняет POST (самотест при включении питания) для проверки целостности оборудования.

2. Инициализация BIOS/UEFI

→ Обнаруживает и инициализирует аппаратные устройства: процессор, оперативную память, дисковые накопители и периферийные устройства.
→ Определяет загрузочные устройства (например, жёсткий диск, USB‑накопитель или сетевое подключение).
→ После завершения обнаружения оборудования управление передаётся загрузчику.

3. Выбор загрузочного устройства

→ BIOS/UEFI выбирает загрузочное устройство согласно настроенному порядку.
→ На загрузочном устройстве находится загрузчик (например, GRUB).
→ Система считывает загрузочный сектор, чтобы найти программу загрузчика.

4. GRUB (загрузчик)

→ GRUB (GRand Unified Bootloader) загружается с выбранного устройства.
→ Считывает конфигурационный файл /etc/grub2.cfg.
→ Отображает меню загрузки (если настроено), позволяя выбрать нужное ядро или версию ОС.
→ Загружает выбранное ядро Linux в память.
→ Загружает необходимые модули ядра и библиотеки, требуемые для загрузки.

5. Инициализация ядра

→ Ядро Linux распаковывается и инициализирует системные компоненты.
→ Обнаруживает аппаратные компоненты и подключает корневую файловую систему (/).
→ Запускает первый процесс в пользовательском пространстве — обычно systemd.
→ Переключается из режима ядра в пользовательский режим.

6. Запуск systemd

systemd — первый процесс в пользовательском пространстве (PID 1).
→ Отвечает за инициализацию всех остальных служб и целей.
→ Считывает конфигурационные файлы из /etc/systemd/system/.
→ Активирует целевые файлы, такие как:
 → basic.target
 → multi-user.target
 → getty.target
 → ssh.service

7. Выполнение стартовых скриптов

→ Выполняет общесистемные и пользовательские стартовые скрипты.
→ Примеры:
 → /etc/profile
 → /systemd-logind
 → ~/.bashrc
→ Эти скрипты настраивают пользовательское окружение и фоновые службы.

8. Вход пользователя

→ После выполнения всех стартовых скриптов и целей появляется экран входа в систему.
→ Пользователи могут войти через терминал, графический интерфейс или SSH.
→ Система переходит в полностью работоспособное многопользовательское состояние.
13👍6👏1
Кодить по-русски: студентов научат программировать на кириллице

В Пензенском государственном университете (ПГУ) начали обучать студентов программированию на кириллице. Инициатива направлена на укрепление роли национального языка в ИТ-сфере и создание отечественных решений, независимых от англоязычных стандартов.

Преподаватели вуза модифицировали популярный язык JavaScript, полностью переведя его синтаксис и условия задач на русский язык. Теперь будущие специалисты пишут код без единой латинской буквы. Такой подход облегчает освоение программирования и снимает языковой барьер, отметил кандидат педагогических наук, доцент кафедры «Информатика и методика обучения информатике и математике» Андрей Диков.

Однако в профессиональном сообществе новая инициатива вызвала дискуссию. Часть экспертов опасается, что полный отказ от английской терминологии может затруднить адаптацию выпускников в международной ИТ-среде и отдалить их от общепринятых стандартов. Тем не менее в ПГУ уверены, что эксперимент с кириллицей станет шагом к формированию отечественной школы программирования — самобытной, понятной и технологически независимой.

https://iz.ru/1980660/anton-belyi/kodit-po-russki-studentov-nauchat-programmirovat-na-kirillice
🤡60👎29🤣11🤔5👍4🤮4😱31💩1🐳1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Из мира извращений: графический редактор в консоли на PHP
😁31🤔11👍6🔥5💩1
Очередной баг в очередном обновлении для Windows 11 может сильно снизить производительность ПК

Компания Microsoft выпустила обновление KB5067036 для Windows 11 с новым меню «Пуск», которое будет внедряться постепенно. Оно также добавляет новые цветные значки батареи на панель задач, новую ленту рекомендуемых лент в проводнике и многое другое. Но обновление выходит за рамки некоторых улучшений дизайна.

Однако как обычно не обошлось без багов. Если запустить «Диспетчера задач», и закрыть его, то на деле сам процесс taskmanager.exe останется в оперативной памяти и не выгрузится. Так можно повторять снова и снова – программа будет висеть в ОЗУ и создавать все новые копии себя при каждом повторном запуске. Рано или поздно это приведет к тому, что свободная оперативная память на компьютере полностью закончится.

https://www.windowslatest.com/2025/10/30/windows-11-kb5067036-issue-task-manager-wont-close-and-duplicates-may-hurt-performance/
💊24🤣22🤯2😢21🖕1
6 основных типов ключей в базах данных:

1. Primary key (первичный ключ) — уникальный идентификатор для каждой записи в таблице; не может быть пустым и должен быть уникальным во всей таблице.

2. Foreign key (внешний ключ) — поле в таблице, которое соответствует первичному ключу другой таблицы; создаёт связь между таблицами.

3. Composite key (составной ключ) — комбинация двух или более столбцов, используемых как первичный ключ; применяется, если один столбец не может однозначно идентифицировать запись.

4. Alternate key (альтернативный ключ) — уникальный идентификатор записи, который не является первичным ключом; используется как вторичный способ поиска данных.

5. Candidate key (потенциальный ключ) — уникальный идентификатор записи, который потенциально может быть использован как первичный ключ.

6. Surrogate key (суррогатный ключ) — уникальный идентификатор, присвоенный записи в таблице, обычно создаваемый самой базой данных, а не пользователем.

#sql #database
7👍3🔥2🤔1
В России начали ограничивать регистрацию в Telegram и WhatsApp
В России началась блокировка передачи звонков и СМС новым пользователям со стороны подрядчиков Telegram и WhatsApp, говорят источники. В отдельных случаях сообщения продолжают поступать

https://www.rbc.ru/technology_and_media/31/10/2025/6903cec99a794758a0046cd9
🤬22🤡13😁4👍2😡2
Шпаргалка по IP-адресам
(описание в следующем посте)
10👏2🥰1
Шпаргалка по IP-адресам
(описание к предыдущему посту)

1. Частные диапазоны IPv4-адресов:
- 10.0.0.0 – 10.255.255.255 (10.0.0.0/8) — для крупных частных сетей;
- 172.16.0.0 – 172.31.255.255 (172.16.0.0/12) — для корпоративных сетей;
- 192.168.0.0 – 192.168.255.255 (192.168.0.0/16) — для домашних/офисных локальных сетей (LAN).

2. Префиксы CIDR, маски подсетей и количеством доступных хостов:
- /8 (255.0.0.0) — 16M хостов (для крупных внутренних сетей);
- /16 (255.255.0.0) — 65K хостов (для больших LAN);
- /24 (255.255.255.0) — 254 хоста (для малых подсетей/домашних LAN);
- /30 (255.255.255.252) — 2 хоста (для point-to-point соединений);
- /32 (255.255.255.255) — 1 хост (для одиночного устройства).
CIDR определяет сети по длине префикса, а не по фиксированным классам.

3. Специальные IPv4-адреса, их значениями и описание:
- Unspecified (0.0.0.0) — неопределённый адрес по умолчанию;
- Broadcast (255.255.255.255) — широковещательный адрес для всей локальной сети;
- Loopback (127.0.0.0/8) — для локального тестирования;
- APIPA (169.254.0.0/16) — автоназначение IP при сбое DHCP;
- CGNAT (100.64.0.0/10) — пространство NAT, используемое провайдерами;
- Multicast (224.0.0.0 — 239.255.255.255) — для многоадресной рассылки;
- Docs/Test (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24) — зарезервированные примеры.

4. Распространенные провайдеры публичных DNS-серверов:
- Cloudflare (1.1.1.1, 1.0.0.1 и IPv6-аналоги) — быстрый, ориентированный на конфиденциальность;
- Google (8.8.4.4, 8.8.8.8 и IPv6-аналоги) — глобальный anycast;
- Quad9 (9.9.9.9, 149.112.112.112 и IPv6-аналоги) — фильтрованный для безопасности;
- OpenDNS (208.67.222.222, 208.67.220.220 и IPv6-аналоги) — сервис Cisco;
- AdGuard (94.140.14.14, 94.140.15.15 и IPv6-аналоги) — блокировка рекламы и вредоносного ПО.

5. IPv6-адресов, диапазоны и описание:
- Unspecified (::) — неопределённый адрес;
- Loopback (::1) — локальное тестирование;
- Link-local (fe80::/10) — для локального использования на интерфейсе;
- ULA (Unique Local Address) (fc00::/7 или fd00::/8) — частные IPv6-сети;
- Docs/Test (2001:db8::/32) — зарезервированные примеры.
16👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Ролик по геометрии с наглядной визуализацией различных формул
👍25🔥16👏6🥴4🤯2
10 ключевых структур данных, которые мы используем каждый день

- список (*list*): хранение лент новостей в Twitter;
- стек (*stack*): поддержка функций «отменить/вернуть» в текстовом редакторе;
- очередь (*queue*): управление заданиями для принтера или отправка действий пользователя в игре;
- хэш‑таблица (*hash table*): системы кэширования;
- массив (*array*): математические операции;
- куча (*heap*): планирование задач;
- дерево (*tree*): хранение HTML‑документа или принятие решений в ИИ;
- суффиксное дерево (*suffix tree*): поиск строки в документе;
- граф (*graph*): отслеживание дружеских связей или поиск пути;
- R‑дерево (*R‑tree*): поиск ближайшего соседа;
- буфер вершин (*vertex buffer*): передача данных в GPU для рендеринга.
🔥24👍6🤔2👀2🤡1