Точка с запятой в файлах зон DNS-мастера; немного истории

Точка с запятой в файлах зон DNS-мастера; немного истории

Участник курса по DNS спросил Карстена Штротманна из Men & Mice, почему символ комментария в файле зоны
DNS-мастера - это точка с запятой; Карстен пожал плечами и спросил меня. В своей часто саркастичной
манере, я ответил авторитетно "потому что так было запрограммировано" и отмахнулся от этого.

; this is a comment
www    3600 IN   A     192.168.1.1  ; the (duh!) Web server

Никогда прежде я не задавался вопросом, почему используется определенный вид комментария в языке программирования.
Ни звездочка * в 7-м столбце для COBOL (я начинал с перфокарт), ни REM (или расширенное :) в BASIC.
(Я давно забыл, что использовал ассемблер Nixdorf 8860 (не 8086).) Меня не беспокоили /* */ в C, и двойные слеши //,
когда они появились. Решетка # в Perl и Python, и -- в Lua меня тоже не смущали,
а в файлах MS-DOS INI использовалась ... (барабанная дробь) ... точка с запятой (;).

Однако, как тренер (кем я в данном случае не являюсь), я всегда стараюсь ответить на вопрос,
поэтому я почувствовал себя обязанным хотя бы попытаться найти причину. В то время как я отправился на
поиски первой версии сервера BIND, которую только мог найти, я спросил людей, которые могли бы знать.

Стефан Борцмайер порекомендовал мне спросить кого-то по имени @svnr2000 (вау!), что я и сделал,
добавив Пола Викси в качестве первоначального и давнего сопровождающего/автора BIND для надежности.

Ответы стали поступать со всевозможными хорошими идеями. Дэвид Улевич из OpenDNS сказал:

в старых языках программирования использовалась ; вместо решетки, как в ассемблере, и Викси нашел это привлекательным.

Это звучало довольно разумно, к тому же это было подтверждено:

это довольно типично, не так ли? Апостроф ' используется в Lisp и в большинстве ассемблеров.

Также тот факт, что точка с запятой используется в hosts.txt, имеет смысл.

Эти ответы меня все же не удовлетворили, поэтому я продолжил копать. Между тем у меня был код BIND версии
4.8 за 1988 год, и я пролистывал исходный код db_load.c, где быстро нашел соответствующее место, но был
разочарован тем, что там не было комментария о том, почему точка с запятой. Тем не менее, я должен был
посмотреть на комментарии в верхней части файла, и Тони Финч попал в точку: там сказано

/*
 * Load data base from ascii backupfile. Format similar to RFC 883.
 */

RFC 833, авторства Пола Маккапетриса, датируется ноябрем 1983 года и гласит:

Semicolon is used to start a comment; the remainder of the line is ignored.

Тот же самый Пол Маккапетрис, который, цитируя Википедию,

является американским специалистом по компьютерным технологиям и пионером Интернета, который вместе с Джоном Постелем изобрел Систему доменных имен (DNS).

Другими словами, он должен знать, верно? Что ж, я был в восторге, когда сам Пол Маккапетрис ответил на
мой запрос несколько часов спустя:

@jpmens @bortzmeyer @PowerDNS_Bert @kolkman The ";" was the comment delimiter in TOPS-20 words, hash was dragged in by the UNIX types

TOPS-20 восходит к 1969 году, и Lisp, который использует точку с запятой в качестве символа комментария,
так что вопрос в том, получил ли TOPS-20 точку с запятой от Lisp или яйцо появилось раньше курицы.

Согласно ответу Пола Викси, точка с запятой была выбрана в качестве комментария в файлах зон,
потому что именно так ее использовали макроассемблеры PDP-10 и другие в те времена, и Кристоф направил
меня к GAS, где перечислены однострочные комментарии для ассемблеров.

Так что, есть что-нибудь еще, о чем вы хотите, чтобы я спросил? ;-)

Ссылка на оригинал статьи

Read more

🔄 Своя Dropbox-альтернатива: Syncthing

🔄 Своя Dropbox-альтернатива: Syncthing

🧠 Зачем? Облачные сервисы — удобно, но: * не хочется платить Google/Dropbox за хранение своих файлов * хочется моментально синхронизировать фото, документы и заметки между устройствами * и делать это на своём сервере, без отправки данных «в облако» 👉 Решение — Syncthing: децентрализованный, зашифрованный, open source-синк между любыми устройствами. 🚀 Что ты получишь? * 📂 Автосинк папок между сервером,

🎧 Свой подкаст-сервер за 5 минут: Podgrab

🎧 Свой подкаст-сервер за 5 минут: Podgrab

✨ Зачем? Подкасты — отличный способ учиться, развлекаться и быть в курсе мира. Но что, если: * Хочется слушать подкасты офлайн * Хочется архивировать любимые шоу * Не устраивают сторонние сервисы, реклама и трекеры Решение: Podgrab — простой подкаст-граббер, который автоматически скачивает новые выпуски с любого RSS. А в связке с Audiobookshelf ты получаешь полноценный медиасервер.

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Введение: Почему это важно В мире DevOps и системного администрирования существует простое правило: всё ломается. Особенно в самый неподходящий момент. Когда вы изменяете конфигурацию критического сервиса (например, Nginx), цена ошибки может быть очень высока — от простого даунтайма до потери данных. Ansible предлагает элегантное решение для безопасного внесения изменений через механизм

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Файл ~/.ssh/authorized_keys позволяет настроить команды, которые будут выполняться при входящих SSH-соединениях. Это полезный инструмент для управления доступом и обеспечения безопасности, особенно при работе с резервным копированием данных. Настройка резервного копирования с использованием authorized_keys В данном примере рассматривается использование authorized_keys для настройки резервного копирования базы данных Bacula