Category: кино

Category was added automatically. Read all entries about "кино".

петросян

дорама

Услышал тут идею короткой драмы. Делюсь.

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

Гена, на!

Автоперевод автосубтитров - это прекрасно.
Японцы выкатили короткометражный мультик про крокодила Гену и Чебурашку. Мультик доступен на ютьюбе, на японском, но можно включить субтитры, в том числе и русские (кнопка "СС", и выбрать язык в настройках ("шестерёнка")).
Ну и в общем, "а также линия" во все поля - см. скриншоты :-)

Collapse )

Пока не исправили - смотрим и убеждаемся здесь:
https://youtu.be/Fgnht98GaSI

(via "Лентач")
(https://vk.com/wall-29534144_13358168)
филосораптор

ступенька

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

https://sam-newberry.livejournal.com/1016683.html

А я про другое вспомнил. Про недавние уязвимости процессоров - а именно про Meltdown и Spectre (так их уже с два десятка есть, это самые известные). А основаны они на так называемом "спекулятивном выполнении" в современных процессорах: там, в самом центре ядра процессора, где собственно и происходят вычисления, всё крутится с такой бешеной скоростью, что "думать некогда, считать надо", и совершенно штатной является ситуация, что к моменту начала исполнения команды мы ещё не знаем, надо ли её вообще исполнять - доступны ли все данные вот прям счас, "не подвели ли смежники" (успешно ли выполнилась предыдущая команда, от которой зависит эта), по этой ли ветке условного перехода пойдёт выполнение, и даже имеем ли мы право её вообще исполнять (есть ли у процесса доступ к той памяти, к которой команда хочет доступиться). Поэтому команда, а то и ветка команд, начинает выполняться сразу (и бывает что успевает выполниться на пару операций "вглубь"), а уже в процессе выполнения процессор выясняет, стоило ли вообще это выполнять, или не стоило (в абсолютном большинстве случаев стоило, за счёт этого и происходит ускорение - мы не теряем времени на проверки). Если же не стоило - просто выбрасывает результаты выполнения, а команду заворачивает в специальную очередь на повторное выполнение (или не заворачивает, если оказалось что её выполнять вообще не надо было(*)).
При этом "выбрасывание результата" штука не такая тривиальная - нужно ведь чтобы в случае отмены спекулятивного выполнения не осталось буквально никаких алгоритмически значимых следов этого выполнения, и у программы создавалось впечатление исполнения строго-по-порядку-и-правильно (есть ведь ещё "внеочередное исполнение инструкций", тоже интересная тема, а ещё "неправильно" выполненная инструкция вовсе не обязательно останавливает выполнение следующих за ней). И специально для такого "выбрасывания" в процессоре реализована целая куча механизмов, вплоть до возможности "откатить" даже запись в память (для этого сделан короткий "буфер записи", через который проходят все операции записи, прежде чем реально записаться в память, и пока операция в буфере - её можно просто вычеркнуть, как будто ничего и не было). Но поскольку изначально задача зачистки вообще всех "хвостов" не ставилась, ставилась задача чтобы все эти фокусы были незаметны чисто, так сказать, алгоритмически, а например обращение к памяти так или иначе "задевает" довольно много узлов процессора (кеш, таблицы дескрипторов, что-там-ещё), оставляя косвенные признаки того, что обращение было, эти признаки можно пытаться обнаруживать - то есть команда вроде как бы и не выполнилась, никакого _результата_ после себя не оставила, но _следы_ попыток её выполнения - остались.

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

А теперь рассмотрим ситуацию, в которой человечество живёт и обсчитывается в некоей Матрице. Чисто из соображений эффективности, мир при этом удобно разбить на систему слабосвязанных участков, и каждый такой участок обсчитывать на своём вычислительном узле - тогда не придётся учитывать "влияние всего на всё" (ретроградного Меркурия на успех Великой Октябрьской Социалистической Революции), а обойтись относительно небольшим потоком информации между узлами. Это мы, в принципе, и наблюдаем - люди любят селиться компактными кучками (города, сёла) с относительно слабыми связями (интернет это изменил, но не так чтобы радикально), звёзды-планеты вообще отдельно, и до недавнего времени вообще сводились к "точкам на небесном своде". Но при этом, как за счет ограниченности потока данных, так и временнЫх задержек, точное состояние "внешних" узлов при обсчёте будет частично "угадываться" (кстати, не эту ли проблему должен был решить хак с квантовой механикой?), что неизбежно будет приводить к рассогласованиям между реальностями разных узлов. При синхронизации эти рассогласования будут, разумеется, обнаружены и скомпенсированы - в лёгких случаях простым "приведением в соответствие" (небольшие сбои в реальности мало кто заметит), в более серьёзных - с "коррекцией прошлого" (частичной заменой памяти/предыстории).
Но, поскольку изменяется только так сказать явная, "видимая" часть памяти, а неявная, то есть весь букет ассоциаций и поведенческих нюансов, с этой памятью связанных, не изменяется (поскольку это потребовало бы фактически пересчёта этого участка заново от момента первого изменения, а это не просто затраты времени, но и рассинхронизация участков), как раз и возможны всякие странные ситуации. Начиная с "события как бы не было, но его последствия есть" и до "ложной памяти" вроде той самой "ступеньки" по ссылке.

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

===
(*) в плане спекулятивного выполнения мне вот что больше всего понравилось.
Вот программа-злоумышленник выполняет инструкцию с обращением к чужой памяти. Инструкция начинает выполняться, пока она выполняется процессор обнаруживает что выполнять её нельзя ни в коем случае, и генерирует исключение. Управление передаётся операционной системе, а та, при достаточно параноидальной настройке, тупо прибивает программу. Да и при менее параноидальной испортить жизнь злоумышленнику не так уж сложно, хотя бы кеш инвалидировать - уже большая часть атак отвалится.
А теперь мы кладём эту же инструкцию в одну из веток условного перехода, и подначиваем процессор думать, что эта ветка более вероятна (методы есть). Процессор спекулятивно выполняет инструкцию, обнаруживает обращение к чужой памяти... но мы тем временем выполняем переход по _другой_ ветке, и поскольку оказывается что инструкцию выполняли зря, и надо сделать вид что этого не было - исключение _не_ генерируется, и злоумышленник спокойно переходит к следующему этапу (обычно это опрос кусочка своей памяти на предмет выяснения, что из этого кусочка есть в кеше).
Работает же фантазия у людей!
Kimura2

CGA!

Тут наткнулся на пару статей (ссылки внизу).
Есть одна демо-группа - это люди, которые пишут программы с демонстрацией спецэффектов, как правило на античных компах, потому что на новых это слишком просто и потому неинтересно (они существуют!!! до сих пор!!). Так вот, они взяли IBM PC/XT с видеоадаптером CGA (это 1981 год, графический режим с использованием 4 цветов из палитры в 16 цветов, текстовые режимы с использованием 16 цветов, причём 16 цветов там как бы принципиальное ограничение железа - на стандартный выход идёт четыре цифровых сигнала - RGB и "светлый" - и что с этим не делай, больше 16 комбинаций не получишь). И, используя несколько очень хитрых трюков, получили на нём... 1024 цвета! Показываемых одновременно, правда в низком разрешении, но "сравнительно честных" - без дизеринга, мелькания и подобных трюков, правда не на мониторе, а на условном "телевизоре" через композитный выход видеокарты.
Каким образом они совершили невозможное и выбили из CGA больше цветов чем когда-то позже сделают в VGA я пересказывать не буду - оно "изобилует сценами неприкрытого насилия", в том числе и над здравым смыслом, отмечу что меня больше всего удивило.

Дело было в 2015 году. Меня не очень удивляет, что в 2015 году находятся люди, с энтузиазмом ковыряющиеся в железе 1981 года с целью наковырять в нём что-нибудь интересное. Меня вообще не удивляет что люди находят в железе недокументированные возможности, и используют их в своих целях - там по второй ссылке есть забавный пример использования на CGA почти-как-настоящего разрешения 640х200 с 16 цветами (на самом деле хитрого текстового, но сразу-то и не разглядишь).
Меня удивляет то, что когда эпоха CGA безвозвратно ушла и забылась, когда казалось бы уже были открыты (и забыты за ненадобностью) все "хитрые трюки" того железа, уже в наше время, когда всё меряется гигабайтами и гигагерцами, народ открывает НОВЫЕ возможности того железа, причём в разы превосходящие то, что было открыто "по горячим следам", когда CGA была ещё хоть немного актуальна.

В общем:
https://habr.com/ru/post/358122/ - хаброперевод статьи про демку, есть видео демки (на реальном железе, эмуляторы в такое не умеют)
https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-illustrated/ - статья с описанием того, как удалось добиться 1024 цветов от принципиально 16-цветной карточки. Самое интересное, "для тех кто понимает"
Shinji Ikari

GitS: SAC (new)

Опять снимают очередного призрака в доспехах. На этот раз - сериал по мотивам GitS: SAC, с мультяшной 3D графикой.

И непонятно как относиться, то ли "о, картинка прикольная, надо будет посмотреть", то ли "ну закопайте наконец стюардессу, хватит с нас GitS: Arise и голливудской полнометражки". Но вообще, если кому Arise зашёл, это скорее всего будет не хуже.


https://www.youtube.com/watch?v=nIqzdn-Gjwk

via https://colonelcassad.livejournal.com/5598553.html
Kimura2

Русский язык

--------------------------------
Русский язык — это просто
(с) Vadim Emmanuilovich Alyoshin

Преподаватель: Сегодня мы учим множественные формы! Например, "Одна стена, две стены"
Студент: «Ы» создает форму множественного числа как английский "S"?
П: Типа того, молодец!
С: Две стены, три стены, четыре стены, пять стены!
П: Стоп! Пять стен
С: …?
П: Если пять, то уже не нужно окончание.
С. Понял. Значит 5 мам, 5 женщин, 5 девушк.
П: Нет! Пять девушЕК.
Collapse )
Dexter's Lab

юникод

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

https://habr.com/post/147387/
via starcat13