Поскреби русского…

Картина распределения моих корней (66.34КиБ)
Процентное соотношение вклада различных народов в мою ДНК

Несколько лет назад я сдал свою ДНК на анализ. Как следствие — примерно раз в месяц мне падает в почту письмо о совпадении по ДНК с различными незнакомыми людьми, а так же некоторое количество инфографики.

Как видно на картинке выше, в основном мои предки — выходцы из Европы.

Я без понятия кто у меня из предков был эскимос, а часть южноазиатских генов — это определённо влияние Кандауровых, тюркской фамилии. Правда Кандауровы давно обрусели — по меньшей мере до 16-го века в ней имена из святцев, а более отдалённые в доступных сейчас мне бумагах не сохранились. Поэтому 1,9 процента они в одиночку обеспечить не могут.

Оказывается 1,9 процента — это довольно много. Например, если не исключать адюльтер какой-нибудь прапрапра- с заежим чистокровным гостем из Азии, то ближайший предок, который мог дать 1,9% вклада отстоит от меня всего-то на каких-то шесть поколений: уравнение 100/(2↑x) ≤ 1,9 решается при x ≥ 5,71786…, совсем недалеко.
11 комментариев
25 ноября 2017 18:17

Интернет-археология: браузер ViolaWWW

Неудачная попытка запуска (12.62КиБ)
Моя попытка запустить браузер под Линукс пока завершилась провалом

Пока читал про «См-минус-минус», наткнулся на браузер ViolaWWW. Браузер разрабатывался с 1991 года в университете Беркли одним-единственным человеком — Вэй Пей-Юанем.

Эта вещь достойна внимания из-за примечательного факта — там реализованы таблицы стилей, за несколько лет до появления CSS, а так же первый скриптовый язык — задолго до «ДжаваСкрипта» и «Си-минус-минуса»! Причём с событиями и подобием аякса!

Автор написал несколько программ на своём языке, например — шахматы. Я пока не нашёл документацию, зато обнаружил несколько примеров. Например, скрипт выводящий синусоиду:
\class {field}
\name {wave}
\parent {}
\children {wave.sb}
\script {
	switch (arg[0]) {
	case "graph":
		f = float(arg[1]);
		xx = width();
		r  = height() / 2.0;
		theta = 0;
		for (x = 20; x < xx; x += 2) {
			theta = theta + 0.1;
			y = sin(theta * f) * r + r;
			drawLine(x, y, x, y + 1);
		}
		return;
	break;
	}
	usual();
}
\width {300}
\height {200}
\
\class {slider}
\name {wave.sb}
\parent {wave}
\script {
	switch (arg[0]) {
	case "_shownPositionV":
		usual();
		send(parent(), "graph", arg[1]);
		return;
	break;
	}
	usual();
}
\x {2}
\y {2}
\width {15}
\height {200}
\shownSizeV {10}
К сожалению, позапускать программы пока нечем. Исходный код я нашёл, но под Линуксом он компилироваться не захотел, собственно, судя по коду, он никогда под ним и не собирался. Я сделал минимально необходимые правки, код собрался, но попытка запуска завершилась крахом. Подумаю стоит ли тратить силы дальше.

Даже интересно какой бы веб мы увидели сейчас, если бы этот браузер тогда получил дальнейшее распространение! Получается в 90-х он умел больше, чем некоторые браузеры в двухтысячных. Например в скриптовом языке я заметил селекторы nthChild и даже nthWord!

Насколько я могу видеть, поддерживалось более десятка форматов графики, в том числе всем знакомый GIF, правда без анимации и в формате 1987 года, а так же сейчас уже экзотический XBM (до относительно недавнего времени поддерживался «Эксплорером», «Сафари» и «Оперой»).
4 комментария
19 ноября 2017 19:21

Интернет-археология: «99 бутылок» на языке Cmm

Язык «Cmm» был разработан в 1992 году компанией «Nombas». Основной идеей языка было упрощение языка «Си», отсюда и название — C minus minus. Официальное руководство говорит, что это «Си, минус объявление типов, минус указатели». Позже язык был переименован в ScriptEase, так как упоминание «Си» отпугивало людей. Язык существовал для ДОСа, Виндоуз, ОС/2 и операционной системы компании «Новелл».

В конце 1995 года компания создала версию скриптового языка для веб-страниц, внедрённую в браузер Нетскейп. Таким образом «Си-минус-минус» был одним из первых языков фронтенда!

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

Массивы и строки, хоть и являются указателями (есть даже арифметика с ними), но этого не замечаешь — выглядят, как обычные переменные. Все lvalue передаются по указателю, для передачи по значению есть специальный синтаксис. Забавно, кстати, что точка с запятой не обязательна, прямо как в ДжаваСкрипте.

Остальные отличия от «Си» не столь заметны. Языки почти что близнецы, есть даже ограниченный предпроцессор, да и встроенные функции, в основном, сишные. Язык, видимо, претендовал сразу на несколько ниш, на нишу коммандных оболочек в том числе — в составе предпроцессора есть команда, позволяющая импортировать куски программ, указывая с какой по какую строку производить импорт. Насколько я смог заметить, это широко используется, чтобы внедрять «СиЭмЭм» внутрь шелл-скриптов различных ОС.
// Written by Evgeny Stepanischev, 2017

BottlesPlural(Beer)
{
	switch ( Beer )
	{
		case 0:
			return `no bottles`
		case 1:
			return `1 bottle`
		default:
			sprintf(Bottles, `%d bottles`, Beer)
			return Bottles
	}
}

i = 99
Bottles = BottlesPlural(i)

while ( i > 0 ) {
	printf("%s of beer on the wall, %s of beer.\n", Bottles, Bottles)
	Bottles = BottlesPlural(--i)
	printf("Take one down and pass it around, %s of beer on the wall.\n\n", Bottles)
}

printf("No more bottles of beer on the wall, no more bottles of beer.\n")
printf("Go to the store and buy some more, 99 bottles of beer on the wall.\n")
Если кому-то интересно, в интернете легко гуглятся интерпретаторы языка с описанием. Я брал 32-битный интерпретатор версии 2.11 под Виндоуз. Кстати, под ОС/2 находится и более ранняя — 1.008, выпущенная в 1993 году.
2 комментария
18 ноября 2017 22:29

Оптимизм

Одна из самых переоценённых идей в мире — оптимизм. Почему-то считается, что быть оптимистом — нормально. Когда в первый раз говоришь такое человеку, тебе немедленно выдают, что «быть оптимистом лучше, чем пессимизмом». Да нет же! Это альтернатива из разряда «лучше мне отрубят семь пальцев, чем выколят оба глаза». Я не хочу из эти вариантов выбирать! Просто не трогайте ни мои пальцы, ни мои глаза!

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

Я против оптимизма, как стиля жизни.

Во-первых, с этими ребятами не обсудишь некоторые проблемы. Для них есть страшные проблемы, которые нельзя обсуждать и неважно, что они реальны, это слишком страшно и всё, закрыли тему, не будем. Эти люди не берут аптечку в поход, не пристёгиваются в автомобиле и не держат дома огнетушителей.

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

Во-вторых, искать везде позитив — это не универсальный рецепт. У меня как-то умер родственник, а когда я этим поделился с одним оптимистом, он стал искать тут позитив. Я даже не помню, что я ему ответил, кажется предложил ему пойти на три буквы. Радикальный пример, я понимаю, зато настоящий опыт. Вот эта попытка залить любую проблему сиропом — это очень характерно.

Допустим ребятам, которым жизнь только лимоны и подбрасывает (Ник Вуйчич, как пример), лимонаду без оптимизма не сделать, имеют право, но остальным хорошо бы почаще воспринимать жизнь такой, какая она есть.
10 комментариев
5 ноября 2017 04:52

Самсунг-пэй

КуАр-код (43.82КиБ)
Куар-код на часах «Самсунг Геар Три»

Генеральный подарил на день рождения в этом году смартчасы «Самсунг Геар Три». Очень удачная модель получилась у «Самсунга», я доволен. Функция, которую я сначала как-то недооценил — «Самсунг-пэй», то есть оплата возложением руки на кассовый терминал. Долгое нажатие на верхнюю кнопку, выбираешь карту, прикладываешь, оплата прошла. Оказалось безумно удобно.

У меня и на смартфоне такое было, но как-то я не впечатлился — доставать телефон и ковыряться в нём как-то не огонь. Карту всегда оказывалось быстрее достать, на ней и жать ничего не нужно. На часах жать нужно, но часы — вот они, а карту надо доставать.

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

Теперь, расплачиваясь, ничего больше не достаю — всё в часах!
10 комментариев
4 ноября 2017 10:32

Über alles Gett

Король Лев (87.38КиБ)
Кривая дорожка к статусности, странно, что не предусмотрели никого выше (или ниже?)

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

Так вот, про такси. Несколько лет назад я катался на «Везёте» и «Татарстане», пока не свершилось пришествие «Яндекс.Такси», «Убера» и позже — «Гетта». Сначала всё шло неплохо — все эти ребята демпинговали, доплачивали таксистам, все радовались, позже прикорм кончился, цены выросли.

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

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

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

В общем, время от времени (закономерности не уловил) мне теперь «Гетт» предлагает поездку с приличной скидкой — 25%, упоминая при этом мои накопления. Если кто-то ездит на «Гетте» и вам тоже дают скидку, черкните сколько у вас баллов, мне интересно с какой цифры начинаются пряники. Или может сейчас в принципе всем скидку иногда дают, тогда это означает, что это временная акция и это грустно.
8 комментариев
2 ноября 2017 22:39

Тридцать восьмой выезд

Результаты выезда (32.25КиБ)
Сопуствующие поиску находки — несколько монет и «конина»

Как я уже сегодня писал, в выходные ездил в составе военно-поискового отряда в алексеевский район. Помимо могил неподалёку нашлись кое-какие артефакты.

На снимке — серебряная булгарская «чешуйка» 15 века, копия счётного жетона с Людовиком XVI, 2 копейки 1936, 15 копеек 1941, 10 копеек 1978, «конина» и раскатанная в блин советская монета.

Жетон и «чешуйку» я нахожу впервые, поэтому вкратце о том что это такое.

«Чешуйки» — монеты без номинала, называемые так из-за своей формы. Их стоимость определялась по весу, а делались они обычно из кусочков расплющенной медной или серебряной проволоки, чем и обусловлена их грубая форма. У меня булгарская «чешуйка», а на Руси были широко распространены собственные, они имели хождение вплоть до денежной реформы Петра I.

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

У меня по всей видимости какая-то кривая копия, прорисована явно грубее оригинала и в латинской надписи множество ошибок.
Комментировать
18 октября 2017 21:36

Военный поиск

Палаточный лагерь (268.97КиБ)
Палаточный лагерь поискового отряда, крайняя левая палатка — моя

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

Обычно они занимаются Великой Отечественной, а тут под закрытие сезона выехали на захоронение предположительно времён Гражданской. Захоронение (290.88КиБ)
Один из откопанных скелетов, в могилах никаких личных вещей не найдено

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

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

Находки было, но ничего относящего к войне, выложу отдельным постом, конечно кроме того, что я отдал поисковикам.
Комментировать
18 октября 2017 20:20

Билл «Кон» Гейтс

Устройство CON (184.46КиБ)
Устройство «CON» в 86-DOS версии 1.00

Какой херни только по радио не услышишь! Ехал вчера в такси, а по радио рассказывают про файл с именем CON, который нельзя создать в Винде, якобы потому что это было прозвище Билла Гейтса в детстве и он поклялся, что в его системе такой файл нельзя будет создать!

Ну что за бред?

Во-первых, это специальное имя файла, всё, что в него записывается выводится на CONsole — консоль. Таких имён множество, в основном трёх- и четырёхсимвольных. Например, есть PRN — принтер, COM1 — первый ком-порт и другие. Они достались Винде ещё от ДОСа.

Во-вторых, первые версии системы, которую сейчас называют просто «ДОС» были написаны в «Сиэтл Компьютер Продактсе» Тимом Патерсоном и лишь версия 1.10 была приобретена во владение Микрософтом и переименована из 86-DOS в MS-DOS. Специальные имена файлов были добавлены в версии 0.74, если запустить версию 1.00, легко убедиться, что CON там имеет тот же специальный смысл, причём ещё в те времена, когда система не принадлежала Биллу Гейтсу.
5 комментариев
14 октября 2017 04:35

AppleScript и Тетрис

Тетрис (20.11КиБ)
Непритязательный внешний вид получившегося Тетриса

Я тут книгу читаю про хакеров (в первоначальном смысле слова) — «Хакеры. Герои компьютерной революции». Книга довольно занудная, но тот дух, который она пытается передать, я ещё очень хорошо помню. Ассемблер, такты, хаки, придуманные трудности — всё это было как специи в программировании. Сейчас как-то чем дальше, тем преснее.

И так тоскливо что-то мне стало, так захотелось написать что-нибудь долбанутое, чтобы почуствовать вкус того самого программирования, что как-то написался у меня в промежутках между делами в последние дни отпуска Тетрис на ЭплСкрипте.

Трудности, которые мне тут успешно самому себе удалось придумать, заключаются в том, что ЭплСкрипт в этой плоскости очень бедный язык. Если не сказать нищий. У него нет встроенных средств рисования чего-либо на экране или опроса клавиатуры, поэтому пришлось выкручиваться (те самые специи).

Для тех, кто не знает, надо наверное пояснить. ЭплСкрипт — это язык автоматизации пользовательских сценариев работы, он умеет управлять приложениями (с разной степенью успеха) и кое-какими вещами в «МакОСи».

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

Дольше всего я ломал голову над управлением, пока не придумал следующее — ЭплСкрипт умеет опрашивать значение громкости, так что клавиши уменьшения и увеличения я приспособил под сдвиг фигуры, а кнопку включения/выключения звука — под поворот.

Над скоростью игры я в некоторых местах поработал, но сильно углубляться не стал — ЭплСкрипт относительно шустрый, основную задержку вносит создание окон, это место вряд ли можно как-то ускорить — там несколько строк всего и всё адресовано приложению TextEdit, а оно уж открывает свои окна так быстро как может. Впрочем игровая скорость мне кажется приемлемой, только отрисовка самого стакана происходит дольше, чем хотелось бы.

Кажется это первая и единственная игра в реальном времени на ЭплСкрипте.
2 комментария
9 октября 2017 23:19

Передача по ссылке в AppleScript'е

ЭплСкрипт, конечно, очень странный язык. С одной стороны, ребята явно старались сделать программирование похожим на написание текста на естественном (английском) языке, с другой стороны, все кишочки спрятать не удалось. Любимые мои грабли — это передача значений по ссылке.

У этой штуки есть одна особенность, которую надо знать. Код ниже перебирает список и выводит в консоль всякую информацию об единственном элементе, который в списке содержится:
repeat with itm in {false}
	log itm -- Выведет «false»
	log class of itm -- Выведет «boolean»
	log itm is false -- Выведет… «false», хм
	log itm is true -- И снова «false»
end repeat
Непонятно, да? Элемент булевского типа, но не «истина» и не «ложь», как так? Дело в том, что этот элемент — ссылка. И прежде чем его с чем-то сравнивать, надо получить его значение. Вот так нормально:
repeat with itm in {false}
	log contents of itm is false -- Выведет «true»
end repeat
Контринтуитивно и неясно какую пользу это приносит, но вот так сделано.
3 комментария
9 октября 2017 20:59

Тридцать седьмой выезд за монетами

Результаты (68.88КиБ)
Скромные результаты поездки, в том числе — интересный жетончик

Как я писал ранее, до отпуска съездил покопать на дачу к одному из наших сотрудников. Участок скромный, трава высокая, поэтому результатов немного.

Нашлись: интересный жетончик 19 века, мельхиоровые 20 копеек 1932 года, 3 копейки 1949, пряжка, патрон 1905 года австрийского происхождения, неопознанная гильза от винтовки Мосина, пряслице и деталька от рукомойника.
Комментировать
8 октября 2017 16:26

Генетика и ксенофобия

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

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

А вот переключатель в горле между дыханием и питанием. Было бы класно пить без этих «блп-блп-блп-ххы», есть без риска подавиться, но есть ли в горле место для всего этого или придётся утолщать шею как при Базедовой болезни? Погуглите, хотели бы вы, чтобы ваш ребёнок ходил с такой шеей? Ну его, пусть остаётся всё как есть.

А прямохождение? Это же катастрофа как всё плохо в нём организовано! Бедный наш позвоночник, бедные мышцы свода стопы (почему не связки там? впрочем это изменение можно добавить к списку выше — на внешний вид не повлияет), бедное сердце, гоняющее кровь по слишком большому кругу кровообращения! Наверное что-то ещё там бедное, я не специалист. Эволюционно прямохождение было оправданно, но можно ли сделать лучше или там тупик? Не пора ли возвращаться на более здоровые четвереньки?

Как бы не решили эту проблему, вряд ли её можно решить в рамках текущей конструкции, но кто же согласится на другое решение?
7 комментариев
5 октября 2017 07:44

Жетон для монисто

Жетончик (220.89КиБ)
Жетон для монисто с изображениями солнца и месяца

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

Насколько я успел погуглить в интернете, находка нередкая, распространнёная на всём Поволжье, но я встретил такую в первый раз. Предположительно — 19 век, такие жетоны изготавливались как элемент украшения на монисто.
Комментировать
25 сентября 2017 19:43

Приложение против укачивания

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

Известно, что укачивание — это реакция организма на расхождение того, что мы видим через глаза и что чувствуем через вистибулярный аппарат — ощущение качания не согласуется с отсутствием аналогичного движения картинки перед глазами. Организм считает, что он чем-то отравился и старается избавиться от яда.

И вот что мне подумалось, пока я пялился в экран читалки, — ведь фоны и планшеты увешаны датчиками, как Вассерман карманами, в том числе в них имеются акселерометры. Так почему до сих пор нет приложения, которое умеет качаться синхронно с качанием внешней среды? Укачало, включил приложение, позалипал в него и отпустило?

Поискал что-то подобное, нашёл бесплатное «Anti Motion Sickness App», надо будет поставить и попробовать, интересно — работает ли.
2 комментария
23 сентября 2017 12:16