Куликовская байка
И Куликовская битва, и Невская придуманы во времена Ивана III и Ивана Грозного, когда надо было славить предков, и этими предками стали Александр Невский и Дмитрий Донской. Видно, как от Краткого летописного свода к «Задонщине» и «Сказанию о Мамаевом побоище» нарастает количество деталей о Куликовской битве: чем позднее источник, тем их больше.
Московские князья вели себя по отношению к татарам довольно трусливо, а героически себя вели, например, тверские и черниговские. Чтобы утвердить значимость Александра Невского, который был просто татарским вассалом, надо было найти
какую-то дату, вот ему и придумали победу над шведами и над немцами.
— из статьи «23 мифа, которые раздражают ученых». Вот уж неожиданно.
Мартин Фефилович Степанищев
В 1632 году указом Михаила, первого русского царя из династии Романовых, был сформирован первый ре́йтарский полк — конница с огнестрельным оружием. Пётр Великий начал преобразование конницы в драгунские полки, но тем не менее, рейтары ещё успели повоевать в Великой северной войне (1700—1721 гг).
Как примерно выглядели рейтары, можно увидеть на картинке художника Олега Петровича Фёдорова:

В самом начале
Кроме моего прапрапрапрапрапрапрадеда Костентина, мне пока известно ещё трое детей Мартина: Яков и Сергей, умершие
Интересно, что в той местности — в селе Средней Опочки, как оно тогда называлось (я о нём уже писал) Староосколького уезда Заровенского стана в начале

Через 40 лет Степанищевых там было уже очень много — то ли расплодились, то ли остальные перехали вслед за своими родственниками.
Ещё интересный факт — Степанищевы были однодворцами и, насколько я знаю, крепостные этому сословию были не положены, но это правило регулярно нарушалось. Вот и у моего предка крепостные были. Впрочем, ему слово, это записано
Отроду мне, Мартину, сорок четыре года, у меня дети: Афонасей петнатцати, Костентин осми лет. Да у меня ж во дворе моем старинной крепосной дворовой человек Федот Яковлев сын Пузиков осмидесят девяти лет. Да дяди моего драгуна Семена Маркова сына Степанищева дворовые люди: Фефил Евдокимов сын Зиновьев пятидесят одного году, у него дети: Кирьян двенатцати, Василей двенатцати, близнята.
И оные дворовые люди своей пашни не имеют, а пашут мой человек на меня, а дяди моего драгуна — дворовые ево люди на него, драгуна, мою помесную землю. А окроме того в доме у меня детей и братьев и свойственников, крестьян и бобылей, задворных и деловых людей и никаких наемных работников нет. А буде я сказал ложно или кого утаил, и за то указал бы Великий Государь учинить мне жестокое наказанья: бить кнутом, и за всякою утаеную душу взять из двора моего по лутчему человеку в салдаты не в зачет положенных рекрут, а утаеных дворовых людей взять на себя, Великого Государя, вдвоя и на оных против числа их выделить в том же селе из дач земли моей равною часть, что на них принадлежит по розмеру безповоротно.
Интересно бы выяснить откуда приехали мои предки в Среднюю Апочку, но как это сделать я пока не представляю. Когда этот населённый пункт был основан, мне неизвестно, но в Писцовой книге Староосколького уезда 1698 года он упоминается в составе Ублинского стана (по названию реки Убля, которая существует до сих пор). Может мои предки были одними из основателей? Пока сказать невозможно.
🐦, где ты был? На Фонтанке 🍺 пил, выпил 🍺, выпил 🍻…
Я уже писал несколько раз на эту тему, но меня всё время просят рассказать не изменилось ли
Если верить моей анкете на «Моём круге» (сам я в датах постоянно путаюсь), я четыре года как переехал из Москвы в Казань и, как следствие, вынуждено сменил племя — из сов, приходящих на работу к 12, к жаворонкам, встающим в семь утра. Превращение чисто внешнее — я просто все четыре года невысыпающаяся сова и уж тем более прозелитизмом не заразился.
А то бывают ребята, которые в силу неких обстоятельств или непобедимой лени встают поздно, считая себя совами, после крутой смены жизненных обстоятельств, обнаруживают, что вставать рано их особо не напрягает, из чего делают вывод, что никаких сов нет.
Увы, мой четырёхлетний опыт показывает, что это не так. Последние несколько лет я встаю в семь утра и легче мне не стало, напротив, раздражение от этого факта только накапливается. Пострадала вся моя жизнь: весь мой творческий потенциал приходится на вечер и ночь и мне тяжело его использовать в текущем моём графике. Первые несколько часов после пробуждения я вообще бесполезен.
За эти годы пришлось сильно поменять свой образ жизни.
Так же выручают очень плотные шторы, которые висят в спальне и привычка вечером не включать свет в кабинете — это даёт возможность продлить ощущение тишины, спокойствия и концентрации, которые дают вечер и ночь.
Об оппозиции
— Раз мы говорим об оппозиции, могу я спросить, почему Вы не хотите приоткрыть систему? Вы не видите никакой необходимости в двухпартийной системе?
— Вы просто повторяете взгляды учившейся на западе интеллигенции, что нам необходима оппозиция, чтобы она могла сменить правительство. Но в оппозиции не может быть достаточно много способных людей для того, чтобы взять власть в свои руки. Вот и все. Даже мы не можем найти достаточное количество подходящих людей для работы в правительстве, мы находимся в постоянном поиске таких кандидатов.
«Суровые истины во имя движения Сингапура вперед» Ли Куан Ю.
Вот такой ещё взгляд на оппозицию существует. Ли Куан Ю — первый
Иннополис
Не знаю, слышали ли вы про Иннополис — новый город под Казанью, строящийся специально для айтишников. У нас этот Иннополис — притча во языцех, в среде айтишников вряд ли есть человек, кому не знакомо это название.
В воскресенье съедили с одним коллегой туда на велосипедах, интересно было посмотреть на то, что есть. Несмотря на то, что там уже живут студенты, смотреть пока особо не на что.
Готовы, квартал жилых домов, без магазинов, кафе и аптек, но с детскими площадками:

Университет «Иннополис», в котором как говорят мои знакомые, даже поесть негде (столовая в четвёртом корпусе, куда я заходил, действительно закрыта):


Помимо этого есть спортзал (вчера он был закрыт) и пара зданий, которые ещё строятся. Больше нет ничего. Весь город можно осмотреть за 10 минут (это не шутка). А ещё, ничего, буквально ничего не сделано для того, чтобы по городу можно было передвигаться на велосипеде или с коляской — велодорожки и пандусы отсутствуют, как класс. Это очень странно — ведь город стоится прежде всего для молодёжи.
Резюмируя: смотреть не на что, поесть и остановиться негде, но чувствуется, что если строительство не забросят, через несколько лет учиться там будет интересно.
«Эль-Капитан»
Никогда в жизни не ставил
В общем, поставил себе третью бету
«Впути»

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

Меня можно поздравить сразу с двумя вещами.
Долго выбирал и примеривался, например, не был уверен, что при моём росте мне подойдут колёса на три дюйма больше и что 2×10 после 3×9 будет удобна. Первое время, конечно, пришлось попривыкать, но сейчас уже чувствую себя уверенно.

Конечно, операция сильно выбила меня из колеи (сначала ездил потихоньку — меньше 20 км, позавчера решился на 50, а сегодня сделал рывок), но удалось быстро вернуться в форму.
Марксизм-ленинизм

Сегодня съездил на велике в Старое Аракчино, посмотреть на Храм Всех Религий. На стене одной из башен увидел серп и молот и вспомнил, как мы спорили с одним моим приятелем — является ли комунизм религией. Мой визави считал, что нет, мне казалось и кажется, что да.
Ну смотрите, некое учение без строгого доказательства — имеется, есть проповедники, есть общины, есть культовые места (очень рекомендую дом Ленина в Ульяновске и дом Сталина в Го́ри), заповеди, соответствующая литература и даже святые мощи, до сих пор лежащие не в музее, а на Красной площади (если убрать из оттуда вам кажется кощунственной мыслью, святотарством, то вглядитесь в это чувство — что оно вам напоминает?).
Кажется, что только богов как таковых нет. Но это только на первый взгляд. Я прожил при советсткой власти только 14 лет, но хорошо помню насколько силён был культ «дедушки Ленина» — я
Признаться, моя точка зрения несколько шаткая и даже спекулятивная — потому что я не специалист ни в советском периоде, ни в религиях. Буду рад вашим комментариям, особенно тем, кому есть что вспомнить о советских временах и культе руководителей того времени.
Lukøje

Я
Чтобы расплавленный автомат не капал на казённые сапоги…
Прочитал надысь на «Пакабу» «Попурри лайфхаков для армии» (кто и зачем, кстати, начал называть хитрости лайфхаками?), заинтересовал пункт номер 12:
Если после прыжка основной и запасной парашют не раскрывается — достань парашютную сумку и засунь туда ноги, согнутые в коленях — так тебя легче будет собрать
При том, что весь остальной текст выглядит жизненно весомым и серьёзным, как стадо бегемотов, создаётся ощущение, что дюжинный пункт добавлен не ради хохмы. Тогда возникает ряд законных вопросов.
Интересно, кто изобретатель данного метода и как он его популяризировал? Есть ли у метода евангелисты? А самое главное — есть ли те, у кого такой гемохроматоз в гонадах, чтобы при падении с парашютной высоты вспомнить этот совет и начать хладнокровно его выполнять, дабы на последнем пути осчастливить людей внизу хотя бы такой малостью?
«Кремниевая долина»
Пока отхожу от операции, смотрю сериал «Кремниевая долина» и дабы не заржавел мозг, сделал расшифровку надписи на футболке Эрлиха — одного из героев сериала, на трёх языках: Перле, Пайтоне и Тикле. Листинг один для трёх языков:
#\
"@{[$\=qq{\n},\
print map {chr $_} (0b1000010, 0b1101001, 0b1110100, 0b1100011, 0b1101111, 0b1101001, 0b1101110)]}";#\
__END__ = 1;\
print(''.join(chr(b) for b in (0b1000010, 0b1101001, 0b1110100, 0b1100011, 0b1101111, 0b1101001, 0b1101110))); #\
"""
foreach name {01000010 01101001 01110100 01100011 01101111 01101001 01101110} {
puts -nonewline [binary format B* $name]
}
puts {} ;#"""Дольше всего с Перлом возился, пока не вспомнил, что у него есть вычисление выражений внутри строк через конструкцию @{[…]}. Нужно рассказать как всё работает?
МРТ

Я тут на операцию сходил, в качестве основного участника. Как оказалось
Но речь не об этом. Перед операцией я делал МРТ, причём на определённом аппарате, куда
Разница, оказывается, в детализации. На снимке слева — обычный аппарат, справа — тот, который так полюбили врачи нашего города, обратите внимание на то как хорошо справа видны сосуды.
Политкорректный Unicode 8
Я всё ждал, когда это появится, и вот наконец в восьмом Юникоде обнаружились модификаторы цвета кожи. Модификаторов в Юникоде — пруд пруди, это специальные символы, которые сами по себе ничего не значат — они привносят

Вот восьмой Юникод вводит модификаторы цвета (на картинке выше), при комбинировании с которыми цветные «эмоджи», которые уже давно входят в Юникод, могут менять свой цвет:
Юникод всё усложняется и усложняется, чувствую, однажды они придут
Изучаю TCL
Учу «Тикль» потихонечку — вечерами, урывками. Язык нравится очень простым синтаксисом, который позволяет делать крутые штуки — всё в языке считается строкой, а вопросом интерпретации строки занимается код. Это даёт возможность, например, расширять язык по необходимости.
Попробую пояснить как это работает. В данном случае все три параметра, передаваемых команде puts эквивалентны:
puts Hello; # это строка
puts "Hello"; # это тоже строка
puts {Hello}; # и это строка!То есть фигурные скобки — это не «блок кода», а строка, правда со своими особыми правилами интерполяции. Это, вместе с конструкциями изменения уровня выполнения и позволяет создавать собственные дополнения к языку. Например, добавил в язык конструкцию unless (это такой if, только проверяется не истинность, а ложность условия):
proc unless {condition body} {
;# uplevel — конструкция, позволяющая выполнить блок выше по стеку
;# то есть, в данном случае, мы выполняем код в контектсе вызвавшего
;# процедуру unless кода, что позволяет увидеть все переменные, которые там определены
uplevel [list if !($condition) $body]
}
set var false
;# Это наша новая команда
unless { $var } {
puts "False: $var" ;# напечатает «False: false»
}
set var true
;# А это обычный if, которые есть в языке
if { $var } {
puts "True: $var" ;# напечатает «True: true»
}Надо бы, конечно,
Tcl/tk и Retina
О, оказывается, можно «ретинизировать» интерпретатор Тикля — сделать так, чтобы программы на этом языке хорошо смотрелись на маковской ретине (см. скриншот).

Для этого нужно скачать программу Retinizer и бросить в неё Wish.app, который находится в /System/Library/Frameworks/Tk.framework/Versions/Current/Resources/
Странный PHP
А вот ПХП, в отличие от ДжаваСкрипта действительно странный. Давайте посмотрим на такой вот код и его результат:
$ php -a
Interactive shell
php > $a = 1; echo $a + $a++;
3
php > $a = 1; echo $a + $a + $a++;
3Как видите, в том и другом случае у нас один результат — «3». Даже первая «тройка», казалось бы, противоречит здравому смыслу, а вторая — тем более. Что же происходит? Давайте разбираться.
Как работает первый пример?
Операция сложения левоассоциативна — разбор агрументов начинается слева направо. Двигаясь таким образом, парсер видит выражение в котором две операции — сложение и постинкремент, у постинкремента приоритет выше, поэтому вычисляется сначала он — возвращая в качестве значения «1» и увеличивая переменную на единицу, потом вычисляется операция сложения, складывая полученную единицу с двойкой (так как постинкремент увеличил значение переменной на единицу). Получается «три».
Похожим образом обрабатывается умножение вместе со сложением: 2 + 2 * 2 = 6, а не 8, потому что умножение имеет более высокий приоритет.
Во втором случае всё происходит похожим образом, но чуть иначе — парсер, обрабатывая левоассоциативное сложение, берёт первые два аргумента, складывает их, получает «двойку», двигается дальше, видит двойку, сложение и постинкремент переменной. Постинкремент более приоритетный, он его вычисляет раньше, возвращая в сложение «единицу», значение переменной увеличивается, но его уже никто не использует — складываются числа «2» (от предыдущего сложения) и «1» (вернул постинкремент). Получается «три».

Тут с восьмой строки начинается второй пример (правда присваивание единицы во втором примере я опустил — как видите второй операции ASSIGN нет).
Кристина в красном
«Кристина в красном» — серия цветных (!) фотографий 1913 года, которые сделал Мервин О’Горман, британский авиационный инженер по методу автохрома. На фотографиях дочь Мервина — Кристина. Такие фото делались на стеклянные пластины, покрытые крахмалом, по методу запатентованному братьями Люмьер в 1903 году.
«Странный» JS
В ДжаваСкрипте полно странностей, да, но популярная картинка, которая получила сейчас широкое хождение (не буду её приводить, просто суть перепишу) имеет отношение только к безграмотности её авторов. Суть такова:
[] + [] // массив + массив
"" // результат — пустая строка
[] + {} // массив + объект
"[object Object]" // В результате получаем объект? Ну ок
{} + [] // объект + массив
0 // 0? Реально?
{} + {} // объект + объект
NaN // Not a Number? WAT?Выглядит очень всё ооочень странно, если думать, что происходит именно то, что написано в коментариях справа. На самом деле происходящее неверно интерпретировано авторами.
В ДжаваСкрипте фигурные скобки, помимо объекта, задают ещё и блок кода. В данном случае все «объекты» слева — на самом деле блоки кода. Откроем консоль и попробуем это доказать:

Как видите, в левый блок можно без труда добавить код и станет очевидно, что это не описание объекта. Так два последних обсуждаемых примера распадаются на две независимые команды — определение пустого блока кода, который ничего не выполнит и унарную операция «плюс» над пустым объектом или массивом.
С массивом, возвращающим пустоту при суммировании (конкатенации) всё ещё проще — в данном случае производится попытка вызвать метод toString, который у массива выводит строку его значений через запятую. Так как значений нет, строка пустая.
В общем, ничего сильно странного не происходит.
PHP/FI
На ПХП я начинал программировать с третьей версии, предыдущую, вторую, никогда в глаза не видел. Занялся сегодня археологией, что интересно, интерпретатор собрался под «Мак»
По описанию, вторая версия — удивительно бедный язык, я попытался написать подобие функции var_dump (которой тогда в языке не было), описал в комментариях с чем столкнулся. Надо сказать, некоторые вещи очень сильно удивили.
Вообще, я хотел написать одну функцию, а отступ для вывода скаляра передавать вторым параметром, но оказалось,
В общем, пришлось сделать две разные функции.
#!php.cgi -q
<?
# однострочные комментарии только такие, два слеша не работают
/* так описываются функции */
function var_dump_scalar $var, $indent (
if ($indent) {
/* вот так выглядит конкатенация строки — плюс, а не точка */
/* интерполяции нет, а одинарные кавычки вернут код символа в них */
$indent = strtr(sprintf("%' '" + $indent + "d", 0), "0", " ");
/* функции str_repeat тоже нет, приходится вот так выкручиваться */
} else {
$indent = "";
}
/* всего три типа данных, нет булевого типа, нет ресурсов — fopen вернёт число */
/* объектов тоже нет, конечно же */
switch (gettype($var)) {
case "integer"; /* после case точка с запятой, а не двоеточие */
echo "%sint(%d)\n" $indent, $var;
break;
case "string";
echo "%sstring(%d) \"%s\"\n" $indent, strlen($var), $var;
break;
case "double";
echo "%sfloat(%f)\n" $indent, $var;
break;
}
/* можно было бы вернуть всё через return, но мне не удалось бы продемонстрировать несколько вещей */
);
function var_dump $var (
/* смотрим — передан ли параметр */
if (isset($var)) {
/* пытаемся определить — не массив ли это, отдельного типа нет */
$cnt = count($var);
if ($cnt > 1 || key($var) != "0") {
reset($var);
/* echo умеет принимать форматирующую строку */
echo "array(%d) {\n" $cnt;
/* других способов проверять конец массива нет — только итерировать по длине */
/* цикла for в языке тоже нет */
while ($cnt > 0) {
$key = key($var);
echo " [\"%s\"]=>\n" $key;
next($var);
/* тут только скаляры, так как массивов, кроме одномерных не бывает */
var_dump_scalar($var[$key], 2);
$cnt--;
}
echo "}\n";
} else {
var_dump_scalar($var, 0);
}
} else {
echo "Warning: var_dump() expects exactly 1 parameter, 0 given\n";
}
);
/* ассоциативный массив */
$b["aaa"] = "aaa";
/* числовой массив, отдельного типа массива нет, любой тип является нулевым элементом массива */
/* конструкции array(...) тоже нет, массивы задаются только так — в строку */
$a = 1;
$a[1] = 2;
/* двухмерных массивов у нас нет, это просто операция слияния массивов */
$a[] = $b;
var_dump($a);
/* Результат работы:
array(3) {
["0"]=>
int(1)
["1"]=>
int(2)
["2"]=>
string(3) "aaa"
}
*/
/* вот так заканчиваются PHP-скрипты, знака вопроса у закрывающего тега нет */
>Но самый сок, конечно, это две функции — ClearStack и SecureVar. Их я не использовал, просто не придумал как. Первая является костылём к парсеру (почитайте описание, у меня нет сил это описывать), вторая — фильтрует переменные из ГЕТ-