Pull to refresh
4
0
Даниил Барвицкий @borv

User

Send message

Джон Кармак взялся за сильный ИИ — и у него особый подход. Список фундаментальной литературы для начала

Level of difficultyMedium
Reading time7 min
Views36K

В рубрике «Выдающиеся программисты 21 века» уже была статья про гения программирования Джона Кармака, создателя движков для Doom, Quake и других культовых игр. Потом он занялся разработкой ракет (они в Armadillo Aerospace реализовали вертикальную посадку раньше SpaceX), а затем — систем VR, софта для Oculus Rift и других устройств. Сейчас началась четвёртая фаза в его карьере.

В интервью изданию Dallas Innovates 52-летний Кармак рассказал о новом проекте — системе сильного ИИ (AGI), над которым он работает самостоятельно, без участия больших корпораций, как отшельник в своём особняке в Далласе.

Сильный ИИ общего назначения не будет уступать среднему человеку в понимании происходящего и решении проблем. По оценке Кармака, с вероятностью 60% такая система (альфа-версия) будет создана до 2030 года, с вероятностью 95% — до 2050 года. Это самая важная и интересная задача, которая сейчас стоит перед человечеством.
Читать дальше →
Total votes 74: ↑71 and ↓3+93
Comments94

Что такое логическое программирование и зачем оно нам нужно

Reading time17 min
Views45K

У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал)

Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас.


Можно по-разному разделить языки программирования на группы (часто их называют парадигмами программирования), например, вот так:


  • структурное: программа разбивается на блоки — подпрограммы (изолированные друг от друга), а основными элементами управления являются последовательность команд, ветвление и цикл.
  • объектно-ориентированное: задача моделируется в виде объектов, которые отправляют друг другу сообщения. Объекты обладают свойствами и методами. Абстракция. Инкапсуляция. Полиморфизм. Ну в общем, все в курсе.
  • функциональное: базовым элементом является функция и сама задача моделируется в виде функции, а, точнее, чаще всего в виде их композиции, если f(.) и g(.) — это функции, то f(g(.)) — это их композиция.
  • логическое: вот тут, как правило, начинается феерия — если про первые три написаны сотни статей, книг, обзоров, презентаций и учебников, то здесь мы в лучшем случае видим что-то про Prolog и разработки времён Pink Floyd и Procol Harum (ну хоть с музыкой им тогда повезло) и на этом история заканчивается.

Вот эту оплошность я и собираюсь сегодня исправить.


Важнейший тезис этой статьи:


Логическое программирование != Prolog.

И вообще последний вам скорее всего не нужен. А вот первое вполне может быть.


Структура статьи:


  • Что такое Пролог и почему он вам скорее всего не нужен
  • Зачем оно надо, или краткое введение в Answer Set Programming
  • Решаем задачи на ASP
  • Комбинаторная оптимизация
  • Вероятностное ЛП: ProbLog
  • ЛП на классической логике FO(.) и IDP
  • Sketched Answer Set Programming
  • Экспериментальный анализ
  • Тестирование и корректность программ
  • Заключение
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments22

Как банки берут друг у друга в долг. Плавающие ставки, процентные свопы. Ликбез для гика, ч. 4

Reading time9 min
Views20K
Привет! Меня зовут Дмитрий Янтер. Сегодня вы узнаете о том, что такое плавающие процентные ставки, что такое процентные свопы и какое они имеют отношение к ванили.


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments4

Игры от Илона Маска для детей 8-14 лет (играем всем Хабром в комментах)

Reading time4 min
Views16K
image

Илон Маск сделал школу Ad Astra «для своих», а недавно команда этой школы стартовала онлайн-школу за $7500 (занятия онлайн раз в неделю). Там я нашел несколько игр, которые показались мне очень интересными.

image

А давайте всем Хабром поиграем? Пишите свои ответы в опросах и комментах.

Подписывайтесь на канал @MetaLearning, где я делюсь своими самыми полезными находками про образование и роль ИТ/игр в образовании (а так же мыслями на эту тему Антона Макаренко, Сеймура Пейперта, Пола Грэма, Джозефа Ликлайдера, Алана Кея)

Игра 1: A4A


image

Вам предложены 101 произведение современного и авангардного искусства. Если бы вам пришлось собрать коллекцию, какие 15 произведений искусства вы бы выбрали?

Пожалуйста, ответьте на следующие вопросы:

1. Представьте список произведений искусства, которые вы бы включили в вашу коллекцию. В вашей коллекции должна быть по меньшей мере одна работа, принадлежащая к одной из следующих категорий: ОПЫТ, одна СКУЛЬПТУРА, ФЛАГ, один объект ЦИФРОВОГО ИСКУССТВА и один объект БОЛЬШОГО ФОРМАТА.

image

2. Объясните, почему были выбраны именно эти 15 произведений искусства.

3. Спроектируйте галерею или покажите, как вы будете выставлять это искусство для посетителей. Вы можете использовать цифровые инструменты (Minecraft, SketchUp, TinkerCad, Fusion 360 и т.д.) или создать модель и сфотографировать ее.

image

Смотрите все 101 произведения искусств тут.

Читать дальше →
Total votes 13: ↑12 and ↓1+18
Comments23

Проверка изоморфности двух графов и поиск изоморфных подграфов: подход на основе анализа NB-Paths

Reading time13 min
Views35K
Всем привет.

Есть такая задача – проверить, являются ли два графа изоморфными друг другу. Т.е., говоря по-простому, узнать, являются ли оба эти графа «одним и тем же» графом, но с разной нумерацией вершин и, в случае задания графов графически, с разным их пространственным расположением. Решение этой задачи не является таким уж очевидным, как может кому-то показаться на первый взгляд: даже для небольших графов взгляд на их графическое представление не всегда даст однозначный ответ. См., например, рисунок в той же Вики: ru.wikipedia.org/wiki/Изоморфизм_графов#Пример.

Ну как, очевидно?

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

Итак, что же мы имеем?
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments19

Простой зомби-шутер на Unity

Reading time24 min
Views62K
Всем привет! Скоро стартуют занятия в первой группе курса «Разработчик игр на Unity». В преддверии начала курса прошел открытый урок по созданию зомби-шутера на Unity. Вебинар провёл Николай Запольнов, Senior Game Developer из Rovio Entertainment Corporation. Он также написал подробную статью, которую мы и предлагаем вашему вниманию.



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



Дисклеймер №1: данная статья рассчитана на новичков. Если вы собаку съели в Unity, то она может показаться вам скучной.

Дисклеймер №2: для прочтения этой статьи вам потребуется хотя-бы базовое знание программирования. Как минимум, слова «класс» и «метод» не должны вас пугать.

Осторожно, под катом трафик!
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments14

Интервальное голодание — как точно вычислить время

Reading time12 min
Views83K

Интервальное голодание — паттерн питания в котором регулируются циклы с едой и без нее.


Этот паттерн питания сейчас стал довольно популярным и, так как Lifext методика изначально уделяла большое внимание паттернам питания, то мы решили написать подробный разбор и перевести исследования на эту тему.


Интересно. В ходе исследования мы сделали полезное открытие, которое позволяет информировано настраивать индивидуальные циклы еды с максимально полезным результатом и легко внедряемыми интервалами. Статья написана в хронологии проведённого исследования и логика вывода довольно проста и понятна.


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


Читать дальше →
Total votes 11: ↑6 and ↓5+5
Comments30

Паскаль играет в Go. Реализация методов и интерфейсов в любительском компиляторе

Reading time3 min
Views3.7K
If I could export one feature of Go into other languages, it would be interfaces. — Russ Cox



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

Тем не менее дебри объектно-ориентированного программирования остались совершенно нетронутыми. Так почему бы компилятору не послужить теперь полигоном для экспериментов в этой области? И почему бы нам не почерпнуть вдохновение из слов Расса Кокса, вынесенных в эпиграф? Попробуем реализовать в Паскале методы и интерфейсы в стиле Go. Затея интересна хотя бы тем, что все популярные в прошлом компиляторы Паскаля (Delphi, Free Pascal) по сути заимствовали объектную модель из C++. Любопытно посмотреть, как на той же почве приживётся совсем иной подход, позаимствованный из Go. Если вы вслед за мной готовы запастись изрядной долей иронии, отбросить вопрос «Зачем?» и воспринять происходящее как игру, добро пожаловать под кат.
Читать дальше →
Total votes 10: ↑9 and ↓1+13
Comments3

Как мы делали нашу маленькую Unity с нуля

Reading time8 min
Views17K


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

  • рендеринг;
  • работа с SDK;
  • работа с операционной системой;
  • с сетью и ресурсами. 

Однако в нем не хватало того, чем так ценится Unity, — удобной системы организации сцен и игровых объектов, а также редакторов к ним.

Здесь я хочу рассказать, как мы внедряли все эти удобства и к чему пришли.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments9

Arend – язык с зависимыми типами, основанный на HoTT (часть 1)

Reading time21 min
Views9.9K
В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend (язык назван в честь Аренда Гейтинга). Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноценный релиз Arend случился лишь в июле этого года.

Мы попробуем рассказать, чем Arend отличается от существующих систем формализованной математики, основанных на зависимых типах, и о том, какая функциональность уже сейчас доступна его пользователям. Мы предполагаем, что читатель настоящей статьи в целом знаком с зависимыми типами и слышал хотя бы про один из языков, основанных на зависимых типах: Agda, Idris, Coq или Lean. При этом мы не рассчитываем, что читатель владеет зависимыми типами на продвинутом уровне.

Для простоты и конкретности наш рассказ об Arend и гомотопических типах будет сопровождаться реализацией на Arend простейшего алгоритма сортировки списков — даже на этом примере можно почувствовать отличие Arend от Agda и Coq. На Хабре уже есть ряд статей, посвященных зависимым типам. Скажем, про реализацию сортировки списков методом QuickSort на Agda есть вот такая статья. Мы будем реализовывать более простой алгоритм сортировки вставками. При этом основное внимание уделим конструкциям языка Arend, а не самому алгоритму сортировки.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments22

Настройка VSCode для работы с Scala

Reading time5 min
Views13K

Статья рассчитана на новичков в программировании на Scala, каким я сам и являюсь, и просто на желающих начать писать программный код в VSCode.

Так получилось, что единственным гайдом по теме работы со Scalой в Visial Studio Сode оказалось это видео на ютуб-канале DevInsideYou. В нем очень подробно описан процесс установки и настройки среды для VS Code и Sublime Text.

Данная статья – адаптация видео с какими-то добавлениями от меня. Вы можете перейти к просмотру видео или продолжить читать эту статью (либо сделать и то, и другое), в таком случае, надеюсь, она будет вам полезна.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments10

Как визуализировать звук в вебе: подборка тематических материалов и видеолекций с теорией и практикой

Reading time3 min
Views5.8K
В прошлый раз мы подготовили для вас дайджест с открытыми библиотеками для визуализации аудиоконтента и решили найти материалы о том, как со всем этим работать. Получилась подборка руководств по теме для разработчиков веб-приложений или игр.

Total votes 15: ↑15 and ↓0+15
Comments2

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

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


(Источник)

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


(Источник)

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

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

Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие

Reading time16 min
Views29K

В некоторых сферах программирования нормально хотеть написать такую структуру данных или алгоритм, которые могут работать с элементами разных типов. Например, список дженериков или алгоритм сортировки, которому нужна только функция сравнения. В разных языках предложены всевозможные способы решения этой задачи: от простого указания программистам на подходящие общие функции (С, Go) до таких мощных систем дженериков, что они стали полными по Тьюрингу (Rust, C++). В этой статье я расскажу о системах дженериков из разных языков и их реализации. Начну с решения задачи в языках без подобной системы (вроде С), а затем покажу, как постепенное добавление расширений приводит к системам из других языков.
Читать дальше →
Total votes 112: ↑110 and ↓2+108
Comments14

Инженерный подход к разработке ПО

Reading time25 min
Views38K

Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Требования и спецификации — пережиток прошлого?


Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндексе, до этого работал в Intel, ещё раньше разрабатывал RTL-код (register transfer level) на Verilog/VHDL для ASIC/FPGA. Давно увлекаюсь темой надёжности софта и аппаратуры, математикой, инструментами и методами, применяемыми для разработки ПО и логики с гарантированными, заранее определёнными свойствами.


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


Не буду лукавить: основная задача статьи — возбудить интерес. Так что в ней будет минимум пространных рассуждений и максимум конкретики.


Читать дальше →
Total votes 63: ↑61 and ↓2+59
Comments135

The state of CSS

Reading time15 min
Views23K
В ежегодном опросе «The state of JavaScript» разработчики рассказывают о том, что они используют здесь и сейчас. Вопросы там знакомы и привычны фронтенд-сообществу. В 2019 году появился опрос «The state of CSS», который ввёл разработчиков в ступор. Оказывается, многие технологии разработчикам не знакомы, хотя большинство из них уже активно используются. Возможно, разработчики используют привычные инструменты и технологии, и не стремятся применять что-то новое? Возможно, просто нет задач под новые технологии? Зачем использовать CSS Grid, CSS Multi columns, там, где проще построить все на Flexbox? Возможно, это все касается старичков, а джуны уже и не знают про Flexbox и Float и в опросах не участвуют?



Сергей Попов (popovsergey), руководитель Лиги А, спикер и организатор конференций задался этими вопросами, провел свой мини-опрос и даже получил результаты от организаторов «The state of CSS». Всю информацию Сергей обработал, структурировал и получил срез фронтенд-сообщества: кто что знает и использует, где учатся верстальщики и сколько зарабатывают, какие технологии актуальны, а какие пора сдавать в переработку, и что изучать, чтобы применять всю мощь CSS. Расшифровка доклада — один из вариантов отчета по актуальному состоянию CSS, вместе с оригинальным отчетом «The state of CSS» подскажет, куда двигаться и какие технологии применять.

Осторожно, под катом много диаграмм и картинок, действительно много, но они все по делу. В хорошем качестве они тут.
Total votes 50: ↑50 and ↓0+50
Comments9

Истории успеха Kubernetes в production. Часть 10: Reddit

Reading time5 min
Views11K
На прошлой неделе было объявлено о том, что отныне все новые сервисы Reddit запускаются в production на инфраструктуре, основанной на Kubernetes-кластерах. Эта значимая веха на пути миграции на K8s одного из популярнейших онлайн-ресурсов, и вот как к ней пришли…

Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments4

Google удалось вывести из-под налогообложения $22,7 млрд через Ирландию и Бермуды

Reading time2 min
Views40K


Изображение: Unsplash

Журналисты Reuters выяснили, что использование схемы налоговой оптимизации под названием «двойная ирландская с голландским сэндвичем» позволило Google в 2017 году вывести из-под налогообложения почти $23 млрд.
Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments356

Топ-10 фильмов про ИТ

Reading time7 min
Views170K
Привет, Хабр!

Летом в нашем ланитовском блоге мы делали подборку сериалов про ИТ (и хакеров), а теперь в преддверии Нового года пришло время полного метра. Такие «Топ-10 фильмов про ИТ» появляются примерно раз в год, и список там примерно один и тот же: «Хакеры» с Джоли, «Пароль «Рыба-меч» и «Матрица».

Кстати, о последней. При всем уважении к братьям сёстрам Вачовски и трилогии, мы таки не относили бы «Матрицу» к фильмам про айтишников или хакеров. То, что мистер Андерсон работает программистом, а вне работы немного хакерит, всё же не является сюжетной канвой фильма. Рискуем возобновить старый холивар, но «Матрица» — это таки киберпанк. Контраргументы приветствуются.

Так вот, про подборку. Мы решили предложить вам  фильмы посвежее. Под катом нет Джоли и знаменитой сцены из «Пароль „Рыба-меч“», но есть фильмы про ИТ, суперкомпьютеры, и информационную безопасность, большинство из которых выпущены в 2010–2018 годах.

Кадр из фильма «Апгрейд»
Total votes 111: ↑95 and ↓16+79
Comments186

Mask R-CNN: архитектура современной нейронной сети для сегментации объектов на изображениях

Reading time13 min
Views95K


Времена, когда одной из самых актуальных задач компьютерного зрения была способность отличать фотографии собак от фотографий кошек, уже остались в прошлом. На данный момент нейронные сети способны выполнять куда более сложные и интересные задания по обработке изображений. В частности, сеть с архитектурой Mask R-CNN позволяет выделять на фотографиях контуры («маски») экземпляров разных объектов, даже если таких экземпляров несколько, они имеют различный размер и частично перекрываются. Сеть так же способна к распознаванию поз людей на изображении.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments9
1

Information

Rating
Does not participate
Location
Wethersfield, Connecticut, США
Date of birth
Registered
Activity