Search
Write a publication
Pull to refresh
39
0
Send message

Как начать писать код на Lisp?

Reading time4 min
Views53K

Часто приходится видеть, как новички пробуют Common Lisp и потом жалуются, что с ним невозможно нормально работать. Как правило, это происходит из-за того, что они не понимают как настроить себе процесс, обеспечивающий тот самый "быстрый отклик" от среды разработки, когда ты поменял функцию, скомпилировал её и изменения тут же начали использоваться внутри уже "бегущей" прогрммы без её перезапуска.


Понять, как это выглядит, можно посмотрев какой-нибудь ролик на youtube, где демонстрируется интерактивная разработка на Common Lisp.


О 3D-графике простыми словами

Reading time24 min
Views54K

Часть 1. Введение


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

Идея этой серии постов уже давно витала где-то на периферии моего сознания, и снова всплыла после прочтения интересной статьи с разбором последней Deus Ex.

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


Есть много составляющих, необходимых для создания даже простой 3D-игры, не говоря уж о таком проекте, как Watch Dogs.

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

Игровые фичи с помощью ECS: добавляем в шутер аптечки

Reading time8 min
Views14K


От ковров перейдем к серьезным вещам. Мы уже рассказали про ECS, какие есть фреймворки для Unity и почему написали свой (со списком можно ознакомиться в конце статьи). А сейчас остановимся на конкретных примерах, как используем ECS в нашем новом мобильном PvP-шутере и как реализуем игровые фичи. Отмечу, что применяем эту архитектуру мы только для симуляции мира на сервере и системы предсказания на клиенте. Визуализация и рендер объектов реализованы с помощью MVP-паттерна — но сегодня не об этом.
Читать дальше →

Байт-машина для форта (и не только) по-индейски

Reading time27 min
Views15K
image

Да-да, именно «байт» и именно по индейски (не по индийски). Начну по порядку. В последнее время тут, на Хабре, стали появляться статьи о байт-коде. А когда-то давным-давно я развлекался тем, что писал форт-системы. Конечно, на ассемблере. Они были 16-ти разрядными. На x86-64 никогда не программировал. Даже с 32 поиграться не удалось. Вот и пришла такая мысль — а почему бы нет? Почему бы не замутить 64х разрядный форт, да ещё с байт-кодом? Да еще и на Linux, где я тоже ничего системного не писал.

У меня есть домашний сервер с Linux. В общем, я немного погуглил и узнал, что ассемблер на Linux называется GAS, а команда as. Подключаюсь по SSH к серверу, набираю as — есть! Он у меня уже установлен. Ещё нужен компоновщик, набираю ld — есть! Вот так, и попробуем написать что-нибудь интересное на ассемблере. Без цивилизации, только лес, как у настоящих индейцев :) Без среды разработки, только командная строка и Midnight Commander. Редактор будет Nano, который висит у меня на F4 в mc. Как там поет группа «Ноль»? Настоящему индейцу нужно только одного… Что еще нужно настоящему индейцу? Конечно, отладчик. Набираем gdb — есть! Ну что же, нажмем Shift+F4, и вперед!
Читать дальше →

PIFR — метод генерации 3D-маски, независимо от угла поворота лица

Reading time4 min
Views5.1K
ПИВЛ

Представлем вашему вниманию перевод статьи «PIFR: Pose Invariant 3D Face Reconstruction».

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

Цзян и Ву из Университета Цзяннань (Китай) и Киттлер из Университета Суррея (Великобритания) предлагают новый алгоритм 3D-реконструкции лица — PIFR, который значительно увеличивает точность воссоздания даже в сложных позах.
Читать дальше →

Как я создавал карты континентов для своей игры

Reading time23 min
Views48K
image

Часть 1. SVG и системы координат


До недавнего времени размеры карт в моей игре Dragons Abound были фиксированными и несколько недетерминированными. Я считал их «региональными» — не картами всего мира, но его значительными частями, такими например, как западное побережье США или часть Европы. Меня вполне устраивал этот масштаб, но я хотел немного поэкспериментировать с игрой, чтобы посмотреть, смогу ли я генерировать карты целого мира (или хотя бы большего размера). Но прежде чем я приступлю к этому, давайте немного поговорим о картах фэнтези-миров.

Мир — это большое пространство. Большинство карт фэнтезийных «миров» даже близко не походят на истинный размер. Возьмём, например, Средиземье, в котором происходит действие «Властелина колец»:


Хоть и кажется, что на ней запечатлён огромный мир, на самом деле Средиземье создано на основе Европы.
Читать дальше →

Симулируем реалистичную реку в Houdini и Unreal Engine 4

Reading time6 min
Views39K


Когда только начался переход с DX9 на DX10 стало появляться много игр с круто смоделированной водой с правильными эффектами. Тогда разница была очень заметной, особенно если сравнивать игры прошлых поколений и тот же Crysis. Поэтому когда наткнулся на гайд, как сделать простую, но реалистичную симуляцию реки через плагин Houdini для UE4, то даже не стал задумываться и быстро перевел.

Первый видеокодек на машинном обучении кардинально превзошёл все существующие кодеки, в том числе H.265 и VP9

Reading time6 min
Views65K

Примеры реконструкции фрагмента видео, сжатого разными кодеками с примерно одинаковым значением BPP (бит на пиксель). Сравнительные результаты тестирования см. под катом

Исследователи из компании WaveOne утверждают, что близки к революции в области видеокомпрессии. При обработке видео высокого разрешения 1080p их новый кодек на машинном обучении сжимает видео примерно на 20%лучше, чем самые современные традиционные видеокодеки, такие как H.265 и VP9. А на видео «стандартной чёткости» (SD/VGA, 640×480) разница достигает 60%.
Читать дальше →

Его ворсейшество из 11 полигонов, ничего общего с настоящим

Reading time2 min
Views35K


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

Поэтому, да, ковер из всего 11 полигонов. Просто, но изящно. Под катом перевод небольшого гайда.
Читать дальше →

Релиз Unreal Engine 4.21

Reading time2 min
Views4.2K
Epic Games выпустила Unreal Engine 4.21, что по словам производителя, дает разработчикам большую эффективность, производительность и стабильность для любого проекта на любой платформе, и именно благодаря последнему релизу пользователи смогут получать результаты мирового уровня с помощью Unreal Engine.

Книга «Эволюционная архитектура. Поддержка непрерывных изменений»

Reading time6 min
Views10K
image Пора по-новому взглянуть на постулаты, остававшиеся неизменными на протяжении многих лет. Динамично меняющийся мир диктует свои правила, в том числе и в компьютерной архитектуре. Происходящие изменения требуют новых подходов, заставляют жесткие системы становиться гибкими и подстраиваться под новые условия. Возможно ли долгосрочное планирование, если всё непрерывно меняется? Как предотвратить постепенное ухудшение архитектурного решения с течением времени? Здесь вы найдете ответы и рекомендации, которые позволят защитить самые важные характеристики проекта в условиях непрерывных изменений. «Эта книга знаменует собой важную веху, обозначающую нынешний уровень понимания проблемы. По мере того, как люди начинают осознавать роль ПО в XXI веке, информация о том, как реагировать на изменения, сохраняя достигнутое, становится важнейшим навыком в области создания программного обеспечения.» — Мартин Фаулер

Читать дальше →

F# меня испортил, или почему я больше не хочу писать на C#

Reading time13 min
Views66K

Раньше я очень любил C#


Это был мой основной язык программирования, и каждый раз, когда я сравнивал его с другими, я радовался тому, что в свое время случайно выбрал именно его. Python и Javascript сразу проигрывают динамической типизацией (если к джаваскрипту понятие типизации вообще имеет смысл применять), Java уступает дженериками, отстутствием ивентов, value-типов, вытекающей из этого карусели с разделением примитивов и объектов на два лагеря и зеркальными классами-обертками вроде Integer, отсутствием пропертей и так далее. Одним словом — C# клевый.


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


А потом я из любопытства попробовал F#.

Читать дальше →

Как создать процедуральный арт менее чем за 100 строк кода

Reading time6 min
Views24K


Generative art (генеративное или процедуральное искусство) может отпугнуть, если вы никогда с ним раньше не сталкивались. Если коротко, то это концепция искусства, которое буквально создает само себя и не требует хардкорных знаний программирования для первого раза. Поэтому я решил немного разбавить нашу ленту, погнали.
Читать дальше →

Как не опозориться с локализацией и интернационализацией

Reading time10 min
Views9.9K
На тему этой статьи меня натолкнула история из очень недавнего прошлого. Я зашёл на страничку продукта, именуемого Суперсайтом, компании Не Будем Тыкать Пальцами LLC (но люди из домейнерской индустрии узнают). Заходил я из своего уютного офиса в Латвии и с удивлением обнаружил следующую картину:


И меня, мягко говоря, смутила валюта, в которой была указана стоимость услуг. Ведь на дворе вторая половина 2018 года, а латвийский лат официально прекратил своё существование в январе 2014 и был заменён на евро. И за 4 года не упомянутая выше компания не удосужилась провести ревизию используемых локалей.

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

Портирование Quake3

Reading time10 min
Views14K

В операционной системе Embox (разработчиком которой я являюсь) какое-то время назад появилась поддержка OpenGL, но толковой проверки работоспособности не было, только отрисовка сцен с несколькими графическими примитивами.


Я никогда особо не интересовался геймдевом, хотя, само собой, игры мне нравятся, и решил — вот хороший способ развлечься, а заодно проверить OpenGL и посмотреть, как игры взаимодействуют с ОС.


В этой статье я расскажу о том, как собирал и запускал Quake3 на Embox.

Машинное обучение: прогнозируем цены акций на фондовом рынке

Reading time7 min
Views38K
Переводчик Полина Кабирова специально для «Нетологии», адаптировала статью инженера Кембриджского университета Вивека Паланиаппана о том, как с помощью нейронных сетей создать модель, способную предсказывать цены акций на фондовой бирже.

Машинное и глубокое обучение стали новой эффективной стратегией, которую для увеличения доходов используют многие инвестиционные фонды. В статье я объясню, как нейронные сети помогают спрогнозировать ситуацию на фондовом рынке — например, цену на акции (или индекс). В основе текста мой проект, написанный на языке Python. Полный код и гайд по программе можно найти на GitHub. Другие статьи по теме читайте в блоге на Medium.
Читать дальше →

Аспирантка решила задачу подтверждения квантовых вычислений

Reading time11 min
Views63K

Урмила Махадев провела восемь лет в магистратуре в поисках ответа на один из наиболее базовых вопросов квантовых вычислений: откуда нам знать, что квантовый компьютер сделал хоть что-то на квантовом уровне?




Весной 2017 года Урмила Махадев оказалась в неплохом положении, с точки зрения большинства аспирантов. Она только что решила важнейшую проблему квантовых вычислений – области изучения компьютеров, черпающих свои возможности из странных законов квантовой физики. Вместе с более ранними её работами, новый результат Махадев, описывающий т.н. «слепые вычисления», сделал «очевидным тот факт, что она является восходящей звездой», — сказал Скот Ааронсон, специалист по информатике из Техасского университета в Остине.

Махадев, которой на тот момент было 28, уже седьмой год была в магистратуре в Калифорнийском университете в Беркли – гораздо дольше, чем срок, который требуется большинству студентов, чтобы потерять терпение и захотеть уже закончить обучение. И вот, наконец, она смогла составить «прекрасную докторскую диссертацию», — сказал Умеш Вазирани, её куратор в Беркли.
Читать дальше →

Learn OpenGL. Урок 6.2 – Physically-Based Rendering. Аналитические источники света

Reading time12 min
Views13K
OGL3 В предыдущем уроке был дан обзор основам реализации физически правдоподобной модели рендеринга. В этот раз мы перейдем от теоретических выкладок к конкретной реализации рендера с участием непосредственных (аналитических) источников света: точечных, направленных или прожекторного типа.
Читать дальше →

Вкусный SMM для ресторана

Reading time4 min
Views33K
Ресторан — сокровищница ароматных блюд, напитков и необыкновенной атмосферы. В реальной жизни все именно так. А какое впечатление вы производите в интернете? Что думают о вас клиенты, просматривая очередной пост? Если контент в социальных сетях не вызывает желание забронировать столик на вечер, пора сделать его «вкуснее».
Читать дальше →

Парсим Википедию для задач NLP в 4 команды

Reading time3 min
Views12K

Суть


Оказывается для этого достаточно запуcтить всего лишь такой набор команд:


git clone https://github.com/attardi/wikiextractor.git
cd wikiextractor
wget http://dumps.wikimedia.org/ruwiki/latest/ruwiki-latest-pages-articles.xml.bz2
python3 WikiExtractor.py -o ../data/wiki/ --no-templates --processes 8 ../data/ruwiki-latest-pages-articles.xml.bz2

и потом немного отполировать скриптом для пост-процессинга


python3 process_wikipedia.py

Результат — готовый .csv файл с вашим корпусом.

Читать дальше →

Information

Rating
Does not participate
Registered
Activity