ermouth: (ang)

Посмотрел Rogue One. Клёво! Кино – клюква на клюкве и клюквой погоняет, но так волшебно сделано, что смотрится на раз, без остановок и желания перемотать чуток. Не помню, когда последний раз смотрел фильм не просто без промоток, а ещё и без остановок.

Жаль только вместо Бевела Лемелиска, сравнительно канонического генерального конструктора Звезды смерти, в фильме какой-то вообще невнятный лошпед.

До появления Rogue One генконструктор Звезды смерти выглядел вот так:

Lemelisk-BotF_by_Joel_Hustak

У меня Бевел Лемелиск много лет как увековечен в мануале на jquerymy.com есчо. Сконструировать агрегат диаметром 120 км, на 1.7 миллиона человек персонала – это серьёзное инженерное достижение ) Я бы гордился ггг

Отдельно позабавил Донни Енг. Его персонаж очень смешно срисован с Затоичи-2003 в исполнении Такеши Китано, который срисован с Затоичи-62…74 в исполнении Синтаро Кацу. Тень тени вымышленного персонажа из японской pulp fiction, вау.

Под это дело пересмотрел две серии оригинального японского Затоичи (их там 26) – они оказывается есть в прекрасном качестве на ютубе, и с английскими субтитрами.

Вообще, от Rogue One ощущение такое, как будто Бессон, Тарантино и Лукас совместно упоролись в студии Диснея. Клюква полнейшая, но смотрится прекрасно, рекомендую.

ermouth: (ang)
Глядя на все те ужасы, что творит Навальный и его преступная клика, я решил вступить в Единую Россию. Буду защищать Россию и императора Палпатина от нападок продажных агентов госдепартамента и всяких оранжевых революций.

Призываю всё прогрессивное человечество присоединяться )

UPD. C 1 апреля есчо
ermouth: (ang)
В России сегодня происходит особенное шапито. Официальные борцы с коррупцией прессуют и задерживают народных борцов с коррупцией.

Коррупция тем временем наблюдает за клоунадой с усмешкой, но сама не участвует – divide et impera, да и воскресенье же.
ermouth: (ang)
По-хорошему, надо бы расписать тут длинную историю, почему внутрь модулей CommonJS не стóит пробрасывать лог-функцию, которая точно знает всю цепочку вызовов до модуля.

Но мне лень, поэтому коротко: лучше бы мы не выделывались, достаточно обычного лога.

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

Вся суть модулей CommonJS – в однократной инициализации и потом быстрых вызовах уже проинициализированного кода. При замене контекста, естеснно, инициализацию в общем случае нужно повторять на каждый новый контекст. Это ничем не отличается от обычного инлайна кода – и полностью противоречит самой сути модулей.

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

В общем, с задачкой на логи я второй раз в жизни сталкиваюсь всерьёз, и во второй раз оказывается, что лог – очень особенный зверёк с инженерной точки зрения.

UPD. Нет худа без добра ) Функционал с контекстно зависимым логом и вообще полным пересозданием контекста мы решили сохранить, просто под другим именем. То-есть у нас будет require() и include().

Обычный require будет работать так же, как нодовский (и CouchDB-шный) CommonJS require. А вот include будет подключать модуль с расширенным контекстом.

1280÷7

Mar. 21st, 2017 10:51 pm
ermouth: (ang)
Начал тестировать одну софтинку на всяком старье – и сразу словил гемор, вестимо из 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, что я видел. 
ermouth: (ang)
Разница на два порядка – в 100 раз – редкое явление, когда речь идёт о человеческих качествах.

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

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

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

CRDT

Mar. 13th, 2017 09:30 pm
ermouth: (ang)

Аббревиатура от С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.

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

ermouth: (ang)
В 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 портит всю малину на клиенте. 
ermouth: (ang)
Читал ленты и наткнулся на скриншот диалога с девицами, которых замели за акцию у Кремля. Девица там поправляет слово «организатор» на «организаторка».

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

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

UPD. Вот у Лейбова про это же http://r-l.livejournal.com/2774571.html
ermouth: (ang)
Жаловался в холода, что плохо работает считыватель отпечатка на новом айфоне. Вариант с низкой влажностью я предположил, но почти отмёл.

Похоже, дело было всё же во влажности. У нас околоноля™ уже неделю – и считыватель работает просто прекрасно.
ermouth: (ang)
Посмотрел сабж. Впечатления двойственные.

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

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

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

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

La Piovra

Feb. 26th, 2017 04:55 am
ermouth: (ang)

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

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

v46

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

v47

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

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

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

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

ermouth: (ang)
У вас есть фотки со спины? Так, чтобы вы спиной на фото были? Вы знаете, как ваш причесон сзади выглядит?

Я внезапно задался таким вопросом и час отлистывал фотки. Нашёл только одну.
ermouth: (ang)
У маковской TimeMachine – прекрасной в целом конструкции – обнаружился довольно любопытный косячок.

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

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

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

Непорядок. Любопытный, кста, интерфейсный кейс.
ermouth: (ang)
Я вчера закончил работать и, как обычно, собрался полетать в симуляторе. Попутно решил всё записать, а потом выложить ускоренное. Полетал я 25 минут, а вот чтобы выложить ускоренное я потратил 2.5 часа, и ещё пока я спал Ютуб ролик пересчитывал.

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

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

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

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

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

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

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



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

ermouth: (ang)
В некотором смысле к предыдущему посту.





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

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

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

Промотал минут за 40, зато с удовольствием перечитал рассказ.
ermouth: (Default)

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

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

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

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

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

Причины:

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

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

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

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

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

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 6th, 2025 10:01 am
Powered by Dreamwidth Studios