Pull to refresh
2
0
Иванюшин Дмитрий @DeFANCE

Пользователь

Send message

Реализация циклической генерации подземелий «изнутри»: да что тут сложного?

Level of difficultyEasy
Reading time14 min
Views5.9K

Вам нравятся старые Legend of Zelda времён SNES и GBA? Может быть, вам пришлась по вкусу Dark Souls? А, возможно, вы ещё и фанат Quake? Но что объединяет все эти игры? Для меня это в первую очередь дизайн уровней. Головоломки, удобные шорткаты и нелинейность исследования - вот то, что делает карту игры частью общего игрового процесса и вдыхает жизнь в процесс исследования мира.

В наше время расцвета жанра rogue-lite вопрос генерации игровых уровней актуален как никогда. Однако по-настоящему интересные уровни в жанре - большая редкость, я бы даже сказал, феноменальная. Чаще всего уровни представляют собой просто наборы заранее заготовленных комнат-коробок, случайным образом приставленных друг к другу, без какой-либо логичной высокоуровневой картины. Но, всё же, я знаю одну игру, которая взяла принципиально другой подход: Unexplored. На мой взгляд, она пересмотрела устоявшийся стереотип об ограничениях левелдизайна в рогаликах. Всё, что для этого понадобилось - циклическая генерация подземелий (Cyclic dungeon generation).

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

Каких же?
Total votes 19: ↑24.5 and ↓-5.5+30
Comments10

Разбираемся с this в JavaScript раз и навсегда (но это не точно)

Level of difficultyMedium
Reading time8 min
Views11K

Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и то как фронтендеры пишут очередную статью про this.

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

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

Читать далее
Total votes 13: ↑13.5 and ↓-0.5+14
Comments5

Как решить типичные проблемы Django нестандартным подходом: Fake Injection

Level of difficultyMedium
Reading time18 min
Views3.9K

Давайте признаем, что развитие проектов в мире Django не всегда проходит гладко. Мы часто сталкиваемся с толстыми моделями и сериалайзерами, размытой бизнес-логикой и тестированием, которое больше напоминает головную боль, чем удовольствие. Меня зовут Павел Губарев, я backend-разработчик продукта 10D в компании Самолет. Последние пять лет я занимаюсь backend-ом и большую часть времени я использую именно Django. С ростом проекта увеличивается и его сложность, в случае с Django есть набор часто встречающихся проблем. В этой статье я расскажу о методах нашей команды, которые помогли нам справиться с этими проблемами и привести код к новому уровню надежности и эффективности.
Читать дальше →
Total votes 15: ↑20 and ↓-5+25
Comments8

Эффект Даннинга-Крюгера говорит о том, что люди не знают, чего они не знают

Level of difficultyEasy
Reading time10 min
Views2.7K

Эффект Даннинга-Крюгера описывает тревожащее когнитивное искажение, от которого страдаем все мы. Люди с ограниченными знаниями в какой-либо области склонны переоценивать свои знания — а пробелы в знаниях есть у всех нас. Это несоответствие может объяснить, почему некоторые пациенты обращаются к «доктору Google», чтобы на дому поставить диагноз в случае сложных медицинских проблем, а почему мы время от времени совершаем ошибки в разных областях, начиная от починки водопровода и заканчивая представлением себя в суде. За прошедшие годы эффект Даннинга-Крюгера превратился из научной гипотезы в популярный мем, который используется в перепалках в социальных сетях. В иерархии оскорблений найдётся немного более сильных аргументов, чем идея о том, что ваши оппоненты настолько глупы, что даже не знают, насколько они глупы. Это всего лишь один шаг до того, чтобы назвать другую сторону кучкой нацистов, так называемый «закон Годвина» — традиционный способ, которым заканчиваются пламенные войны.

Дэвид Даннинг, ныне социальный психолог из Мичиганского университета, и Джастин Крюгер, работающий в Нью-Йоркском университете, предложили свой одноимённый эффект в знаменитой работе 1999 года. Проведя серию опросов в сочетании с тестами, они обнаружили, что студенты из Корнелла, получившие оценки в нижнем квартиле, считают, что они получили оценки в третьей четверти, и выявили связанные с этим формы необоснованной самоуверенности. С тех пор Даннинг расширил свои исследования, изучая механизмы доверия и убеждений. Соредактор OpenMind Кори С. Пауэлл поговорил с Даннингом о его повсеместном эффекте и о том, как он влияет на самопознание каждого из нас. (Эта беседа была отредактирована для большей ясности).

Читать далее
Total votes 11: ↑10 and ↓1+9
Comments12

Экономика Звёздных войн

Reading time14 min
Views13K
Прежде чем стать галактической, экономика была планетарной: она охватывала отдельные планеты и звёздные системы. Изолированные экономики тихо-мирно варились в собственном соку, стараясь охватить все сферы деятельности для своего самообеспечения. Расстояние между ближайшими звёздами составляет несколько световых лет, и для эффективного товарообмена это было проблемой.

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

Кроме эвоков, конечно же.

image
Читать дальше →
Total votes 28: ↑27.5 and ↓0.5+27
Comments41

Привычка быть SOLIDным разработчиком

Level of difficultyMedium
Reading time20 min
Views13K

Привет, Хабр! Меня зовут Грант, я уже 5 лет занимаюсь backend-разработкой в SimbirSoft, а с 2021 года возглавляю Backend-отдел компании в Краснодаре. В последние несколько лет неоднократно замечаю, что на входном интервью соискатели часто путают принципы разработки. Поэтому в этой статье решил разобрать, как проще их понимать, какие связи между ними прослеживаются, стоит ли учить все или что-то можно пропустить. А еще попробую раскрыть некоторые особенности, какие секреты скрывают популярные принципы разработки.

Погрузиться 👀
Total votes 15: ↑13 and ↓2+11
Comments5

Doom. Часть 2. В поисках неведомого Кадата или магический реализм, сюрреализм и странные сны. 8 необычных вадов

Level of difficultyMedium
Reading time7 min
Views2.5K

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

Когда речь заходит о кастомных картах и вадах, то понятие того, что в целом считать сюрреалистическим часто размывается и его, как следствие, помещают на одну абстрактную полку с другими, в частности упомянутыми жанрами. Этот факт, пожалуй, отчасти обусловлен тем, что в чистом, дистиллированном виде, подобного рода творения встречаются куда реже, как в контексте кастомных вадов, так и если взять игровую индустрии в целом, но они существуют. Особняком здесь также отчасти можно было бы отметить вады под Doom 64 и PSX, но конкретно о них может быть как-нибудь в другом раз.

Далее по тексту будут рассмотрены 5+1 карты и 2 вада, итого 8 работ, которые, на мой взгляд, являются удачными воплощениями, в той или иной степени взявшими за основному один из трёх ключевых элементов.

Начать хотелось бы с двух проектов, вдохновлённых, подобно играм в жанре инди, будь то "The Bridge" (2013) и, в меньшей степени, "Kairo" (2013), работами известного художника.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments1

Яндекс — ограничение конкуренции?

Reading time3 min
Views851

Вчера ни один из представителей Яндекса не ответил на мой комментарий. Также, я продублирую: всеобщее возмущение веб-мастеров на форуме searchengines.

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

В топ-е на любой запрос висят одни и те же домены:

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

Что такое Архитектура

Reading time5 min
Views9.3K

Существует множество определений термина "Архитектура ПО", от устаревших и неформальных до слишком абстрактных и претендующих на остроумие. К примеру, можно упомянуть сайт Института Программной Инженерии (SEI) Университета Карнеги-Меллона, в электронной библиотеке которого есть соответствующий документ.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments6

Театр образования

Level of difficultyEasy
Reading time6 min
Views3.7K

А не пора ли нам ещё раз обсудить, что раньше было лучше, а нынче всё не так, всё не то и вообще молодёжь какая-то не та?

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

А может лучше сразу в комментарии?
Total votes 28: ↑29 and ↓-1+30
Comments31

У тимлида есть только путь: как и зачем расти выше по карьере

Level of difficultyEasy
Reading time8 min
Views5K

Всем привет! Меня зовут Сергей Яныкин, я менеджер разработки в СберМаркете — управляю Unit-лидами, которые, в свою очередь, управляют тимлидами разработки.

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

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

Читать далее
Total votes 12: ↑12.5 and ↓-0.5+13
Comments7

Что я понял, изучив 50 книг про IT?

Level of difficultyEasy
Reading time10 min
Views32K

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

Читать далее
Total votes 34: ↑31 and ↓3+28
Comments31

Standoff 365. Самое красивое недопустимое событие в деталях

Reading time5 min
Views6.1K

Привет, Хабр. Меня зовут Виктор, я работаю в компании «Инфосистемы Джет» пентестером и активно играю на киберполигоне Standoff 365 под ником VeeZy. Сегодня я хочу поделиться с тобой, на мой взгляд, самым красивым критическим событием, которое есть на платформе!

Инцидент, который мы реализуем, называется «Оплата товаров по QR-кодам за счет украденных средств», и за него можно получить 7500 баллов.

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments11

«Захватить флаги!»: решаем задачи с DiceCTF 2024 Quals

Level of difficultyEasy
Reading time9 min
Views2.2K

Привет, Хабр! В начале февраля команда DiceGang провела квалификацию DiceCTF 2024 Quals. Это был Jeopardy-турнир длительностью 48 часов. Он состоял всего из пяти направлений: crypto, misc, pwn, rev и web. Как специалисту по информационной безопасности, мне нравится участвовать в подобных мероприятиях. Под катом расскажу, как я решил несколько задач из последней категории.

Дисклеймер: данный материал не обучает хакингу и взлому и не призывает к совершению противозаконных действий. Все описанное ниже лишь демонстрирует, какие пробелы в безопасности встречаются в реальных веб-приложениях. И предупреждает, на что нужно обратить внимание при разработке программного обеспечения.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments0

Собеседование на английском: самопрезентация для разработчиков

Level of difficultyEasy
Reading time12 min
Views7.7K

Всем привет! Меня зовут Елена Свистова, я методист образовательных программ английского языка в Практикуме, преподаватель и англоговорящий интервьюер в международных IT-компаниях. 

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

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments2

Tarantool: как избавиться от «зоопарка технологий» с помощью потоков событий

Reading time14 min
Views5K


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

Меня зовут Иван Банников, я ведущий разработчик VK Tech. В этом материале я расскажу об основных предпосылках разрастания используемого стека, а также на примере IoT-платформы, которую мы поддерживали, поделюсь опытом избавления от «зоопарка технологий» в области обработки сообщений.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments0

Как я столкнулся с Tarantool-ом: разбор подводных камней на примере микросервисного pet-проекта

Level of difficultyMedium
Reading time5 min
Views2.7K

Привет, Хабр! Меня зовут Сергей Скубач, я работаю в VK и разрабатываю облачное хранилище WorkDisk. Мы используем Tarantool в своём продукте, так как его разрабатывают и развивают наши коллеги. Я впервые столкнулся с Tarantool именно в VK, и для более глубокого понимания решил попробовать использовать его в своём pet-проекте.

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

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments0

Тестирование менеджера транзакций

Level of difficultyMedium
Reading time6 min
Views2.9K


Привет, Хабр! Меня зовут Георгий Лебедев, я учусь на 4-м курсе ФРКТ МФТИ и работаю в команде разработки ядра Тарантула. В этой статье я хочу поделиться методикой тестирования менеджера транзакций, которая применяется в Тарантуле.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments1

Большая подборка открытых API

Level of difficultyEasy
Reading time2 min
Views29K

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

Читать далее
Total votes 18: ↑14 and ↓4+10
Comments3

XeLaTeX для оформления текстов: Текст, рисунки, таблицы, автоматизация

Level of difficultyEasy
Reading time18 min
Views6.2K

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments32
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Backend Developer
Python