strtr vs. str_replace
Кроме того, часто выход
Среди подобных текстов есть и вредные. Речь об одном из них и пойдёт. Впервые на сравнение производительности функций str_replace и strtr (с одним параметром) я наткнулся очень много лет назад, тогда с ним разобрался и тему для себя закрыл.
Но такие исследования возникают постоянно, а авторы совершенно не утруждают себя ответом на вопрос «почему», так что я решил написать этот небольшой текст.
Итак, есть две функции, которые ведут себя очень похожим образом — заменяют в строке
Обратите внимание на этот код:
$r = ['xo' => 'xaxе', 'xa' => 'xo'];
$s = 'xoxo';
var_dump(str_replace(array_keys($r), array_values($r), $s)); // xoxеxoxе
var_dump(strtr($s, $r)); // xaxеxaxеОчевидно результаты разные, но почему? Потому что str_replace делает замену «в лоб» — проходя строку несколько раз, по числу заданных замен. Поэтому получается «xoxo» → «xaxexaxe» → «xoxexoxe».
Функция strtr куда более хитрая, но работает более… естественным что ли образом — т. е. так как обычно человек ждёт от функции множественной замены. Самое главное — в сделанной замене она уже ничего не заменяет.
Есть и другое отличие:
$r = ['user1' => 'one', 'user11' => 'eleven'];
$s = 'user11';
var_dump(str_replace(array_keys($r), array_values($r), $s)); // one1
var_dump(strtr($s, $r)); // elevenМой пример выглядит несколько искусственно, но это часть случая из жизни, правда очень упрощённого. Тут беда в том, что str_replace применяет свои замены слева направо — в порядке перечисления, тогда как strtr сначала сортирует их по длине.
Как видите, эти функции совершенно разные по своему действию и сравнивать по производительности их просто некорректно.
В последний раз о Кандауровых
О своих предках Кандауровых (или Кондауровых) я писал несколько раз ([1], [2], [3]), сегодня, видимо, напишу в последний, чтобы поставить символическую точку, так как источники кончились, продвижения дальше не будет.

Эта ветка выделяется тем, что она у меня рекордсменка — самый дальний предок жил аж
Я считаю, это очень хороший результат. Именитых предков у меня нет и в этой ветке очень помог затяжной судебный процесс, который попал во множество документов того времени и, как фонарём во тьме веков, выхватил несколько поколений Кондауровых. Едва ли так повезёт ещё раз.
Дерево в цепочках

Я тут в блоге
В общем, там где мне совсем сильно жмёт, я пишу иногда небольшие скрипты. Недавно написал очередной и решил поделиться. Этот скрипт (написан на ПХП7) позволяет развернуть дерево в формате GEDCOM (это общепринятый формат для хранения информации о родословной) в цепочки — то есть простраивает все пути от указанного человека до каждого его предка.
Это позволяет быстро увидеть какие ветки у вас проработаны, а какие нет. Классическое дерево на моих объёмах это уже не показывает — его просто невозможно охватить взглядом и понять где есть проблема.
Для запуска требуются два параметра: нужно указать путь до файла дерева и идентификатор человека, от которого нужно простроить цепочки, его надо посмотреть внутри файла (GEDCOM текстовый формат). Для этого нужно найти внутри запись нужной персоны и выше неё — строку вида «0 @буквыцифры@ INDI», вот часть «@буквыцифры@» и будет требуемым идентификатором.
Первые социальные сети
Итак, первый брак, заключенный дистанционно, с трансляцией в режиме реального времени, по итогам знакомства в социальной сети, — это брак Сары Ортен из Питтсбурга и Томаса Уэлша из Цинцинатти, познакомившихся в телеграфном «чате» (популярное развлечение тех лет) в 1883 году. Приглашение на виртуальную свадьбу получили все, кто в тот момент находился
«он-лайн». Пока священник и жених с невестой телеграфировали друг другу и всем «присутствующим» ритуальные вопросы и ответы, в эфире стояла гробовая тишина; а по окончании церемонии на счастливых новобрачных обрушился настоящий шквал поздравлений от незнакомцев со всех концов страны. Впрочем, первая же встреча «в реале» разрушила семейную идиллию на корню: белая, обеспеченная и «породистая» супруга подумать не могла, что ее избранник мало того что цветной, так еще и цирюльник по профессии.
И обо всем об этом пишет Джей Клейтон в замечательной книжке «Dickens in Cyberspace: The Afterlife of the Nineteenth Century in Postmodern Culture».
Проблема «в интернете никто не знает, что ты кот» существовала уже в 19 веке.
🎈 Он улетел, но обещал вернуться

Кажется со мной происходит одна вещь, которую очень трудно оценить изнутри. Трудно настолько, что я не понимаю — происходит ли это на самом деле. Вроде
Кажется я теряю интерес к окружающему миру и ухожу в себя. Наверху я вывел график постов в блог (строка кода наверху — это я Пайтоном считал статистику, блог у меня на текстовых файлах работает), снижение отчётливо видно после переезда в Казань. На провал 2005—2007 можно внимания не обращать — если я ничего не путаю, тогда я на ЖЖ переключался.
Мне
Есть и ещё признаки, я не знаю из этого ряда ли. Я нигде не выступаю, не езжу на конференции, сознательно не пишу на востребованные темы, не делаю публичных проектов, все мои новые хобби строго индивидуальны, мне
Возможно я устал от бесконечного троллинга в сети и того, что критика и кидание какашками на порядки превосходят положительные эмоции от общения в интернете (это многолетний тренд), но не всё в это укладывается.
Или в голове у меня произошёл
☭ Антисоветская шутка

На картинке нарисована старая антисоветская шутка. Сможете расшифровать смысл?
👅 Болтун — находка для шпиона
Я тут английским занялся плотно в конце прошлого года, репетитор, сериалы с субтитрами, вот это всё. Вчера смотрел очередную серию «Друзей» на английском и, может не к месту, вспомнил свой самый первый опыт устного общения с носителем английского.
Было это в примерно в самом конце
Я как раз сидел в одном из компьютерных классов
Бедный иностранец сидел
Осталось за малым — облечь моё соображение в слова. К сожалению, и это на тот момент мне далось с огромным трудом. Я потерпел полное фиаско, попытавшись сформировать в голове фразу.
Но отвечать
— Slowly! — «Slowly»? Hm… «slowly»… — удивился иностранец.
На этом наш диалог прервался, наткнувшись в самом начале на непреодолимый языковой барьер.
🏠 Дом Микляева в Казани (17 век)
Сегодня благодаря Олесе Балтусовой (за что ей огромное спасибо) побывал в так называемом «доме Михляева» (правильно — Микляева).
Во многих современных источниках это здание называется самым старым гражданским зданием Казани и её первым каменным жилым домом. Его постройка датируется концом 17 века, хотя есть мнение, что дом мог достраиваться, а значит некоторые его части могут иметь другую датировку.
Иван Афанасьевич Микляев был настоящим олигархом своего времени — крупнейший в Среднем Поволжье подрядчик вина, крупный заводчик (несколько собственных предприятий и паи), аграрий, речной судовладелец, ростовщик.
В своё время это был известный, успешнейший человек, уважаемый властью. По местной легенде в его доме справлял своё пятидесятилетие Пётр І.
Сейчас Микляева чаще вспоминают как человека, благодаря которому был построен Петропавловский собор — красивейший в Казани, один самых ярких образцов стиля петровской эпохи.
Но вернёмся к дому. В настоящее время он находится на территории швейной фабрики «Адонис» и попасть в него с улицы
Аварийность дома усложняет работы —
Впрочем, дом, очевидно, достраивался и ранее — в одном из углов дома видны клеймённые кирпичи с инициалами «МЧ» («Мария Челышева» — она владела кирпичным сараем при деревне Малые Клыки в конце 19 века), которые в других частях дома на глаза мне не попадались, а в подвале вообще часть стен сложена из тёсанного камня, в отличие от другой, кирпичной части.
Выдаёт
Даже если вы зайдёте в этот дом с закрытыми глазами или не заметите фасад, сквозь казённую краску стен всё равно проступают знаки времени — то старые решётки внутренних окон, то старинная печка, то красивые своды. Очень трудно представить как же красиво было внутри при жизни его владельцев.
Очень хочется, чтобы дом получил второе рождение и радовал жителей Казани ещё ни одну сотню лет.
Подпилил переподсоединялку вайфая
Чуть поменял «переподсоединялку вайфая» для Мака — теперь пингуется не 8.8.8.8 (это ДНС Гугла), а адрес гейта, что более надёжно. Правда с конца октября, когда я её написал много воды утекло — вайфай у меня отваливается теперь очень редко, уж не знаю что изменилось.
Пуговица с острова сокровищ
Вчера попробовал протравить ржавчину ускусом — взял шестипроцентный раствор, долил на четверть воды и положил туда монету на сутки. Позолота с лицевой стороны, к сожалению, почти сошла (её там и так немного оставалось), зато с обратной стала видна надпись.
Это оказалась фабрика Бух. Надпись полностью выглядит следующим образом (буквы «эс» неясно по какой причине оборотные):
| «БУХЪ Buch 1 Сортъ Ƨ PETERƧBURG» |
Фабрика Бух — одна из самый известных пуговичных фабрик России. Была основана в 1816 году
Фабрика ещё потом несколько раз меняла владельцев и название (но фамилия «Бух» в нём неизменно сохранялась), пока не наступила революция.
🐱 Кот и весы

У меня дома весы с вайфаем, которые умеют определять кто именно на них становится и добавлять вес в профиль всяких спортивных программ через сеть. Принцип определения профиля довольно простой — по весу, алгоритм устройства исходит из того факта, что при регулярных взвешиваниях вес человека сильно не меняется.
Недавно в нераспознанных значениях появился ещё один участник — коту
🌊 Поверка счётчиков воды
Подошёл срок замены водяных счётчиков дома. Дело длительное, да и не из дешёвых — у меня четыре счётчика, за всё около 5 тысяч. Интересно стало — так ли необходима их замена и какие есть альтернативы.
Оказалось, вместо замены можно втрое дешевле выполнить поверку счётчиков, причём это довольно быстро, делается на дому и даже не требует их снятия. Мне эту процедуру провели специалисты «Казметрологии».
В назначенное время приходит мастер с чемоданчиком, где лежит установка для поверки с эталонным счётчиком внутри. Она крепится к вашему водопроводному крану специальной трубкой.
Для поверки нужен доступ к вашему счётчику — мастер пропускает через него определённое количество воды и засекает на выносном пульте начало и конец отсчёта, эталонный счётчик покажет сколько воды за это время прошло на самом деле. Процедура повторяется для разных напоров воды.
Для каждого напора погрешность должна быть в пределах нормы. У меня все счётчики безбожно врут, придётся всё же менять. Как мне сказали, примерно половину счётчиков на вызовах меняют — не проходят поверку.
На фото выше результат одного из моих счётчиков в ванной — 8,4%, это слишком высоко, надо менять. У меня установлены счётчики «Бетар»
То ли
⛪ Деревня, которой ранее не было, а потом появилась
Изучал вчера старинные карты вокруг Мамадыша и наткнулся на очень интересное название деревни, оцените (внизу, правая сторона): деревня Что была пустошь на горе, вниз по горе, меж речек.
Запятые я расставил сам, но не уверен, что автор имел ввиду именно такую расстановку,
Как бы то ни было, стало интересно как этот населённый пункт называется теперь. Искать было непросто, так как ни один из населённых пунктов на этом куске карты не сохранил в точности то же название, но тем не менее, нашёл. Это теперь деревня Куюк Сабинского района.
Мне кажется, если вернуть историческое название, будет интересная достопримечательность.