Pull to refresh
41
0
Роман Лиман @kagetoki

F#/C# developer

Send message

Доступное объяснение алгоритма коллапса волновой функции

Reading time9 min
Views34K
Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные.


(Источник)

Чаще всего он используется для создания изображений, но может также строить города, скейтпарки и писать ужасные стихи.


(Источник)

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

Большинство реализаций и объяснений коллапса волновой функции — это полная, оптимизированная по скорости версия алгоритма. Разумеется, все они важны и необходимы, но в них сложно разобраться с нуля. В этом посте я буду объяснять всё понятным я простым языком, сосредоточившись на версии Wavefunction с ограничениями, которую я назвал Even Simpler Tiled Model. Кроме того, я выложил пример реализации ESTM на Github. Код в нём неэффективный и медленный, но очень хорошо читаемый и подробно прокомментирован. Как только вы разберётесь в технологии, лежащей в основе ESTM, то станете ближе к пониманию более сложных версий алгоритма. Если хотите понять алгоритм коллапса волновой функции, то эта статья будет хорошим началом.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments19

Космическая ошибка: $370 000 000 за Integer overflow

Reading time9 min
Views110K
Пуск.
37 секунд полета… бабах!
10 лет и 7 миллиардов долларов, потраченных на разработку.
Четыре полуторатонных спутника научной программы Cluster (изучение взаимодействия солнечного излучения с магнитным полем Земли) и ракета носитель Ariane 5 превратились в «конфети» 4 июня 1996 года.
А вину свалили на программистов.



Предыдущая модель — ракета Ariane 4 — успешно запускалась более 100 раз. Что пошло не так?

Чтобы штурмовать небеса, нужно хорошо знать язык Ада.
Total votes 113: ↑107 and ↓6+101
Comments95

Что на самом деле случилось с исчезнувшим малайзийским Боингом (часть 1/3)

Reading time11 min
Views174K
1. Исчезновение
2. Прибрежный бродяга
3. Золотая жила
4. Заговоры
5. Возможный сценарий
6. Капитан
7. Истина



1. Исчезновение


Тихой лунной ночью 8 марта 2014 года Боинг 777-200ER, эксплуатируемый Malaysia Airlines, вылетел из Куала-Лумпура в 0:42 и повернул в сторону Пекина, поднявшись на предназначенный ему эшелон 350, то есть на высоту 10 650 метров. Обозначение авиакомпании Malaysia Airlines — MH. Номер рейса — 370. Самолетом управлял Фарик Хамид, второй пилот, ему было 27 лет. Это был его последний тренировочный рейс, после которого его ждало завершение сертификации. Действиями Фарика руководил командир воздушного судна, человек по имени Захари Ахмад Шах, который в 53 года был одним из самых старших капитанов в Malaysia Airlines. По малайзийским обычаям, его звали просто Захари. Он был женат и имел троих взрослых детей. Жил в закрытом коттеджном посёлке. Имел два дома. В первом доме у него был установлен авиасимулятор, Microsoft Flight Simulator. Он регулярно летал на нем и часто писал на онлайн-форумах о своем хобби. Фарик относился к Захари с почтением, но тот не злоупотреблял своей властью.

В салоне самолёта находились 10 бортпроводников, все малайзийцы. Им предстояло позаботиться о 227 пассажирах, включая пятерых детей. Большинство пассажиров были китайцами; из числа остальных 38 были малайзийцами, а прочие (в порядке убывания) были гражданами Индонезии, Австралии, Индии, Франции, США, Ирана, Украины, Канады, Новой Зеландии, Нидерландов, России и Тайваня.
Читать дальше →
Total votes 102: ↑90 and ↓12+78
Comments117

Жизнь на частицах

Reading time4 min
Views64K
Всем привет! Сегодня я расскажу о своих экспериментах с системами частиц. Основной целью было нахождение простых правил, которые бы порождали интересное поведение.

Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!

Под катом много мегабайт гифок.

Читать дальше →
Total votes 269: ↑267 and ↓2+265
Comments67

Использовать машинное обучение не сложно. Для этого достаточно в течение недели…

Reading time5 min
Views16K

image


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

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments38

Двухфазный коммит и будущее распределённых систем

Reading time5 min
Views27K
В этой статье мы смоделируем и исследуем протокол двухфазного коммита с помощью TLA+.

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

Проблема двухфазного коммита


Транзакция проходит через диспетчеры ресурсов (RM). Все RM должны договориться, будет транзакция завершена или прервана.

Менеджер транзакций (TM) принимает окончательное решение: коммит или отмена. Условием для коммита является готовность к коммиту всех RM. В противном случае транзакцию следует отменить.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments1

Вышел Rust 2018… но что это такое?

Reading time11 min
Views21K
Статья написана Лин Кларк в сотрудничестве с командой разработчиков Rust («мы» в тексте). Можете прочитать также сообщение в официальном блоге Rust.

6 декабря 2018 года вышла первая версия Rust 2018. В этом релизе мы сосредоточились на производительности, чтобы разработчики Rust стали работать максимально эффективно.


Временнáя шкала показывает переход функций из бета-версии в Rust 2018 и Rust 2015. Она окружена значками для инструментов и четырёх областей: WebAssembly, embedded, networking и CLI. Красный круг — эффективность разработчика — окружает всё, кроме Rust 2015

Но вообще непросто объяснить, что такое Rust 2018.

Некоторые представляют его новой версией языка… примерно так и есть, но не совсем. Я говорю «не совсем», потому что здесь «новая версия» означает не то, что новые версии других языков.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments23

Rust новости #3 (ноябрь 2018)

Reading time9 min
Views6.4K

КДПВ про Rust2018


Предлагаю вашему вниманию субъективную подборку ржавых новостей за ноябрь. В этой подборке: Rust 2018, RustRush, видео с конференций, Amazon Lambda и Firecracker, квизы, переход exonum на actix-web, 10 причин использовать Rust.


Результаты Rust опроса 2018


график из опроса про сложность изучения тем


Опубликованы результаты ежегодного Rust-опроса (обсуждение), который шел с августа.

Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments12

Переезд в австрийский социализм

Reading time14 min
Views105K

На Хабре часто пишут про эмиграцию в разные страны, а про Австрию ещё не было. Пора восполнить пробел.



Хальштатт


Я попробую описать мой опыт переезда в Австрию (в Вену), а также немного расскажу про особенности страны, которые я узнал за 6 лет проживания тут. Старался кратко, заранее извиняюсь, что не получилось :)

Читать дальше →
Total votes 178: ↑163 and ↓15+148
Comments480

Правдоподобия, P-значения и кризис воспроизводимости

Reading time26 min
Views20K
Или: Как переход от публикации P-значений к публикации функций правдоподобия поможет справиться с кризисом воспроизводимости: личное мнение Элиезера Юдковского.

Если Монро нарисовал комиксы про 75% существующих интересных проблем, а четверть моих статей интересные, то какова вероятность, что рано или поздно мне придётся искать КДПВ где-то ещё?

Комментарий переводчика: Юдковский, автор HPMOR, создатель Lesswrong и прочая и прочая, изложил свою позицию по поводу пользы байесовской статистики в естественных науках в форме диалога. Прямо классический такой диалог из античности или эпохи возрождения, с персонажами, излагающими идеи, обменом колкостями вперемешку с запутанными аргументами и неизбежно тупящим Симплицио. Диалог довольно длинный, минут на двадцать чтения, но по-моему, он того стоит.

Дисклеймеры
  • Этот диалог был написан сторонником байесовского подхода. Реплики Учёного в нижеприведённом диалоге могут и не пройти идеологический тест Тьюринга на фреквентизм. Возможно, что они не отдают должное аргументам и контраргументам сторонников частотного подхода к вероятности.
  • Автор не рассчитывает, что описанные ниже предложения будут приняты широким научным сообществом в ближайшие десять лет. Тем не менее, это стоило написать.

Если вы ещё не знакомы с правилом Байеса, на сайте Arbital есть подробное введение.

Модератор: Добрый вечер. Сегодня в нашей студии: Учёный, практикующий специалист в области… химической психологии или чего-то типа того; его оппонент Байесовец, который намерен доказать, что кризис воспроизводимости в науке можно как-то преодолеть с помощью замены P-значений на что-то из Байесовской статистики…
Студент: Извините, как это пишется?
Модератор:… и, наконец, ничего не понимающий Студент справа от меня.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments41

System.IO.Pipelines: высокоэффективный IO в .NET

Reading time12 min
Views27K
System.IO.Pipelines — это новая библиотека, упрощающая организацию кода в .NET. Трудно обеспечить высокую производительность и точность, если приходится иметь дело со сложным кодом. Задача System.IO.Pipelines — упростить код. Подробнее под катом!

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments17

Программистом к ирландским букмекерам

Reading time40 min
Views38K

Привет, Хабр!


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


В хабе IT-эмиграция в последнее время публикуют всё больше и больше статей про переезд в разные страны, но довольно мало про Ирландию — решил восполнить этот пробел. Надеюсь, кому-то будет полезно.


image


Я работаю разработчиком программного обеспечения в международной букмекерской компании со штаб-квартирой в Дублине. Если чуть точнее, пишу на Scala/Akka, хотя планирую не ограничивать себя только этим. Разрабатываем кластерные отказоустойчивые высоконагруженные приложения.


Подробности ниже.

Читать дальше →
Total votes 50: ↑48 and ↓2+46
Comments243

Мониторинг акторов в Akka.Net, но на F#

Reading time15 min
Views6.3K
Сразу скажу, хаба для F# на хабре нет, поэтому пишу в C#.

Для тех кто не знаком с F#, но знаком с C#, рекомендую наисвежайшую статью от Microsoft.
Она поможет Вам испытывать меньше WTF моментов при прочтении, т.к. моя статья не туториал к синтаксису.


Контекст задачи


Есть сервис, написанный на Akka.NET, он вываливает в разные текстовые логи кучу инфы. Отдел эксплуатации грепает эти логи, жарит по ним регекспами, чтобы узнать о кол-ве ошибок (бизнесовых и не очень), о кол-ве входящих в сервис сообщений и кол-ве исходящих. Далее эта информация заливается в ElasticDB, InfluxDB и показывается в Grafana и Kibana в разных срезах и агрегациях.

Звучит сложно, да и парсить текстовые логи сервиса, который генерит несколько десятков ГБ текстового мусора в день — занятие неблагодарное. Поэтому встала задача — сервис должен быть способен поднять ендпоинт, который можно дёрнуть и получить сразу всю инфу о нём.

Решать задачу будем так:

  1. Напишем доменную модель для метрик
  2. Замапим доменную модель метрик на реализацию App.Metrics и поднимем апишечку
  3. Сделаем структурированный доменный логгер, который натянем на внутренний логгер Akka
  4. Сделаем обёртку для функциональных акторов, которая спрячет работу с метриками и логгером
  5. Соберём всё вместе и запустим
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments3

На злобу дня: кроссплатформенный клиент для Telegram на .NET Core и Avalonia

Reading time9 min
Views21K

В этой статье я расскажу, как реализовать кроссплатформенное приложение на .NET Core и Avalonia. Тема Телеграма очень популярна в последнее время — тем интереснее будет сделать клиентское приложение для него.


Egram


Статья затрагивает достаточно базовые концепции разработки на Avalonia. Тем не менее, мы не будем писать "Hello, World". Вместо этого предлагается рассмотреть реальное приложение. Изучим как общую архитектуру приложения, так и отдельные компоненты.


Чтобы не злоупотреблять вниманием читателя, в некоторых случаях придется сознательно опустить некоторые детали, упростив описание и реализацию. Реальный же код всегда можно посмотреть на GitHub.


Текст статьи носит обучающий характер, но сам проект вполне реальный. Целью проекта является создание клиента, рассчитанного на использование в качестве рабочего инструмента. Множество идей позаимствовано из других мессенджеров и переложено на модель Telegram.

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments22

Information

Rating
Does not participate
Location
Сингапур, Сингапур, Сингапур
Registered
Activity