lnd2

3.0

Clip_33a.jpg - Picamatic - upload your images

Из главного:

Clip_35.jpg - Picamatic - upload your images

Clip_46.jpg - upload images with Picamatic

:))

Collapse )

И про игры:
Clip_27.jpg - Picamatic - upload your images
EA и ngmoco показали новые фичи в действии - пуш, мультиплеер и покупки-в-игре.

Полное видео - на apple.
Приобщиться к высокому можно уже сегодня за $99.
Релиз летом, бесплатный.

Хочу лето весной, вот! :)

Ну и не забываем про
Конкурс по созданию игр с экспериментальным геймплеем!
lnd2

И вновь данайцы

Забавно рассказывать о map и fold/reduce - и говорить о MapReduce.
Примерно так же забавно, как говорить о map и fold/reduce, объясняя fold/refold/unfold.
Википедия однозначно приносит плоды.

Зато ликбез был успешно проведён аж на трёх фронтах. И это радует.
lnd2

И вновь осеннее

Подход "Improvise, modify, adapt and overcome" отлично применим и к оптимизации.

Оптимизировать намазанное ровным слоем - грустно.
Поэтому проблемы нужно творчески сконцентрировать в хорошо локализованные группы пиков.
И пики потом отрезать.

Главное - не бояться полученного концентрата.
Ибо ночь темнее всего перед рассветом.

Через это я считаю, что канал ДТФ рулит.
Канализация вообще великая штука, ибо концентрирует, централизует - и отрезает.
Бояться надо как раз равномерной Великой вони.
lnd2

Занимательный бег не спеша у _foreseer

Спешите видеть замечательное введение в lock free стеки у _foreseer:
Running lock free.

Там просто и внятно изложена базовая идея и есть хорошие ссылки на почитать.
Ну а уж презентация Elimination-Backoff Stack просто жжёт термоядом - спасибо за ссылку, Андрей!

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

"Как стек running free у нас" - ABA брутально через CAS2.
Но чаще не столько CAS, сколько классическое комбо Load-Link/Store-Conditional.
А именно lwarx/lwsync/stwcx/GETLLAR/PUTLLC, и дальше вариации на тему очень быстрой vs очень устойчивой синхронизации (ну и на обход багов в отдельно взятых процессорах).

Важно помнить про тот самый exponential backoff. Ну и вообще, важно думать.
Если думать, то и lock-free структуры не понадобятся :)
Ну а если не думать, то они скорее всё испортят, чем помогут.

Вот не далее чем на прошлой неделе загадочно и очень каскадно протухла память.
И - что вы думаете? - выяснилось, что зажгла самопальная реализация lock-free очереди.
Автору кода было интереснее реализовывать lock free очередь нежели свои таски.
И хотя тема протеста "маленького человека" против обезличенной корпоративной машины мне в целом понятна, это таки не повод не читать википедию.

Я по-прежнему считаю, что геймдев конторы обязаны предоставлять публичный доступ к исходникам. Чтобы термины "exponential backoff", "memory barrier" и "lock-line reservation" из абстрактных превратились в конкретные, благодаря помощи зала.
Принцип Керкхоффа вполне применим к геймдеву, ибо смысл соревнований - в умении создавать и шипить игры.

Через это ссылки на почитать дальше про lock free и вообще:
1. Lock-Free Code: A False Sense of Security Хебра нашего Саттера.
2. Insomniac’s SPU Best Practices (PPT) Майка нашего Эктона.
3. Obstruction-Free Synchronization (PDF) того самого Мориса Херлихуя (ц) _foreseer.
lnd2

Дуэт Тьюринг-машинок

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

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

Очень хочется помощи зала.
Вот цытато:

Now, since f(k) is determined by a parallel duo of Turing machines that is not, itself, a Turing machine, but which can be viewed as a deterministic Turing oracle, it follows that there is no algorithmic method of determining f(k); in other words, although the number-theoretic function f(x) is a well-defined mathematical concept, f is not a mathematical object. Hence f(x) may be considered as determinate, but uncomputable; its values are essentially unpredictable, and so, by definition, truly random.

(Is the Halting probability a Dedekind real number?)