Долгожитель сельца Михайловка

Михайловка (95.08КиБ)

В самарском фонде №150, описи 1, деле 85а всплыл настоящий долгожитель. Государственный крестьянин Иван Семёнович Попов, которому на 1834 год было 129 лет. Прожил он ещё дольше — до 1841, умер в сельце Михайловка Оренбургской губернии Бузулукского округа Пронькинской волости. Чему оно соответствует на современной карте я не знаю, но ясно, что надо искать вокруг города Бузулука, который существует до сих пор.

Попов Иван Семёнович (40.68КиБ)

Точных дат рождения и смерти нет (для этого надо искать метрические книги, а сохранились ли они — неизвестно), но можно подсчитать, что он прожил 135 или 136 лет! То есть родился он при Петре Первом, а умер — при Николае Первом. В списке долгожителей в «Википедии» Иван Семёнович, кстати, не числится.

Обновление (ревизия 1834 года)

Мне всё-таки стало интересно — есть ли в предыдущих ревизиях этот долгожитель и я посмотрел записи 1834 года, благо в «народном каталоге» 150-го фонда быстро нашлась запись о нужном сельце. Итак, в фонде 150, описи 1, деле 17 на листе 508об находится запись:

Попов Иван Семёнович в 1834 году (29.00КиБ)

Важно обратить внимание на начало вертикальной записи, которую я срезал. Там написано следующее: «перешли в 1830-м году [из] Омской области Петропавловского уезда из деревни Пузевой». То есть можно более ранние следы поискать в омском архиве, но туда я обращаться вряд ли буду.

10 комментариев

AltoCar

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

Возможно изобрести что-то новое в сфере такси очень тяжело, но ребятам из «Альтокар» это удалось. Смысл их предложения в том, что вы покупаете не поездки (их может быть сколько угодно), а километры. Они оплачиваются заранее, пакетом. Пакетов пока три — 500 км, 750 и 1000. Самый дешёвый стоит пять тысяч, но я его купил за 3990 — по предзаказу.

Судя по всему, я в купленные 500 км должен уложиться, если это действительно так, то экономия существенная — пять тысяч рублей (а 3990 и подавно) несколько ниже, чем семь. «Альтокар» запускается 15 апреля, но ребята предложили протестировать их сервис заранее, предупредив, что многое не готово.

Мобильное приложение находится в альфа-стадии, а километры мне прописали «МайЭсКюЭльАдмином» прямо в базе — всё это понятно, я бы тоже не спешил с украшательствами, пока не набрал клиентскую базу.

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

Такси (727.10КиБ)

Приложение, как я сказал, находится в стадии «альфы», поэтому выглядит пока незатейливо. Вот экран вызова такси, минимализм:

Экран вызова такси (170.95КиБ)

Показан мой баланс в километрах, адрес, есть поле для коментария и отметка требуется ли детское кресло, это всё. Следующий экран так же содержит только самый минимум, состояние заказа и кнопка отмены:

Экран состояния заказа (180.15КиБ)

Больше информации приходит по СМС, там можно увидеть номер и марку машины, а так же имя водителя:

SMS (200.72КиБ)

После поездки на почту приходит небольшой отчёт, километраж, адрес, время простоя и так далее:

Отчёт (310.93КиБ)

Время простоя — важный фактор, потому что бесплатны только первые 10 минут ожидания и 40 секунд остановки, дальше каждая минута тарифицируется как 0,3 километра. Есть и другие вещи, о которых стоит знать — поездки менее двух километров приравниваются к двум километрам, а каждый километр за городом (более 40 от Казани) умножается на 1,2.

Все эти факторы (а так же выбор маршрута водителем из-за пробок, например), могут влиять на километраж в сторону увеличения от ожидаемого. Например, сегодня, судя по картам «Яндекса» я должен быть проехать 6,2 км, а на деле потратил 7,32. Разница невелика, но я и не в час пик ездил.

Так же сказывается недостаток водителей — «Альтокар» ещё толком не запускались, поэтому водителей мало. Обещают время ожидания около 20 минут, но по факту приезжают за 5—10. Думаю, это пока связано с тем, что клиентов тоже мало.

В общем, пока впечатления положительные, дальше посмотрим.

16 комментариев

Чтение про себя

1927 году, в статье, озаглавленной «Voces Paginarum» (Philologus 82) венгерский учёный Йозеф Балох пытался доказать, что чтение про себя в древнем мире было практически неизвестно. 41 год спустя, в 1968-м, Бернард М. Нокс («Silent Reading in Antiquity», в журнале Greek, Roman and Byzantine Studies 9/4 [Зима 1968]) возражает Балоху, утверждая, что «обычно древние книги читали вслух, но нет никаких доказательство того, что чтение про себя было чем-то экстраординарным».

И всё же примеры, приведённые Ноксом (некоторые из них цитирую и я), выглядят недостаточно убедительными и подтверждают скорее, что чтение про себя было, вероятнее всего, исключением, а не правилом.

— из «Истории чтения» Альберто Мангуэля.

7 комментариев

Как скачать документ из АИС ЦГАСО-3

Архив ЦГАСО несколько изменил у себя вёрстку и предыдущий способ скачивания работать перестал. Сегодня мне понадобились документы из этого архива, пришлось посмотреть в чём дело.

Для того, чтобы скачать листы дела, вам нужно в браузере (настоятельно рекомендую «Хром», в других браузерах я код не испытывал) перейти в раздел «Требования дел» и открыть на просмотр нужное вам дело (для этого нужно нажать на значок «книжки» в колонце «Действие»).

Дело (38.24КиБ)

Когда дело откроется, нужно открыть панель разработчика (открывается по Ctrl+Alt+I на «Виндоузе» или Cmd+Alt+I на «Маках») и там перейти во вкладку «Консоль» (Console). В этой вкладке вставить нижеприведённый код и нажать «Энтер».

!function () {
    var id = '[id=storageFilesViewerPnl]';
    var bt = '[id$=ForwardBtn]';
    var pages = {};
    var o = document.querySelector(id);

    !function _observe(undefined) {
        var ob = new MutationObserver(function() {
            var imgs = $(id+' img[src*=Pages]:first');
            if (imgs && imgs[0]) {
                var page = imgs[0].src.match(/id=([^&]+)/)[1];
                if (pages[page] == undefined) {
                    pages[page] = true;

                    ob.disconnect();

                    var next = $(bt);
                    if (next && next[0]) {
                        _observe();
                        next[0].click();
                    } else {
                        console.clear();
                        console.log("dxo.itemsValue=['" + Object.keys(pages).join("','")+"'];");
                    }
                }
            }
        });

        ob.observe(o, { childList: true, attributes: true, subtree: true, attributeFilter: ['src'] });
    }();

    o.setAttribute('src', true);
}();

Начнётся пролистывание документа. Запаситесь терпением. Как только оно закончится, на экране появится длинная строка, как на скриншоте ниже. Её надо скопировать в файл целиком.

Длинная строка в «Хроме» (302.25КиБ)

Далее, увы, вам придётся занять компилированием. Как это делается, рассказывать не буду, ищите в интернете. Вам понадобится программа cgodownloader.go из моего репозитория, её надо сохранить к себе на диск и скомпилировать (она написана на Гоу). Ей на вход надо передать имя файла (в моём случае это 150-1-120) и директорию, куда будут сохраняться картинки листов дела (у меня это 150-1-201-pict):

Запуск cgodownloader.go (27.49КиБ)

Когда программа закончит работу, в указанном вами директории будет лежать дело целиком.

83 комментария

Дыбонины в Новом Исакове (Васильевке)

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

Речь пойдёт о Дыбониных — моих предках-однодворцах с маминой стороны, в исследовании которых я сегодня немного продвинулся.

Всё, что я о них знаю, в основном, найдено путём кропотливого сквозного просмотра дел самарского архива. Самарский архив частично оцифрован, но, к сожалению, заголовки дел иногда ничего не говорят исследователю. Так в фонде 150, описи 1, деле 125, которое называется буквально «О прибытии помещичьих крестьян Староверского пр. Бугульминского у.» я случайно нашёл ревизскую сказку по нужному мне насёленному пункту и упоминание своих предков, причём впервые с фамилией.

В прошлых своих исследованиях я остановился на том факте, что Дыбонины (на 1850 год) жили в небольшой деревне Новое Исаково. Заголовок дела «О прибытии…» предполагает переезд откуда-то, но откуда — неизвестно (надо ещё раз выписать дело и попробовать прочитать его полностью, возможно есть какие-то подсказки).

Деревней и моими предками (Дыбонины на то время были помещичьими крестьянами) владели Аничковы, краткую родословную которых я тоже на всякий случай изготовил:

Схема родословной семьи Аничковых: Михаил, Никанор, Иван, Анна (?–1838), Фёдор, Василий (1814–?), Надежда, Николай — с датами и связями поколений.
Аничковы

Что-то к 1850 году серьёзно выкосило эту семью, поэтому титульники пестрят словами о наследовании, что и позволило мне за пару минут нарисовать четыре поколения этой семьи. Возможно однажды мне это пригодится, пока же просто положу это в копилку фактов, эти населённые пункты постоянно меняли владельцев, не исключено, что в записях о переуступке где-то могут упоминаться и мои предки.

Изучение титульника переписи деревни даёт нам два интересных факта: селом владел Валерьян Иванович Аничков (на родословной выше его нет) и, что более интересно, у деревни было другое название — Васильевка.

Ревизская сказка Оренбургской губернии, Бурцевского уезда, подпоручика Василия Иванова, от 15 октября 1795 года, с перечнем дворовых людей.
Новое Исаково — это Васильевка

Название Новое Исаково, как мне казалось, намекает на возраст относительно Старого Исакова (другое название которого — Лисьи Горы), но на нарисованной от руки карте 1805 года, которая меня постоянно выручает, Васильевка (точнее — деревня Васильевская) легко находится, тогда как Лисьих Гор (или какого-то другого населённого пункта на этом месте) просто нет.

Я выделил опорные точки, чтобы было легче ориентироваться — красным село Спасское, циановым — село Наратлы, жёлтым — Новое Исаково (Васильевскую). О правильности ориентирования говорят так же названия речек — Дымка и Бобровка, которые текут рядом.

Сравнение старой карты с отметкой «Село Спасское» и современной карты, где на том же месте указано «Спасское», а рядом — «Новое Исаково» и «Старое Исаково».
Новое Исаково и Васильевка на картах

Что это нам даёт? Крайне важную штуку — новое название для поиска. Как видите, в 1805 году название Исаково даже не упоминается, а сама деревня есть. Бумаги по этому региону есть в башкирском архиве — тоже электронном, где по и Васильевке, и по Васильевской находится несколько документов.

Буду продолжать поиски.

3 комментария

Это не бином Ньютона

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

Вы ведь не можете сказать, что это не ракетостроение, коль скоро именно им и занимаетесь? Оказалось, что ракетостроители говорят: „В конце концов, это не нейрохирургия“.

Ещё через некоторое время репортёр побывал в отделении нейрохирургии больницы Джонса Гопкинса и задал там аналогичный вопрос. Врачи немного подумали и дали ответ: „Это не ядерная физика“. Естественно, репортёру очень захотелось узнать, как в подобных ситуациях выражаются физики-ядерщики, и он, находясь в одном из ведущих институтов в этой области, спросил их.

Физики посмотрели на него с презрением, но потом снизошли и объяснили, что они говорят: „Это не социология“.

— из книги Говарда Бехара и Джанет Голдстайн „Дело не в кофе. Корпоративная культура Starbucks“.

Во внутренних сервисах „Яндекса“ много лет назад мы говорили „задача-чёрная дыра“ — в том смысле, что неясно сколько ресурсов она съест.

15 комментариев

PHP7: scalar hinting

Продолжаю потихоньку наблюдать за развитием ПХП 7. Сегодня с утра выписывал из репозитория и компилировал новую версию, заметил, что в  языке появилось указание типов для скаляров — поддерживаются int, float, string и bool.

Выглядит всё довольно естественно:

<?php
class Test
{
    public function __toString()
    {
        return "test";
    }
}

function len(string $a): int {
    return strlen($a);
}

echo len(new Test);
echo len(new stdClass); // Fatal error: Argument 1 passed to len() must be of the type string, object given

В данном случае первый вызов ошибку не вызовет (в отличие от второго), так как у объекта есть магический метод __toString, который вызывается, когда объект требуется привести к строке, так что всё логично. Возможные преобразования описаны в документации и ничего нового там нет, всё в соответствии с текущей логикой языка.

Есть и второй режим работы — строгий. Его можно включить при помощи конструкции declare, которая должна быть первой конструкцией языка (теперь у неё приоритет даже над namespace) в файле:

<?php
declare(strict_types=1);
namespace Test;

class Test
{
    public function __toString()
    {
        return "test";
    }
}

function len(string $a): int {
    return strlen($a);
}

echo len(new Test); // Fatal error: Argument 1 passed to Test\len() must be of the type string, object given

В этом случае все проверки на тип становятся строгими и никаких неявных преобразований не допускается.

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

6 комментариев

Спецэффекты в СССР



Очень интересный небольшой документальный материал о Павле Клушанцеве, который в 50-х годах снимал в СССР кино со спецэффектами мирового уровня.

28 комментариев

99 бутылок: 𝄢 Cello

55. 𝄢 Cello. Попробовал попрограммировать с использованием библиотеки «libCello» — это набор макросов к Си, вводящих в язык кучу комплексных типов, простую работу с выделением и освобождением памяти под них, лямбда-функции, классы и так далее.

В документации выглядело неплохо, но по факту оказалось, что библиотека недописана, а документация неполная и содержит ошибки. Шаг в сторону и программа вылетает. Например, она падает, если попытаться использовать возвращаемое лямбдой значение.

Пример ошибки в документации — функции в «стиле Си» не могут быть заданы внутри функции main, хотя на сайте указан пример, в котором утверждается обратное (и он не компилируется).

По идее, библиотека должна упрощать программирование, но в моём случае (я понимаю, «песня про пиво» не совсем та программа, в которой раскрывается эта библиотека) всё было ровно наоборот — на чистом Си я справился бы значительно быстрее.

Если бы её дописать и достойно задокументировать, вышло бы что-то интересное, пока же я пас — надо знать в деталях каждый макрос (а их там очень много) чтобы понять из-за чего скомпилированное в очередной раз упало.

#include "Cello.h"

int main() {
    lambda(bottles, args) {
        var beer = cast(at(args, 0), Int);

        if_eq(beer, $(Int, 0)) {
            print("no bottles");
        } else {
            if_gt(beer, $(Int, 1)) {
                print("%d bottles", beer);
            } else {
                print("1 bottle");
            };			
        }

        return None;
    };

    for (var beer = $(Int, 99); gt(beer, $(Int, 0));) {
        call(bottles, beer);
        print(" on the wall, ");
        call(bottles, beer);
        println(".");

        print("Take one down and pass it around, ");
        sub(beer, $(Int, 1));
        call(bottles, beer);
        println(" of beer on the wall.\n");
    }

    println("No more bottles of beer on the wall, no more bottles of beer.");
    println("Go to the store and buy some more, 99 bottles of beer on the wall.");
}

Судя по репозиторию, автор интерес к своему детищу не потерял, будем надеяться, что когда-нибудь из этого получится что-то вроде гугловского «Гоу».

2 комментария

Не плюй в колодец, вылетит — не поймаешь

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

8 комментариев

PostgreSQL: сортировка без учёта регистра

Мы переводим свои некоторые продукты с «Оракла» на «Постргрес» и постоянно сталкиваемся с какими-то различиями разной величины. Сегодняшнее открытие — «Постгрес» (в отличие от «Оракла») сортирует числовые значения без учёта регистра:

test=# SELECT * FROM (SELECT 'Ба' UNION ALL SELECT 'бб' UNION ALL SELECT 'Бв') _ ORDER BY 1;
 ?column?
----------
 Ба
 бб
 Бв
(3 строки)

Ни в одном описании опыта такого же перехода я почему-то не натыкался на такую проблему. Если регистр для вас важен, то есть целых два выхода. Либо сменить принцип сравнения:

test=# SELECT * FROM (SELECT 'Ба' AS str UNION ALL SELECT 'бб' UNION ALL SELECT 'Бв') _ ORDER BY str COLLATE "C";
 str
-----
 Ба
 Бв
 бб
(3 строки)

Либо преобразовать строку к бинарному типу:

test=# SELECT * FROM (SELECT 'Ба' AS str UNION ALL SELECT 'бб' UNION ALL SELECT 'Бв') _ ORDER BY str::bytea;
 str
-----
 Ба
 Бв
 бб
(3 строки)

Правда в последнем случае неясно сможет ли «Постгрес» использовать индекс — мы пока таких испытаний не проводили.

9 комментариев

text-decoration-line

Wavy (30.66КиБ)

Есть такая договорённость в вебе — псевдоссылки (которые похожи на ссылки, но не уводят со страницы) подчёркивать не сплошной чертой, а прерывистой или точечной. Обычно такую черту делают бордюром снизу тега, но если настоящие ссылки сделаны через text-decoration: underline, то черта оказывается на разной высоте: у ссылок она выше, чем у псевдоссылок.

Сейчас браузеры начинают поддерживать свойство text-decoration-line, но с переменным успехом — Хром — поддержка выключена по-умолчанию, Файерфокс поддерживает в полном объёме, Сафари как утверждает «КенАйЮз» — не поддерживает, ИЕ — тоже.

Оказалось, в данном случае — доверяй, но проверяй. «Сафари» (по крайней мере восьмая версия) всё-таки частично поддерживает это свойство, просто не все значения — отрисовываются wavy (на скриншоте), double и solid (остальные значения превращаются в solid).

4 комментария

Mu, H, D, Т

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

Более того, появился новый раздел химии — нюонная химия, которая занимается разработкой химических применений Mu. Насколько я понимаю, её поле деятельности недавно расширилось — к списку добавился мюонный атом гелия (его обозначают как ⁴H). Исследование соединений мюонных элементов позволило выявить новый тип химических связей — вибрационный.

Насколько я понял, смысл в том, что мюонный элемент «вибрирует» между двумя разными элементами, так что молекула, как бы кратковременно разваливается и существует в динамическом равновесии переходя через стадии (на примере одного из таких химических соединений)  Br + MuBr → BrMuBr → BrMu + Br, а потом в обратном направлении.

Что интересно, наличие этой связи обнаружили химики-теоретики ещё в 80-х годах, но тогда не удалось обнаружить эффект на практике.

2 комментария

PHP7: функции → опкоды

Как известно, в ПХП7 некоторые функции будут заменены на опкоды для ускорения работы. Вызов функции — дорогая операция в этом интерпретаторе, а опкоды — дёшевы. Я заглянул в исходные коды (см. функцию zend_try_compile_special_func, если интересно) и нашёл там список функций, которые заменяются в текущей версии «семёрки».

Это strlen, все функции is_* (is_float, is_string и прочие), defined, call_user_func_array, call_user_func и assert.

15 комментариев

Goracle

В прошлом году немного рассказывал о взаимодействии языка «Гоу» и «Оракла» — я тогда выбирал из двух драйверов и выбрал в итоге ГОракл. Всё в нём хорошо, да вот незадача — некоторые запросы не выполнялись, падало всё с невнятной ошибкой ORA-22060.

Разбирательство привело меня к мысли, что дело в числовых значениях — если запрос возвращал только строки, всё было нормально. Я тогда преобразовал всё при помощи TO_CHAR, разбирая внутри «Гоу» строку в число и успокоился.

На прошлой неделе мне пришлось озаботиться увеличением производительности получившего и разобрался в проблеме чуть детальнее. Не скажу, что понимаю в чём дело (в код драйвера не смотрел), но выглядит всё так, как будто драйвер падает, если на месте числа из «Оракла» может прийти NULL. Например, агрегатные функции (я пробовал сумму и среднее) падения не вызывают. Опять же, если «защитить» все числа функцией NVL — тоже всё хорошо.

Так что если вы видите при использовании этого драйвера ошибки похожие на те, что ниже

ERR=&oracle.Error{Code:22060, Message:"[-1] ORA-22060: argument [2] is an invalid or uninitialized number
ORA-22060: argument [2] is an invalid or uninitialized number

Попробуйте обернуть все числовые возвращаемые значения функцией NVL, должно помочь.

2 комментария

Мир — иллюзия

Платье (78.01КиБ)

Ребята, какого цвета платье? Ближе к бело-золотому или к чёрно-синему? Варианты оставляйте в комментариях.

23 комментария

Toki!

Десять лет назад я, с подачи Ильи Бирмана, выучил смешной язык (не программирования) — «токипона». Я редко о нём вспоминал, но послевкусие он оставил отличное — это был приятный опыт. Язык вполне реально выучить за 2—3 дня целиком, собственно ровно этим он и интересен.

Сегодня случайно, в командировке, повстречал свою давнюю подругу — Светлану Грачёву. К сожалению, у меня и у неё времени было немного, но как-то слово за слово вспомнили и «токипону» — Света давно занимается языками и посещает тематические конференции. На одной из них она повстречала создательницу языка — Соню Элен Кису, которая подписала моей подруге учебник языка.

На «токапоне», естественно. Причём, у Светы книга была с собой — в рюкзаке, поэтому у меня есть возможность показать фотографию.

Обложка книги «Toki Pona: The Language of Good» Соньи Ланг с жёлтым смайликом и рукописная страница с надписью на токипона и подписью «Sonja

Поделился этим с Ильёй, а он (напоминаю — десять лет прошло!) ответил мне на «токепоне», да ещё и удивился, что я ничегошеньки не помню. Заодно помог перевести надпись на книге: «Светлана! Солнце греет нас всех. Люби и твори добро. Соня».

Кстати, мы когда-то внесли свой вклад в язык — придумали слово «неделя» («tenpo pi pali ali»), правда в словари оно не вошло.

7 комментариев

PHP: бесполезная микрооптимизация

Годы назад, когда многие увлекались микрооптимизациями ПХП, была среди них и такая — двойные кавычки заменяли на одинарные, первые были немного медленее. Причина вполне понятна — в строке, окружённой двойными кавычками, разрешена интерполяция — вставка переменных прямо в строку.

Выигрыш был мал, как по мне, но многим и этой разницы было достаточно.

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

Сегодня проверил — примерно так оно и есть (ниже — опкоды ПХП):

line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   ADD_STRING                                       ~0      'double+'
         1        ADD_VAR                                          ~0      ~0, !0
         2        ADD_STRING                                       ~0      ~0, '+quotes'
         3        ECHO                                                     ~0
   4     4      > RETURN

Нет никакой разницы какой вид кавычек использован (в моём примере — двойные с переменной посередине) — внутреннее представление не различается.

Вывод такой: можно спокойно использовать двойные кавычки везде, кроме мест, где вам важно экранирование — там можно использовать одинарные, если это удобнее.

Оставить комментарий