99 бутылок: CMake
57. CMake. Писать «Песни про пиво» на различных языках программирования — давнее моё увлечение, ему столько же лет, сколько этому блогу. В этот раз «поёт»
CMake — автоматизированная система сборки пакетов, имеющая развитый, хотя и несколько уродливый макроязык. Инструкции, большей частью, знакомые, разве что способ возврата значений несколько из макросов и функций несколько странный — через параметры и глобальные переменные.
Никакого ООП, само собой, и всё весьма примитивно по меркам развитых языков.
# 99.cmake
# to run: cmake -P 99.cmake
# Written by Evgeny Stepanischev, 2015
cmake_minimum_required(VERSION 3.0)
macro(bottles beer ret)
if(${beer} EQUAL 0)
set(${ret} "No bottles")
elseif(${beer} EQUAL 1)
set(${ret} "1 bottle")
else()
set(${ret} "${${beer}} bottles")
endif()
endmacro()
foreach(beer RANGE 99 1 -1)
bottles(beer bottles)
math(EXPR beer "${beer}-1")
bottles(beer bottless)
message("${bottles} of beer on the wall, ${bottles}.")
message("Take one down and pass it around, ")
message("${bottless} of beer on the wall.")
message("")
endforeach()
message("No more bottles of beer on the wall, no more bottles of beer.")
message("Go to the store and buy some more, 99 bottles of beer on the wall.")Строка для запуска во второй строке файла.
Седьмое посещение острова сокровищ

Нет лучше способа провести День народного единства, чем выехать на поиск монет!
Верхний ряд, слева направо: петля от шкатулки, две «конины», запор самоварного краника, две гильзы, две пуговицы — одна в позолоте, вторая с орлом, производства
Нижний ряд — пряслице, вырубка из монеты
Восьмое посещение острова сокровищ

Грех не использовать неделю с четырьмя выходными (у нас в Татарстане два праздника на этой неделе) и двумя короткими рабочими днями на выезды на природу. Несмотря на то, что погода, мягко говоря, не радовала (за городом местами уже лёг неглубокий снежок), выезд получился очень результативным.
По центру — огромный крест, который я, к моему большому сожалению, нашёл не полностью, все три найденные части лежали в разных местах, довольно далеко друг от друга.
Слева: три гильзы, пара непонятных предметов, пять копеек раннего СССР (1926, 1929 и две шутки 1930 гг.), три копейки 1930 года.
Справа: «конина», элемент украшения, колёсико от примуса с немецкой надписью BAYONNET SCHLUSS BRENNER, полушка 1736 года, копейка 1862, одна копейка 1872, одна копейка 1911, заготовка для кольца из монеты 1916 года и ранние «советы» — медная (!) копейка 1924 года.
Ко(а)ндауровы

Как правильно пишутся мои предки — Кандауровы или Кондауровы, вот в чём вопрос. В разных источниках написание разнится. Что,
Интернет утверждает, что фамилия происходит от адаптации имени хана Даур
Опять же в «Ономастиконе» С.Б. Веселовского (книга не переиздавалась с 1974 года, я купил букинистическое издание, что
Девятое посещение острова сокровищ

Удивительно, но снег (пока) не помеха этому хобби — земля ещё не настолько замёрзла, чтобы нельзя было копать. Съездили с женой на пару часов за город и вот результат: три копейки 1933, две копейки 1930, деталька от примуса и три колечка.
Не бог весть что, но и ходил я относительно немного.
Россияне

На нём — цитата из речи генерала Кутепова, в которой он 12 мая 1929 года говорил, в частности, следующее:
В нашем богатом языке, к сожалению, утратилось одно слово: «россиянин», а между тем это слово нужно и даже необходимо — оно шире, чем слово «русский». Все народы, населяющие Россию, независимо от их национальностей, прежде всего — Россияне.
Я верю, что освобождённая и возрождённая Россия будет именно — Россия для россиян!
1929 год это сильно задолго до Ельцина. А впервые в письменных источниках это слово встречается у Максима Грека в 1524 году.
Сложение массивов в PHP
Некоторые ребята не знают, что в ПХП есть операция «плюс» над массивами, а открыв её для себя случайным чтением инструкции по языку, не знают чем она отличается от array_merge. Между тем отличия разительные, если их не знать, легко наплодить ошибок в коде.
Операция сложения («плюс») с массивами работает проще всего: если в левом массиве уже есть значение с таким ключом, оно и остаётся:
["L"] + ["R"]; // будет ["L"]
["a" => "L"] + ["a" => "R", "b" => "R"]; // будет ["a" => "L", "b" => "R"]Операция слияния массивов (array_merge) работает
array_merge(["L"], ["R", 4 => "R"]); // ["L", "R", "R"], значения целых ключей правого массива потерялись, сам массив добавился в конец
array_merge(["a" => "L"], ["a" => "R"]); // ["a" => "R"], совпадение строковых ключей
array_merge(["L", "a" => "L"], ["R", "a" => "R", 4 => "R"]); // ["L", "a" => "R", "R", "R"], разные типы ключей вместеОперация «плюс» очень полезна для добавления группы ключей строковых со значениями (для объединения ассоциативных массивов):
$arr = ["key1" => "value1", "key2" => "value2"];
// вместо
$arr["key3"] = "value3";
$arr["key4"] = "value4";
// проще написать так:
$arr += ["key3" => "value3", "key4" => "value4"];Но на этом её применение не заканчивается, конечно.
Разведка очередного «острова сокровищ»

Зима никак не наступает, завтра у нас вообще +8° обещают, решил ненадолго выехать на разведку — походить в одном перспективном месте. Под самый конец начали попадаться находки, к сожалению уже пора было уезжать,
Давай, пока!
Огромного венчанного злодея Похоронили, не жалея: В ту ночь, во сне, передо мной стоял В порфире и венце вот этот генерал… Ступай себе пока!.. А мне своя дорога.
Отрывок из стихотворения «Забытье» Николая Огарева, 1861 год.
Не могу понять почему всех так раздражают «пока» и «давай» в качестве слов прощания. Раздражающиеся говорят мне что не понимают смысла. «Пока» что? «Давай» что?
Мне кажется тут налицо некая слепота, концентрация на частном случае. Не знаю как для других языков, а для русского это весьма характерно использовать неполные фразы. Мы не проговариваем фразу полностью, если из контекста ясно остальное.
— Как ты?.. — Ничо.
«Как ты» что? Что «ничо»?
Но всё понятно же, да? Подобные сокращения встречаются едва ли не в каждом предолжении беглой речи. Понятно же (или нет?), что «пока» и «давай»
Так чего же вы, господа?
Десятое посещение острова сокровищ

Дурная голова ногам покоя не даёт, съездил на разведанное в прошлый раз место. Земля, как ни странно, не промёрзла. Ходил несколько часов, но место, судя по результату, что называется «выбитое». Правда
Слева направо рядами: две ложечки (сохранившийся черпак — медный), осколок колокола с надписью «…онов», монета одна копейка 1896 года, шток от рукомойника, пара «конин», набор непонятных «лесенок», шестерёнка от часов, плохо сохранившаяся гильза.