?

Log in

Первый рукописный блог рунета™ [entries|archive|friends|userinfo]
ermouth

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

1280÷7 [Mar. 21st, 2017|10:51 pm]
ermouth
[Tags|]

Начал тестировать одну софтинку на всяком старье – и сразу словил гемор, вестимо из IE, хоть и не слишком старого, 11 версии.

В CSS3 можно задавать размеры элементов, используя выражения типа width:(100% / 7) или width:(50% - 10px +1em) – то-есть сочетать разные единицы измерения в одном выражении. Исключительно удобая штука, хотя и дорогая в плане CPU и перерисовки.

Так вот, по мнению IE11, если поставить рядом 7 элементов с шириной calc(100% / 7), они в ряд почти всегда не помещаются, если эти 100% в пикселях на 7 нацело не делятся. При этом айтемы с шириной calc((100% - 0.01px) / 7) помещаются всегда.

То-есть второй факт однозначно свидетельствует, что внутренние расчёты всё таки subpixel-точности (как и требует стандарт). Вот только первый факт свидетельствует о том, что fp-арифметика там внутри скорее всего не IEEE-754, либо она хуже по точности, чем binary32.

Любопытно, что с обычной 64-битной fp-точностью все вычисления n/7*7 для целых n из нужного мне интервала [1250,1280] возвращают n точно. То-есть это роботы в IE team сидели и специально придумывали какую-нибудь недооптимизацию своей тормозной поделки, ну и по пути напакостили.

Типичное, впрочем, явление вообще для всего софта Microsoft, что я видел. 
link2 comments|post comment

Два порядка [Mar. 16th, 2017|09:45 pm]
ermouth
[Tags|, ]

Разница на два порядка – в 100 раз – редкое явление, когда речь идёт о человеческих качествах.

Мы, конечно, говорим иногда «в 100 раз умней» или «в 100 раз быстрей» – но обычно это эмоциональная гипербола.

Так вот, я реально живьём увидел двух кандидатов, отличающихся по производительности в 120 раз. Особенно удивительно учитывая что работа простая – переупорядочивание данных. Никаких специальных знаний не надо, только внимательность и усидчивость.

У меня даже настроение улучшилось после того, как я точно посчитал – всегда приятно встретить в жизни феномен, который до того полагал невозможным в рамках обычной человеческой вариативности. Век живи – два учись.
link4 comments|post comment

CRDT [Mar. 13th, 2017|09:30 pm]
ermouth
[Tags|]

Аббревиатура от Сonflict-free Replicated Data Types, https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type. Коротко, CRDT – это специальным образом задизайненные типы данных, которые позволяют гарантровать strong eventual consistency в распределённых системах. С математической точки зрения это такой дизайн данных, что:

If the system is monotonically increasing in state, clients never observe state rolling back. The set of system states is partially ordered, and the merge operation being commutative, associative and idempotent, the set of all system states is a semilattice, and the merge operation is the semilattice join.

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

linkpost comment

The Proxy object [Mar. 12th, 2017|12:39 am]
ermouth
[Tags|, ]

В javascript ES6 появилась новая волшебная фича – прокси-объекты. К фиче не существует вменяемого polyfill-а в ES5, поэтому мы её до последнего времени не юзали. Её нет, например, в IE 11– и node.js 6–.

Фича работает примерно как в Java: выставляет перед объектом перехватчик, который позволяет реализовывать обстрактный интерфейс к объекту. Очень полезный функционал – lazy partial constructors там, контроль доступа к объектам в памяти, когда заранее неизвестно, какой код будет объекты обрабатывать, и всякое такое.

В общем, в конце прошлого года я решил, что время пришло.

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

Собственно, вся эта кухня нагорожена для изоляции лямбд и их горячей замены. Код лямбд хранится в БД и распространяется по узлам в одном потоке репликации с данными, которые он должен обрабатывать. По приходу обновлений лямбд их надо а) заменять по-горячему, б) иметь pre-compiled образ для быстрого старта нескольких инстансов одной лямбды. Erlang inspired architecture.

Контекст (объект this) каждого вызова лямбды состоит из трёх частей, две из них приходят из БД, а третья – lazy плагины с файловой системы. Контекст между лямбдами частично shared. Целиком пересобирать здоровый объект перед каждым вызовом лямбды или дорого, или получается unsafe. Тут и пригодились Proxy-объекты.

По результатам всестороннего облизывания оказалось, что они чрезвычайно упрощают меж-VM-ное взаимодействие и вполне себе в ноде ужé быстрые (были адово медленные когда только появились).

Жаль, IE портит всю малину на клиенте. 
linkpost comment

Склонения [Mar. 11th, 2017|12:43 am]
ermouth
[Tags|]

Читал ленты и наткнулся на скриншот диалога с девицами, которых замели за акцию у Кремля. Девица там поправляет слово «организатор» на «организаторка».

Это настолько неблагозвучно, что даже смешно. Типа слова «балерун».

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

UPD. Вот у Лейбова про это же http://r-l.livejournal.com/2774571.html
link2 comments|post comment

Папиллярное II [Mar. 3rd, 2017|08:13 pm]
ermouth
[Tags|, ]

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

Похоже, дело было всё же во влажности. У нас околоноля™ уже неделю – и считыватель работает просто прекрасно.
linkpost comment

Притяжение [Mar. 2nd, 2017|04:49 am]
ermouth
[Tags|]

Посмотрел сабж. Впечатления двойственные.

В плане операторской работы, монтажа и спецэффектов – вполне. Местами просто даже впечатляюще.

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

В целом – уровень средней руки голливудского сайфай муви 5-летней давности. Промотал треть примерно.

Подумалось по пути, что в том же чертановском антураже можно было одновременно, причём с теми же актёрами, чуть подгримировав, снимать кино про зомби-апокалипсис лайт.
link2 comments|post comment

La Piovra [Feb. 26th, 2017|04:55 am]
ermouth
[Tags|, , ]

Я когда-то нашёл занятный концепт “Программа как осьминог”. Я тогда так на всю голову впечатлился, что мы примерно такое сейчас и делаем.

Архитектура нервной системы осьминога:

v46

Архитектура федерации узлов и данных, которую мы сейчас сочиняем:

v47

Забавно, что наш осьминог, как и всамделишный, может целиком вытечь через один канал. Без остановки сервисов, включая обновления кода и состояния, которые происходят во время “перетекания”.

Только в нашем осьминоге не обязательно 8 щупалец. И можно отращивать новые или соединять имеющиеся в одно ничего не останавливая.

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

И да, во избежание возникновения конкурирующей расы сетевых октопоидов 🐙, функции вымётывания икры у нашей системы на всякий случай не предусмотрено )

linkpost comment

Фотки со спины [Feb. 14th, 2017|08:05 pm]
ermouth
У вас есть фотки со спины? Так, чтобы вы спиной на фото были? Вы знаете, как ваш причесон сзади выглядит?

Я внезапно задался таким вопросом и час отлистывал фотки. Нашёл только одну.
link2 comments|post comment

Time Machine [Feb. 9th, 2017|05:24 pm]
ermouth
[Tags|, ]

У маковской TimeMachine – прекрасной в целом конструкции – обнаружился довольно любопытный косячок.

Совершенно случайно сегодня обнаружил, что автобэкап на основной боевой машине не работает почти месяц. Я в январе её выключал и обтирал пыль со всех разъёмов – и вставил USB от внешнего диска не до конца.

При этом значок TimeMachine в менюбаре ни разу даже виду не подал, что давно не видит диска.

Забавно, что на макбуке ТаймМашин напоминает, если давно не делался бэкап, при каждом открытии крышки. Но стационарная-то машина почти никогда не засыпает, потому видимо и сообщений на ней нет.

Непорядок. Любопытный, кста, интерфейсный кейс.
link2 comments|post comment

Приключения ускоренного видео [Feb. 8th, 2017|11:05 am]
ermouth
[Tags|, ]

Я вчера закончил работать и, как обычно, собрался полетать в симуляторе. Попутно решил всё записать, а потом выложить ускоренное. Полетал я 25 минут, а вот чтобы выложить ускоренное я потратил 2.5 часа, и ещё пока я спал Ютуб ролик пересчитывал.

В общем, я записал полёт QuickTime-ом, прямо с экрана, в разрешении 2560×1440, 60fps. Получилось 7.7 гигов на 23 минуты. Дальше встал вопрос ускорения.

Первым делом стал пробовать с iMovie. Всё прекрасно ускорилось в 4 раза, высота звука привелась к исходной – вот только я не нашёл как экспортировать этот ролик обратно в 1440p. И даже в 1080p экспортировалось плохо – потому что 25Мбит/с, предельный битрейт экспорта, для этого видео маловат.

Потом я вспомнил, что Ютуб и сам вроде умеет ускорять. Где нормальный человек, знающий про редактор видео на Ютубе, будет искать ускорялку? Конечно же в этом редакторе.

Так вот, в редакторе видео на Ютубе ускорялки нет! Замедлялка есть, а ускорялка... А ускорялка на Ютубе находится в разделе Enhancements и называется она Timelapse. Работает она чудовищно медленно и, как оказалось, не умеет приводить ускоренный звук к исходному pitch-у. Я подумал, что пришью потом новую аудиодорожку и лёг спать.

Проснувшись с утреца, обнаружил, что видео пересчиталось – вот только прицепить свою аудиодорожку оказывается на Ютубе нельзя. Почему? Я хз.

В общем, выкладываю как получилось. Смотреть надо фуллскрин, на большом экране, выставив 1440p60, и желательно не издалека, чтобы заполнить существенную часть поля зрения. Гарантированно снимает усталось глаз, но у впечатлительных может начать кружиться голова )

Итого: 6 минут на средней скорости 1.653 км/секунду (5900 км/ч):



UPD. Маршрут вот так выглядел:

link4 comments|post comment

Немножко каллиграфии [Feb. 4th, 2017|10:20 pm]
ermouth
[Tags|]

В некотором смысле к предыдущему посту.





linkpost comment

Прибытие [Feb. 3rd, 2017|03:15 pm]
ermouth
[Tags|]

Посмотрел Arrival, по пути взоржав над iTune-овским «ранний просмотр фильма». Ага-ага, я блин два месяца ждал чтобы отдать Эпплу 350 рэ.

Ждал кстати только потому, что в сети исключительно косорылки. Сложно вообще представить, сколько теряют правообладатели от жадности дистрибьюторов. Эта вот вся политика «давайте придержим онлайн пока в кинотеатрах показ не закончится» по-моему просто отнимает прибыль.

Кино, в общем, среднее. Оригинальный рассказ, Story of Your Life by Ted Chiang, гораздо интереснее – в кино всё, что связано с физикой и лингвистикой, обгрызено до уровня понимания ширнармасс.

Промотал минут за 40, зато с удовольствием перечитал рассказ.
link5 comments|post comment

Про кретинов из ESET [Feb. 1st, 2017|08:53 am]
ermouth

Какой первый признак того, что вся команда маркетологов и инженеров на рассылке – корпоративные роботы? Правильно, чередование “вы” и “ты” в одном письме.

С утреца нашёл такое вот в ящике (запрещающее перечёркивание – моё):

Снимок-экрана-2017-02-01-в-8.13.11 

Советую друзьям:

Никогда не пользуйтесь говном под названием ESET NOD32!

Причины:

  • Компания, в которой подразделения не могут договориться на “вы” или на “ты” обращаться к пользователю, тяжело больна.
  • Компания, рассылающая спам тем, кто отказался от её услуг много лет назад – тяжело больна.
  • Компания, у которой в рассылке заголовки-тизеры “Сердечный удар”, “Утечка мозгов”, “Самое слабое звено”, “Горе от ума” – тяжело больна.
  • Использование заманихи “получай деньги на телефон” в моей вселенной хороший индикатор жуликов.

К этим 15 миллионам пользователей тоже присоединяться не советую, потому что по факту вы присоедините свои деньги к счетам деятелей (Peter Paško, Miroslav Trnka, Rudolf Hrubý) с совокупным состоянием в миллиард долларов. Просто потому, что они вас напугали.

link3 comments|post comment

Current mood [Jan. 30th, 2017|06:25 pm]
ermouth
[Tags|]

link1 comment|post comment

Плохое кино [Jan. 29th, 2017|08:17 pm]
ermouth
[Tags|]

Посмотрел «Глубоководный горизонт» и «28 панфиловцев».

Оба фильма – скучнейшие картонные поделки. Первый – унылый пиар, второй – пропаганда для младших школьников.

Не тратьте время.
linkpost comment

Лямбды в сэндбоксе [Jan. 25th, 2017|09:47 pm]
ermouth

В начале декабря 2016 я писáл про песочницу для лямбд. Оно у нас взлетело на днях, и я нарадоваться не могу на удобство концепта.

В самом деле эта песочница – просто расширение концепта дизайн-документов в CouchDB. Один из первых кривых эскизов выглядел так:

Везде Легко - 17

Дизайн-документы в CouchDB – специальные документы, в которых хранятся не (не только) данные, а код, обычно map-reduce функций и фильтр-функций репликации. Каждый дизайн-документ исполняется в отдельном инстансе JS-энджина, то-есть в отдельном процессе.

Первый раз я этот концепт расширил, дополнив список функций раутером – он также хранится в дизайн-документах и тоже, как и map-reduce, js-функция. JS-rewrite (так это называется) теперь встроенная фича CouchDB 2.0. У меня JS-rewrite используется в бою, вот тут можно почитать, например.

Теперь мы этот концепт ещё расширили и дополнили всю эту кухню хуками.

Хуки как концепт – это упрощённая калька с Amazon Lambda. То-есть, по событиям обновления данных в БД выборочно запускаются функции, которые, в отличие от мап-редьюса и рерайта, могут быть асинхронными и могут произвольно читать из базы.

Писать в базу во время исполнения хуки не могут, список доков на сохранение – результат ресолва промиса хука. То-есть, документы пишутся в БД только когда хук завершился, а не во время его работы. Такой подход позволяет резко уменьшить вероятность рэйсов и inconsistency в данных.

Также хукам могут предоставляться (раздельно каждому через ключи в конфиге CouchDB) права на специальный функционал – отправку почты, СМС, возможность ходить в сеть и тп. Если исходный код или права доступа для хука меняются, хук принудительно перезапускается по-горячему.

В сущности, хуки совместно с потоком обновлений документов в БД образуют message queues, причём мессиджи – это просто обновлённые документы в БД.

Это всё, конечно, работает вне CouchDB, потому что тут без node.js никак – встроенный в CouchDB Spidermonkey бедноват для такой задачи. Тем не менее, оно плотно с CouchDB интегрировано и вокруг хуков воссоздаётся окружение очень близкое к нативной CouchDB.

Всё это писалось как неспециализированное решение, поэтому как закончим проект – заопенсорцим эту красоту.

link2 comments|post comment

Про УО и колоризацию [Jan. 24th, 2017|11:19 pm]
ermouth
[Tags|]

Вчера в скайпе словил приветствие «yo!», в смысле «йо!». Обратил внимание собеседника, что УО – это сокращение от «умственно отсталый», и внезапно задумался, а где я это сокращение видел.

А видел я его в книге «Три с половиной дня из жизни Ивана Семёнова, второклассника и второгодника», в далёёёком детстве. По этой книге есть фильм, который я также смотрел в далёком детстве – и, как мне казалось, хорошо его запомнил, потому фильм снимался в школе, где училась моя мама.

Я вчера этот фильм нашёл – и был потрясён, что фильм оказался чёрно-белым. Я его отчётливо помню цветным, при том что цветным он никогда не был о_О

Стал вспоминать всякие другие фильмы из детства, с тех пор не смотренные. Блин, я их все вообще помню цветными – а они многие чб.

Интересно, как называется это подсознательное раскрашивание.
link5 comments|post comment

Про сильный ИИ [Jan. 24th, 2017|07:30 pm]
ermouth
[Tags|]

На тему сабжа внезапно вспомнился отличный анекдот:
В семье британского лорда был немой сын. В 16 лет, за завтраком, он внезапно заговорил:
– Почему чай холодный?
– Сынуля, ты заговорил! Почему же ты до сих пор молчал?
– Так до сих пор все было в порядке.
linkpost comment

Эскиз и реальность [Jan. 22nd, 2017|09:45 pm]
ermouth

vl37

Клик – фуллскрин.

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

link2 comments|post comment

Жемчужина в мусоре [Jan. 18th, 2017|05:31 pm]
ermouth
[Tags|]

Я примерно в сентябре придумал офигенную имхо идею, как не забывать мониторить спам – иногда туда что-нибудь важное попадает.

Трюк простой – надо сделать так, чтобы в спам приходило что-то интересное, но не важное и не срочное. Не вообще интересное, а именно для вас.

У меня в спам приходят дайджесты Quora  – там что раз в несколько дней я в спам заглядываю, квору почитать )
link2 comments|post comment

Они шевелятся [Jan. 12th, 2017|06:36 pm]
ermouth

unnamed

Пришла рассылка с рекламой шрифта, а в рассылке – такая вот картинка (клик – побольше версия).

Интересно, что если смотреть не на саму картинку, а чуть сбоку или вниз, мне кажется, что буквы шевелятся. Когда смотрю прямо на картинку, не вижу этого эффекта.

Кто-нибудь видит ещё это?

link7 comments|post comment

Картина [Jan. 10th, 2017|03:40 pm]
ermouth
[Tags|]

В комментах у Митрича наткнулся, https://www.saatchiart.com/art/Painting-immigrants-boat/616459/3219645/view, лучше смотреть фуллскрин.

Почему-то зацепила, никак не возьму в толк.
linkpost comment

Папиллярное [Jan. 5th, 2017|03:37 pm]
ermouth
[Tags|, ]

Мои недавние восторги, что вот в айфоне 7 наконец-то нормально считыватель отпечатка работает, были преждевременными.

После внесения в тф третьего пальца считыватель стал работать ровно также хреново, как на айпаде, если не хреновее ☹️  Интересно, что после удаления третьего отпечатка точность распознавания назад не вернулась.

Теоретически можно предположить, что дело в аномальных морозах, а не в считывателе отпечатков. У нас тут –40° вот прямо сейчас, и это означает в частности чрезвычайно низкую влажность. И сухость кожи в придачу. Справочно, 100% относительной влажности воздуха при –40° соответствует всего 1% относительной влажности при +25°.

Но почему-то мне кажется, что дело не в морозах.
link1 comment|post comment

2017: пост-правда колбасных обрезков [Jan. 2nd, 2017|11:09 pm]
ermouth
[Tags|]

Эра пост-правды наступила, аллилуйа!

31 декабря, с утречка, я сгонял в магазин и среди прочего купил 300 граммов Докторской колбасы. Вообще, колбасу и всякое такое я не ем, но оливье без «Докторской» – это же кощунство и издевательство над скрепами™. Колбаса была в кишке, розовая, дорогая и красивая. Пахла как надо – Докторской. На вкус тоже ок.

Первые подозрения, что колбаса странная, появились, когда я её кубиками на салат крошил. Что-то было такое в её поведении под ножом, на грани восприятия. Колбаса резалась как-то не так. Тем не менее, всё обошлось – Оливье получился прекрасно, колбаса в салате вела себя хорошо и делала вид, что настоящая.

Сегодня я решил сбацать себе яичницу с остатками Докторской – не пропадать же добру. Взял скоровородку, разогрел масло и кинул колбасу – поджариться.

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

Глубокие выводы о колбасной пост-правде предлагаю сделать уважаемым читателям самостоятельно.

С Новым Годом!
link3 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]