Размытие шрифта на Ретине в Сафари

Как и ожидалось, Ретина ещё
Заменили на обычное свойство opacity, стало выглядеть, как на скриншоте справа.
SVG с fallback на не векторные форматы
Нравятся мне такие вещи. Алексей Тен из Яндекса придумал очень изящный способ внедрения СВГ в код с возвратом к растровому формату, если браузер не поддерживает СВГ:
<svg width="96" height="96">
<image xlink:href="svg.svg" src="svg.png" width="96" height="96"/>
</svg>Принцип виден из кода, я думаю, но я всё же расшифрую. Если браузеры поддерживают внедрение СВГ в ХТМЛ, то почти весь выше приведённый код будет для них значимым: кроме атрибута «src», его у тега СВГешного image не бывает и он будет отброшен. Соответственно, картинка загрузится из файла svg.svg.
Если же браузер СВГ в таком виде не понимает, то будет отброшен тег svg и атрибут «xlink:href», а тег image будет преобразован в img — это старая особенность браузеров, которой я тщетно пытался придумать применение. В этом случае будет загружен svg.png.
Я уже на сайте в одном месте использую этот трюк.
Вот вам загадки, разминка для ума (уже всё разгадали)
Мы тут в выходные (у нас в Татарстане на этой неделе три выходных) изрядно поездили и случайно попали в Музей купеческого быта Козьмодемьянска, где очаровательная смотрительница по ходу повествования просила угадать предназначение некоторых вещей, там выставленных.
Хочу вам переадресовать те же загадки, плюс загадать собственные. Все фото из упомянутого музея, последняя — исключение, она из Этнографического музея того же города.
Итак, попробуйте догадаться, что на каждом фото.
На первой фотографии обратите внимание на стекляшку из прозрачного стекла почти в центре кадра. Для чего она, как вы думаете?
Единственная штука на фото, для чего она использовалась?
На ржавой буржуйке лежит некий предмет, к буржуйке отношения не имеет, они вряд ли
Что за дыра сзади на фраке, она была сделана с ведома хозяина фрака? Для чего эта дыра могла быть использована?
Эта штука с крышкой — это что?
Странный графин на переднем плане, для чего он использовался? Почему он такой странный?
Справа от табакорубки находится металлический предмет. Что это?
Прямоугольный деревянный предмет на двери — это что?
Ветряная мельница из села Старый Киек Высокогорского района
Я писал около года назад о ветряной мельнице, которую мы встретили в Чиршах Высокогорского района. Сегодня, возвращаясь домой из Козьмодемьянска, случайно наткнулись на мельницу из села Киек Высокогорского района, правда в Исакове Зеленодольского района, туда её перевезли и теперь она — часть татарской Этнодеревни, музея под открытым небом.

Сделан музей в подражание такого же музея в Козьмодемьянске, там раскошный музей марийского села, мы сегодня там были, существует много лет, я о нём слышал, ещё когда в Университете учился.
Исаковский музей открылся этим летом, пока по насыщению он гораздо беднее (зато ближе), но планы интересные — в частности, мельница будет действующей, из её муки будут изготавливать настоящую татарскую выпечку, которой будут угощать гостей тут же — в «Чай йорты» («Доме чая»).
Кстати, эта ветряная мельница младше своей «родственницы» из Чиршей примерно на 40 лет — построена в 1942 году. Построили её в годы войны женщины Старого Киека и соседней деревни Каракул. Остальные фото музея и мельницы можно посмотреть у меня в фотоальбоме на «Яндекс.Фотках».
Йошкар-Ола, республика Марий Эл
Судите сами. Что это?
Рим?
Таллин?
Москва?
Киев?
Копенгаген?
Рига?
Стокгольм?
Гамбург?
Хельсинки?
Нет, это
Казань → Йошкар-Ола → Козьмодемьянск → Казань
30 и 31 августа буду
Нюй-шу
В детстве я читал
В том смысле, что противоположный пол обладает

Вот уж не думал, что после стольких лет наткнусь на вполне реальное упоминание тайной женской письменности —
На снимке выше героини фильма «Снежный цветок и заветный веер» (снят по одноименной книге Лизы Си)
Женщинам провинции Хунань до недавнего времени было запрещено учить

К тому времени носительниц языка, энавших письменность, в живых осталось очень мало, на настоящий момент живы только две — Хэ Яньсин и Хэ Цзинхуа, обеим уже за 70.
На снимке выше — Хэ Цзинхуа (фото с сайта «Мир
Самое интересное, что письменность вплеталась в рисунки на повседневных вещах — поясах, веерах и так далее. Т. е. тексты должны были быть у мужчин буквально под носом, но они их не замечали. Никаких тайных знаний там, конечно, нет — в основном это письма подрут, наставления, стихи и песни.
Siege-3.0.3
Вышла версия 3.0.3 утилиты нагрузочного тестирования Siege с моим патчем, исправляющим проблему с подстановкой переменных.
Мне показалось, что автор стесняется багов. В файле истории у него ни одного упоминания слова «баг» и только одно слова «фикс», при этом в 3.0.0 был ещё один баг, который я правил (понадеявшись на свежесть «брю» в «Маке», не увидел, что на тот момент уже вышла 3.0.2 без бага).
А так выглядит запись о моём исправлении бага:

Точно стесняется.
Неглупый дом-3

Количество датчиков моего самодельного «умного дома» потихоньку увеличивается.
Потихоньку, потому что я выделил на это ежемесячную небольшую сумму и стараюсь укладываться в неё, а так как мне не хочется возиться со всякими там Ардуно, я беру
Вчера, ура, приехали ко мне два устройства фирмы Supermechanical, которые умеют передавать температуру, свою ориентацию в пространстве, уровень вибрации и (с дополнительным датчиком) нет ли воды на контролируемой поверхности
В коробке он лежит в небольшом отделении с надписью «IS IT WET?». Питание — от двух «мизинчиковых» батареек, либо

Настаиваются устройства элементарно — на корпусе написан адрес сайта, куда надо зайти для настройки, там перечислены простые шаги, которые надо сделать, всё с картинками, ребёнок справится. Собираемые датчиками данные отправляются на другой сайт, где их можно посмотреть через интернет.
Неприятно, что нет
Написал башовский скрипт на свой компьютер «умного дома» (в его роли — смартбук с Лубунтой на борту):
#!/bin/bash
COOK=`mktemp /tmp/sup.XXXXXXX`
SUP1=`mktemp /tmp/sup.XXXXXXX`
# очищаем временные файлы на выходе
function Remove {
rm -f "$COOK" "$SUP1"
}
trap Remove EXIT
# логинимся на сайт, куки запоминаем
wget --quiet -O /dev/null --keep-session-cookies --save-cookies "$COOK" \
--no-check-certificate --post-data="email=EMAIL&password=PASSWORD" \
https://twine.cc/login || exit 1
# забираем данные в формате JSON
wget --quiet -O "$SUP1" --load-cookies "$COOK" --no-check-certificate \
https://twine.cc/YOURID/rt?cached=1 || exit 1
# отправляем данные на сайт моего «умного дома»
curl -F p=@"$SUP1" http://example.org/someapi/dtm.php?num=1 >&- 2>&-Как видите, ничего особо сложного, правда с возвращаемыми данными пришлось ещё разбираться, к счастью, раз есть JSON, значит есть и Джаваскрипт, который его читает, посмотрел код страницы, сразу всё встало на свои места.
Yakazan — первый «групон»?
Разбирая файлы на старом компьютере (к сожалению, в процессе разбора жёсткий диск у него окончательно помер), наткнулся на старый проект, в создании и поддержке которого я участвовал — проект «Я — Казань», стартанувший в конце
Я, к сожалению, не помню кто заказчик, а мне очень хочется сегодня спросить где он почерпнул ту идею. Ведь это был, ни много ни мало, первый «групон» с которым я столкнулся в своей жизни. Причём оригинальный «Групон» появился только через год!
Сайт действовал по хорошо многим сейчас знакомому принципу — публиковались купоны, дающие большие скидки (я точно помню как мы с будущей женой сходили в «Сабвей» и поели со скидкой в 50%), нужно было их распечатать и показать на месте проведения акции. Или назвать специальное слово… не помню уже.
Главное отличие от современных «групонов» — с клиента никакие дополнительные деньги не брались, за всё платило заведение и рекламодатели, которых проект собирался привлечь к размещению рекламы.

Видимо,
О внимательности

Удивительное рядом. В первый день работы на моём текущем месте, два года назад, рассматривая фотографии в «галерее славы» нашей фирмы (там висят фотографии момента демонстрации нашего документооборота первым лицам государства), заметил в углу первой фотки забавную флешку в виде куколки — её
Увидел — улыбнулся,
Когда я в разговоре с одним сотрудником пошутил на эту тему, понял, что он не имеет представления о чём я, с тех пор, кому не показывал, никто её раньше не видел. Непонятно!
Поезд
Я тут поездом в Москву начал ездить — это удобнее, чем вставать в три утра, чтобы успеть на встречу к 10—11. И обнаружил интересную вещь, каждый мой собеседник, а в купе их, как правило, трое, считает своим долгом сообщить мне, что едет он в первый раз (вариант — давно не ездил), по крайней необходимости (билетов на самолёт не было, например) и такое ощущение, что ему жутко неудобно, от того, что он ездет в саму Москву таким лоховским транспортом.
Ребята, я помню поезда постперестроечного периода, грязные, окно не закрывается (зимой — тоже), жёлтое и мокрое бельё, в туалет только с задержкой дыхания и закрытыми глазами — иначе щиплет. Наверное и сейчас такие есть, РЖД слишком расслабились. Ездить в них можно было действительно только из соображений серьёзной экономии, лично я ездил по этой причине и приходилось признавать — да, я не могу себе позволить ездить
Ура, теперь у РЖД есть конкуренты. Вагоны ТрансКлассСервиса по качеству на две головы выше — приветливый персонал, чисто, биотуалеты, кондиционер, телик в купе, уже заправленная кровать с чистым бельём. Другие опции зависят от поезда — бывают индивидуальные розетки, питание, сейф, гигиенический набор (зубная щётка, мыло, паста) и так далее.
Собственно, я такими поездами и езжу. Только люди, входя в купе,
Чувашские числа

Когда писал про дробные римские цифры, вспомнил что
На римский счёт очень похоже, правда бо́льшие цифры в чувашских числах стоят справа и большинство из них отличается, но, в целом, сходство сильное.
Интересно, что десять и один записывались в точности как в римских. Пять — «/», 50 — как «X», но с лишней ногой вниз, 100 — как «Ж», 500 — как «Ж», но с лишней ногой вправо, 1000 — как «Ж» с перекладиной посередине. Принципа вычитания цифр не было (в римском счёте четыре записывается как «IV», в чувашском — «IIII», а не «/I»).
У меня есть большие сомнения не являются ли эти числа недавним изобретением
Но более всего меня смущает вот эта фраза из книги «Волжские булгары и их потомки» М. З. Закиева
Однако что означают эти бессвязные слова, он и сам объяснить не мог, поскольку единицы в его «двузначных числах» оказались впереди десятков. Такая обратная последовательность в структуре сложных числительных чужда не только чувашскому, но и большинству других тюркских языков; нечто подобное можно встретить лишь
в сарык-югурском языке и в древнихорхоно-енисейских письменах, где некоторые сложные числительные имеют иную структуру и количественное значение.
А в приведённом счёте единицы как раз идут впереди десятков.
Квайн
На «Хабре» месячник квайнов — это такие программы, которые выводят сами себя, причём при этом нельзя использовать никакие возможности языка, чтобы получить доступ к тексту программы.
Я вспомнил как написал свой первый и последний в жизни квайн.
Это было когда я ещё учился в Университете, я тогда подрабатывал лаборантом и как раз сидел в классе, за которым присматривал, перед компьютером, когда прибежал мой друг С. О., он учился курсом старше, но мы дружили — он переехал в Казань из того же города, что и я.
Была короткая перемена между парами и преподаватель
До сих пор помню какой принцип я тогда придумал для решения этой задачи. В общих чертах, конечно.
Я оформил программу как требует Паскаль (он довольно многословный) и сделал в нём вывод переменной. Потом в эту переменную я записал всю эту программу в одну строку, заменяя символы перевода строк, где они встречались на #10#13 (так в Турбо Паскале можно было записывать символы через их код, 10 и 13 — десятичные коды символов перевода строки в ДОСе) и потом
Кстати, существует квайн на языке Брейнфак, занимающий всего 410 байт, вот он весь:
->++>+++>+>+>++>>+>+>+++>>+>+>++>+++>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>++
>>>+++>>>>>+++>+>>>>>>>>>>>>>>>>>>>>>>+++>>>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>+
+>+++>>>+>+>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>+++>+>+++>+>++>
+++>++>>+>+>++>+++>+>+>>+++>>>+++>+>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>
+[[>>+[>]+>+[<]<-]>>[>]<+<+++[<]<<+]>>+[>]+++[++++++++++>++[-<++++++++++++++++>]<.<-<]Дробные римские числа

Большинство знакомо с так называемым «римскими числами», у нас как минимум век принято ими записывать. Я довольно быстро читаю числа, вроде MCMLXVII, т. е. считал, что довольно неплохо знаю эту систему записи. Оказывается в римской системе чисел были и дроби!
Дроби, в основном, выражались в «унциях» (одна двенадцатая, записывается как точка — «•») и «половинах» (записывается как буква «S»). Например, 5/6 можно записать как «S••••» (четыре точки в ряд) или «S::» (по две точки). Получается 6/12 + 1/12 + 1/12 + 1/12 + 1/12 = 10/12 = 5/6.
Две унции, как видно выше, могут быть записаны «••», так и «:». Три унции — «•••» или «∴».
На фотографии выше видны две монеты, на которых написана дробь «4/12» или «1/3». Были и другие дроби — например, половина унции (1/24), записывалась как сигма (Σ), 1/72 — Ƨ, 1/48 — Ɔ, 1/144 — ƻ, 1/288 — ℈, 1/1728 — » (выглядела как закрывающая кавычка).
Немаловажное про генераторы в PHP
Наткнулся на важный пост о генераторах в ПХП, я их попробовал использовать, ещё когда они были в альфе. Хорошая штука, мне после Пайтона их в языке не хватало.
Суть же рассматриваемой проблемы в следующем. Смотрите, вот функция, которая возвращает построчно файл и пример её вызова:
function getLines($file) {
$f = fopen($file, 'r');
while ($line = fgets($f)) {
yield $line;
}
fclose($f);
}
foreach (getLines("file.txt") as $line) {
echo $line;
}Пока всё чудесно, ничего странного и необычного, а теперь представьте, что нам нужно прочитать только четыре первые строки:
foreach (getLines("file.txt") as $n => $line) {
if ($n > 5) break;
echo $line;
}Если в файле их было больше, то в функции getLines вызов fclose не выполнится никогда — до него программа просто не дойдёт, файл останется открытым, память занятой и так далее. Плохо. Что делать?
Оказывается, документация обходит этот вопрос стороной, а вот автор введения в ПХП этой конструкции позаботился о том, чтобы эту тему раскрыть — если прочитать соответствующий RFC, становится ясно как быть.
Оказывается, при высвобождении ссылки на генератор, внутри его обязаны выполнится все блоки finally, т. е. вышеприведённый код нужно переписать следующим образом:
function getLines($file) {
$f = fopen($file, 'r');
try {
while ($line = fgets($f)) {
yield $line;
}
} finally {
fclose($f);
}
}Ретина на «Маке»: вопросы и ответы
Поскольку «Ретина» и сравнимые с ней экраны ещё редкость вне смартфонов и планшетах, то многие так до сих пор и не разобрались что это и как работает. Я решил написать эту заметку, чтобы ответить на вопросы, которые возникали у меня и возникают сейчас у моих друзей и знакомых.
Вступление
Долгое время такая характеристика как число точек на единицу площади в экранах не росло, хотя другие характеристики менялись с ошеломляющей скоростью. Тому была причина — увеличение количество пикселей на точку, например, в два раза, означало бы что все программы отображались в два раза мельче. Если в миниатюрную кнопку вы ещё попадёте, то крошечный шрифт многие просто прочесть не смогут.
Ситуация изменилась, когда фирма Эпл выпустила первое устройство с экраном где плотность точек была в два раза выше. Эпловцы вышли из положения очень интересным способом — для старых программ ничего не менялось, просто каждый пиксель такой программы выводился как четыре. Скоро все стали делать так же.
Такой экран Эпл назвала «Ретиной», от латинского названия сетчатки. Утверждается, что такое число точек для глаза максимально, дальше увеличивать плотность не имеет смысла. Хотя есть и другие точки зрения, например, «Самсунг» (если ничего не путаю) выпустил смартфон с экраном тройной плотности.
Слово «ретина» сразу стало нарицательным и его, похоже, ждёт судьба «джипа» и «ксерокса».
Достоинства
Большинство программ в «Маке» к таким изменениям подготовились и выглядят просто превосходно — после чёткой «ретины» смотреть на экран других ноутбуков неприятно, тут шрифт невероятно красив, читать стало комфортнее, сверхтонкая прорисовка иконок радует глаз.
Недостатки
Увы, не все программы готовы к такому переходу, прямо сейчас я пишу этот текст в клиенте, который ничего о «ретине» не знает и текст в нём выглядит отвратительно. Кроме того, остаётся веб — подавляющее большинство картинок в нём для «ретины» не подготовлены и выглядят плохо. У меня на сайте, кстати, с момента покупки «Мака» с «ретиной» все иллюстрации готовятся в двух вариантах — для обычных экранов тоже.
Вебу плохо ещё и от того, что браузеры мало что могут предложить для комфортной вёрстки под экраны высокой плотности. Насколько я знаю, этим занимаются только ребята, пишущие «Вебкит» — недавно они анонсировали поддержку атрибута srcset у изображений, а год назад сделали поддержку
И ни один браузер не позволяет указать толщину
Ещё в вебе может плохо смотреться Флеш. От чего это зависит я не знаю, но факт — некоторые части
Дизайнерам приходится туго —
Глюки и интересные моменты
Никогда не задумывались что будет, если подключить к ноуту с «ретиной» обычный монитор и перетащить окно на или с него?
Интересный глюк обнаружился у текущей версии «Хрома» (какая она там у него уже? сороковая? сотая?) — иногда при переходе с «ретины» на обычный экран у него сползает незначительная часть интерфейса, да так и остаётся. Глюков у других программ я не заметил.
Производительность
Производительности иногда нехватает, но мне её нехватало и на предыдущем «Маке», причём куда в бо́льшей степени, так что тут ситуация скорее улучшилась.
Резюме
Купил бы я снова ноут на «ретине»? Безусловно!
«Фотография» времён Ренессанса
Наткнулся на очень крутой пересказ в ЖЖ фильма БиБиСи «Дэвид Хокни : Секретное знание». Приведу сборную цитату, чтобы было понятно о чём речь, но не поленитесь, прочитайте всё целиком, это того стоит:
Сделав ксерокопии маленьких (примерно 30 сантиметров) рисунков Энгра, Хокни был поражен тем насколько они реалистичны. И еще ему показалось будто линии Энгра ему
что-то напоминают. Оказалось, что напоминают они ему работы Уорхола. А Уорхол делал так — проецировал фото на холст и обрисовывал его. (…)Затем Хокни не на шутку заинтересовался этим «оптическим» видом рисунков и картин. В своей студии он вместе со своей командой развесил по стенам сотни репродукций картин созданных на протяжении веков. Работы которые выглядели «реально» и те которые не выглядели. Расположив по времени создания, и регионам — север наверху, юг внизу, Хокни с командой увидел резкий перелом в живописи на рубеже 14—15 веков. Ну это вообщем всем кто хоть немного знает об истории искусства известно — Ренессанс. И вообщем согласно официальной истории искусства просто около
1420-х годов все внезапно стали сильно лучше рисовать. (…)Может они пользовались той самой камерой люсидой? Она была запатентована в 1807 году Вильямом Хайдом Волластоном. Хотя на самом деле такое устройство описывается Йоханесом Кеплером еще в 1611 году в его труде Dioptrice. Тогда может быть они пользовались другим оптическим устройством — камерой обскурой? Она ведь известна еще со времен Аристотеля и представляет собой темную комнату в которую сквозь небольшое отверстие попадает свет и таким образом в темной комнате получается проекция того что перед отверстием, но в перевернутом виде. Всё бы ничего но то изображение, какое получается при проекции камерой обскурой без линзы мягко говоря не качественное, оно не четкое для него требуется очень много яркого света, не говоря уже о размерах проекции. Но качественные линзы было практически невозможно изготовить вплоть до 16го века,поскольку не существовало в то время способов получить столь качественное стекло. (…)
На увеличенном фрагменте видно, что зеркало выпуклое. А значит были и зеркала наоборот — впуклые. Даже более того, в те времена такие зеркала делались таким образом — бралась стеклянная сфера, и её дно покрывалось серебром,затем всё кроме дна отсекалось. Задняя сторона же зеркала не затемнялась. Значит вогнутым зеркалом Яна Ван Эйка могло быть то самое зеркало, которое изображено на картине, просто с обратной стороны. И любой физик знает, что такое зеркало при отражении проецирует картинку отражаемого. Вот тут с расчетами и исследованиями и помог Дэвиду Хокни его знакомый физик Чарльз Фалко.
Размер четкой, сфокусированной части проекции примерно 30 квадратных сантиметров — а это как раз размер голов на множестве портретов эпохи Возрождения.
Ну и так далее, там ещё много подобного, хоть целиком цитируй. Приведу ещё пару других аргументов, указывающих на верность теории — детали изображения «не в фокусе» (человеческий глаз так не видит, оглянитесь, что вы видите не в фокусе настолько долго, чтобы это зарисовать?), отдельные части тела в другой перспективе (художник перетаскивал своё

Посмотрите на левое плечо, оно просто гигантское, по сравнению с остальным телом, такого на картинах того времени хватает.
Когда я это всё читал, мне вспомнилась одна из книг Терри Пратчетта из серии «Плоский мир», в описанном мире фотография устроена была очень просто: специально нанятый маленький бесёнок внутри «фотокамеры» за долю секунды зарисовывал то, что видел. Там это называлось «иконография».
Похоже, картины времён Ренессанса были такими «иконографиями», только длительность экспозиции была побольше.
RegExp для английских слов
Не рискну предположить сколько займёт регулярное выражение для русских слов, а вот с английскими
Насколько я понял, так автор демонстрирует работу своей программы frak, которая переводит любые наборы строк в регулярные выражения.
Canon Epson
Дебаты о восприятии колдовства как реальности или как иллюзии шли на протяжении всего Средневековья. Начало было положено еще в девятом веке, когда был создан первый официальный документ, посвященный колдовству — «Епископский канон» (Canon Episcopi). В нем колдовство рассматривалось как иллюзия, как выдумка и сон. Считалось, что полеты на шабаш — это выдумка, что женщинам это просто снилось. Такие представления о колдовстве просуществовали вплоть до 13 века.
Из лекции историка Ольги Тогоевой на сайте «Постнаука».
Сильно удивлён.