Точка с запятой в файлах зон 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

Самохостинг (часть 2) - Динамический роутинг на Keenetic

Самохостинг (часть 2) - Динамический роутинг на Keenetic

Допустим у нас есть роутер Keenetic. Нам нужно, чтоб некоторые сайты грузились через поднятый на нем туннель (это может быть Wireguard, L2TP или даже банальный Socks5 proxy). Например, нас забанил Youtube по нашему внешнему IP адресу 😉, но мы все равно хотим его смотреть, да не на телефоне, а на нормальном

Самохостинг - стиль жизни

Самохостинг - стиль жизни

Я тут и тут писал про свой домашний сервер, но нигде не упоминал, что есть еще один сервер в ДЦ, где хостятся сайтики и кучка еще разных сервисов. Да и времени прошло с момента написания тех статей не мало. Сервер тот остался в другой стране и, как результат, все, что

Мониторинг долгих запросов PostgreSQL в Prometheus

Мониторинг долгих запросов PostgreSQL в Prometheus

Предположим, что у вас есть PostgreSQL (AWS RDS или классический PostgreSQL server), Prometheus, postgres exporter и alertmanager с Grafana. Стоит задача присылать уведомления о том, что в Postgres подвис запрос. Причина и т.п. нас мало интересует. Нужно просто сказать всем, кому положено, что есть проблема и ее нужно решить.

Почему я всё ещё люблю Fish Shell

Почему я всё ещё люблю Fish Shell

В 2017 году я написала о том, как сильно люблю Fish Shell, и спустя 7 лет ежедневного использования, я нашла ещё больше причин для восхищения. Поэтому решила написать новый пост, где соберу старые и новые причины моей любви к этой оболочке. Сегодня я задумалась об этом, потому что пыталась понять,