связь

Mar. 10th, 2025 01:01 am
thedeemon: (office)
На днях оповещения от ЖЖ перестали приходить мне на почту (у кого-нибудь еще такое наблюдается? Upd: разобрался, проблема была в настройках моего сервера), заглянул в список сообщений тут на сайте, внезапно увидел персональное сообщение, которое было отправлено 2 месяца назад, но ЖЖ счел его подозрительным и на почту не продублировал.

Чтобы такого впредь не случалось, всем, кому это может понадобиться, сообщаю: мне можно (и лучше) писать на info@ мой ник тут .com.

(написано в марте 2015, пост поднят вверх для заметности)
thedeemon: (Default)
Давно хотел сам пронаблюдать. А тут попалась в руки лазерная указка. Берем такую указку, берем один волос со своей головы, светим на стену в полуметре-метре от себя, ставим перед указкой волосок. До/после:

Вот они, обещанные волновой природой света пятнышки!

Еще интересный эффект на камере, когда пятно от лазера близко к центру кадра:

Пятно из колец переменной толщины с центром в точке, симметричной основному пятну относительно центра кадра.

a view

May. 12th, 2017 02:57 pm
thedeemon: (passport)
Обнаружил вдруг самый лучший ТВ-канал, ради которого можно прям и плазму купить, на стену повесить и крутить там круглосуточно, вместо окна. Live feed from ISS:
https://www.youtube.com/watch?v=RtU_mdL2vBM
Не знаю, сколько там действительно live, а сколько записи, как ни загляну, там все кто-то на морозе шастает, вышел вакуумом подышать. Но зрелище завораживает.

SMP

May. 11th, 2017 08:16 pm
thedeemon: (bednota)
А вот еще случай был. Программа генерит длинную последовательность неких значений (phase_1), и поблочно эти значения потом как-то дальше обрабатываются (phase_2), производя добро (PROFIT!). И надо бы это делать побыстрее. Пришла очевидная мысль это дело распараллелить: пока phase_2 обрабатывает первый блок данных от phase_1, в это время phase_1 может уже параллельно создавать следующий блок, и так далее, блок N обрабатывается параллельно созданию блока N+1. В каждый момент времени в памяти лишь два блока - генерируемый и обрабатываемый. Завел для них два массива: то пишем в первый, читаем из второго, то наоборот.
std::vector<Freq> ranges[2];

При этом phase_1 что-то пишет в один из массивов через push_back, а обработка блока в phase_2 выглядела как-то так:
BYTE* writeBlock(const std::vector<Freq> &ranges, BYTE *dst) {
    ...
    for(int i=ranges.size()-1; i>=0; i--) {
        ... // use ranges[i]
    }    
    ...
}

До распараллеливания phase_1 занимал по времени 12 попугаев, phase_2 - 13 попугаев, всего 25. Запускаю новый распараллеленный вариант и вдруг вижу, что общее время стало аж 41 попугай. Вместо ускорения получил замедление!
А теперь беру и меняю пару строк:
BYTE* writeBlockV(const std::vector<Freq> &rangesV, BYTE *dst) {
    ...
    const Freq * ranges = &rangesV[0];
    for(int i=rangesV.size()-1; i>=0; i--) {
        ... // use ranges[i]
    }
    ...
}

И общее время становится менее 15 попугаев, почти втрое быстрее! Т.е. в первом случае код в цикле каждый раз загружал указатель на данные в векторе, а этот указатель лежал в памяти рядом с длиной другого массива, которая менялась в другом потоке, так что два ядра тягали этот кусочек памяти туда-сюда: одно ядро туда пишет новую длину, второе ядро копирует изменившуюся кэш-линию, чтобы прочитать указатель по соседству. Из-за этих тяганий туда-сюда получается медленнее, чем если все делать в один поток. А стоило указатель на данные вектора унести в стек и перестать читать меняющуюся кэш-линию, как все заработало быстро, как и планировалось.
Причем безобразие такое только у интеловского компилятора. MSVC и GCC не перечитывают указатель и тяганий кэш-линий не устраивают, оба варианта кода работают с одинаковой скоростью. При этом с GCC время получается чуть менее 16 попугаев, а с MSVC - почти 33 (что все же быстрее непараллеленного варианта, где у MSVC 42 попугая).
thedeemon: (faculty of numbers)
Берешь энное количество достаточно простых скриптов, добавляешь распознавание и синтез речи, к этому прикручиваешь неонку, обученную на куче диалогов из интернетов, которая почти никогда не отвечает одинаково, при этом дополнительно учишь ее фильтровать лексику если надо, добавляешь плавно меняющиеся во времени коэффициенты "настроения", разрешаешь ей самой инициировать общение, а не только отвечать, тратишь на это около года по часу в день, и получается довольно прикольная штуковина, имитация интеллекта в машине:
https://www.youtube.com/watch?v=B-CaMRUxrjw (5 минут)
(чуток подробностей от автора: https://youtu.be/-pqUbSvVhGQ?t=15m58s )
thedeemon: (vajrasattva)
Замечательный диалог тут вышел с моим любимым Шоном Кэрроллом (14 минут видео):
https://www.closertotruth.com/series/physics-consciousness
Про сознание, корабль Тесея, его копирование, зомби и стоит ли мечтать об аплоаде сознания в сеть (спойлер: видимо, не стоит).
Кэрролл еще раньше высказывался, что в физике нет места сознанию, что вот мол есть уравнения стандартной модели и они отлично описывают все физические процессы, и если бы было что-то нематериальное/духовное, что могло бы как-то влиять на физический мир (шевелить вашими мускулами, например), то это бы прямо противоречило экспериментальным проверкам текущих физических теорий. А здесь рядом David Chalmers явно указывает, где именно сознание может в физике прятаться - грубо говоря, в редукции волновой функции. О том же говорил и Менский у Гордона, и многие другие вплоть до чуть ли не Шрёдингера. Хороших ответов ни у кого пока нет, но есть о чем поразмыслить.

Streams

Apr. 21st, 2017 05:52 pm
thedeemon: (vonny tropics)
Вот Идрис синтаксически очень похож на хаскель, однако не ленивый. В хаскеле ленивость-по-умолчанию сопровождается строгостью-по-запросу, добавшяешь перед полем значок ! и оно строгое. Оказывается, в Идрисе нынче есть симметричная штука: добавляешь перед типом поля волшебное слово Inf, и поле оказывается "ленивым": когда данные конструируются, выражение для вычисления этого поля не вычисляется сразу, а автоматически оборачивается в Delay (если явно поленился это сделать), а при паттерн-матчинге оно когда надо автоматически форсится через Force (т.е. механика практически как в окамле с ленивыми значениями, но вручную необязательно оборачивать и форсить, компилятор сам вставляет).
Например, через этот механизм сделан тип бесконечных последовательностей:
data Stream : Type -> Type where
(::) : (value : elem) -> Inf (Stream elem) -> Stream elem

Благодаря автоматическому расставлению делеев и форсов, код с такими коданными выглядит так же просто и чисто, как в хаскеле:
countFrom : Integer -> Stream Integer
countFrom x = x :: countFrom (x+1)

first : Nat -> Stream a -> List a
first Z xs = []
first (S k) (x :: xs) = x :: first k xs

prepend : List a -> Stream a -> Stream a
prepend [] ys = ys
prepend (x :: xs) ys = x :: prepend xs ys

Обратите внимание, что в функциях выше :: используется в паттерн-матчинге и в конструировании сразу и для списков и для стримов, компилятор сам по типу понимает где что, и для стримов вставляет delay/force.
Подобно Основное Теореме Арифметики и Основной Теореме Алгебры, есть Основная Теорема Функционального Программирования (это, по Карри-Говарду, конечно же тоже функция), ее можно записать так:
fibs : Stream Integer
fibs = 1 :: 1 :: zipWith (+) fibs (drop 1 fibs)

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

— Не пугайтесь, Екатерина Петровна, и не волнуйтесь. Только нет в мире никакого равновесия. И ошибка-то всего на какие-нибудь полтора килограмма на всю вселенную, а все же удивительно, Екатерина Петровна, совершенно удивительно!
thedeemon: (Default)
Отношение к современности амбивалентно. Согласно предыдущему, освобождение однородно преобразует сходящийся ряд. Сумма ряда изоморфна времени. Максимум, конечно, решительно творит интеграл от функции, обращающейся в бесконечность вдоль линии. Не факт, что постулат ясен не всем.

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

Априори, умножение двух векторов (векторное) искажает двойной интеграл. Созерцание нетривиально. Интеллект восстанавливает косвенный интеграл Пуассона.
отсюда
thedeemon: (faculty of numbers)
Вот оно, главное доказательство нужности математики, кульминация всей топологии и теории узлов. Математически оптимальный способ завязывания шнурков:

thedeemon: (office)
Занятные нынче идеи витают в воздухе.
Фрагмент из книжки Пелевина 2014 года:
"Центром Вселенной оказалась действительно Земля. А все солнца, звезды, галактики, квазары и прочие черные дыры были только существующей в мире возможностью, и чем дальше от меня располагалась эта возможность, тем менее реальной она выглядела. Наверно, я говорю не совсем научно — или совсем ненаучно — но я просто пытаюсь описать реальность так, как я ее ощутил, когда стал Киклопом. Так же ее, видимо, ощущали и все предыдущие Киклопы, отчего человеческое ясновидение никогда не вступало в конфликт с самой обскурантистской картиной мира.

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

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

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

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

Фрагмент из заметки 2016 года известного физика-теоретика, рассказывающего про современные подвижки в квантовой механике:
"The real world simply is quantum-mechanical from the start; it’s not a quantization of some classical system. The universe is described by an element of Hilbert space. All of our usual classical notions should be derived from that, not the other way around. Even space itself. We think of the space through which we move as one of the most basic and irreducible constituents of the real world, but it might be better thought of as an approximate notion that emerges at large distances and low energies.

So here is the task we set for ourselves: start with a quantum state in Hilbert space. Not a random or generic state, admittedly; a particular kind of state. Divide Hilbert space up into pieces — technically, factors that we multiply together to make the whole space. Use quantum information — in particular, the amount of entanglement between different parts of the state, as measured by the mutual information — to define a “distance” between them. Parts that are highly entangled are considered to be nearby, while unentangled parts are far away.
This gives us a graph, in which vertices are the different parts of Hilbert space, and the edges are weighted by the emergent distance between them.

We can then ask two questions:
When we zoom out, does the graph take on the geometry of a smooth, flat space with a fixed number of dimensions? (Answer: yes, when we put in the right kind of state to start with.)
If we perturb the state a little bit, how does the emergent geometry change? (Answer: space curves in response to emergent mass/energy, in a way reminiscent of Einstein’s equation in general relativity.)
...
If geometry is defined by entanglement and quantum information, then perturbing the state (e.g. by adding energy) naturally changes that geometry. And if the model matches onto an emergent field theory at large distances, the most natural relationship between energy and curvature is given by Einstein’s equation."
(рекомендую целиком почитать)
thedeemon: (office)
Такое хорошее кино, и такое дурацкое название ему дали.
thedeemon: (office)


У этого поста есть непустой заголовок "0", но он почему-то не отображается (на странице поста и при просмотре /friends, но виден в /feed).
thedeemon: (office)
Several invocations may be required to fully excise all bugs from your code.
На реддите напомнили про замечательный язык, где процесс избавления от багов в коде наконец-то автоматизирован.

2016

Nov. 5th, 2016 04:10 am
thedeemon: (office)
Летом SMM-щики переборщили с рекламой Suicide Squad, я его счел переоцененным и не стал тогда смотреть. А сейчас таки ознакомился; фильм оказался лучше, чем я ожидал. Очень 2016, квинтессенция сегодняшнего голливуда и музыки (если и перестарались, то оттого, что сильно старались). Саундтрек особенно радует. А чего стоит фраза/сценка про "killer app" - мир ее уже заждался, кто-то должен был это показать. :)

Хотя есть небольшой риск, что будет как с The Spawn - о чем тот фильм был уже никто не вспомнит, а вот саундтрек там был ух, неизгладимый.
thedeemon: (office)
Многопоточность в Ruby, Python, OCaml и Node.js:
thedeemon: (office)
If that's not the best comedy of last decade, then what is?

В конце немного перегнули, но все же.
thedeemon: (office)
Мы были еще подростками, недавно поступившими в универ, посмотрели Матрицу, 13-й Этаж и Экзистенцию, почитали Д.Т. Судзуки, геше Тинлея и других популярных авторов за буддизм, и много часов провели в ГЗ-шной столовке за обсуждениями всех этих тем о взаимоотношении ума и реальности... Сейчас наткнулся на 20-минутное выступление, где калифорнийский когнитивный учоный все те же телеги толкает (что в текстах Нагарджуны и Дхармакирти), одновременно капитанские и провокационные, но заходя внезапно со стороны эволюции и симуляционных экспериментов. Парочка анекдотов и метафор у него хорошо вышли..

https://www.ted.com/talks/donald_hoffman_do_we_see_reality_as_it_is
thedeemon: (office)
Сегодня у сына начался новый учебный год. Почему-то не 1-го сентября и не в понедельник, а вот так. Видимо, с нуля считают.



Что еще сложнее уложить в голове, он сегодня пошел во второй класс. А ему 5 лет. Потому что пришел в эту школу в 5, там программа английская, где тоже в 5 начинают вроде как, оказался в первом классе, потом один учебный год кончился, и вот уже второй.
thedeemon: (office)
1. Пишешь софт на редком языке.
2. Ждешь, пока именитые компании тоже начнут его использовать.
3. Оказываешься с ними в одном коротком списке, делаешь групповое фото "моя компания в одном ряду с eBay и Facebook".
4. ???
5. PROFIT!

Групповое фото моей компании в компании Facebook, eBay и Remedy Games:

(отсюда)
thedeemon: (office)
As you surely know, Bashkortostan is the world leader in technology,
computer science and algebraic topology. With this submission, we expect to
cement the positions of our motherland in the exciting new field of
computational geometry. Don't worry: resistance is very obviously futile.

From young age, our children are trained in the art of convex decomposition
of polyhedra, computing barycenters of weighted point sets, and triangulated
surface mesh skeletonization; hoping, that one day they'd be tasked with a
crucially important problem of...

https://github.com/cakeplus/icfp-2016-wild-bashkort-mages
Самый суперский отчет (точнее, readme к исходникам) с нынешнего ICFPC. Почитайте целиком, не пожалеете.

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

Profile

thedeemon: (Default)
Dmitry Popov

August 2017

S M T W T F S
  12345
6789101112
131415161718 19
20212223242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 20th, 2017 01:53 am
Powered by Dreamwidth Studios