Как стать автором
Обновить
10
0
Akinava @akinava

p2p

Отправить сообщение

История жанра roguelike: от Rogue до Binding of Isaac

Время на прочтение29 мин
Количество просмотров24K
image

Отдадим должное игре, ставшей прародительницей целого жанра. Имя ей Rogue.

Распространённость игр Roguelike росла на протяжении всех 40 лет существования жанра, даже несмотря на то, что в нём реализованы идеи, кажущиеся «анафемой» для популярности: высокая степень случайности, ASCII-графика, перманентная смерть (permadeath), огромная сложность и многое другое. Тем не менее, сегодня шагу нельзя ступить, не наткнувшись на игру, на которую по крайней мере не повлияли roguelike.

В духе историй об игровых жанрах (мы уже рассказывали о стратегиях реального времени [перевод], градостроительных играх, шутерах от первого лица [перевод], симуляторах [перевод: первая и вторая части], графических адвенчурах [перевод], гонках на картах и играх с открытым миром [перевод]) давайте теперь начнём разбираться, как мы к этому пришли и что это всё означает. Мы совершим экскурсию по дереву эволюции roguelike, начав с самой Rogue и пройдя весь путь до современных игр с «элементами roguelike».

Но для начала нам нужно ответить на важный вопрос.

Что такое «roguelike»?


Невозможно подобрать точное определение этому термину, кроме его буквального значения («игра наподобие Rogue»). Можно сказать, что roguelike — это путешествия по рандомизированным подземельям почти без сюжета или с полным его отсутствием; игрок сражается и с самим подземельем, и с монстрами внутри, бесконечно повторяя этот процесс, чтобы освоить схемы, содержание и системы, определяющие природу игры, пока не умрёт и не начнёт заново.

Но кое-кто пытался сузить это определение. Можно взять для примера «факторы высокого значения» Берлинской интерпретации, которые были приняты на Международной конференции по разработке roguelike 2008 года (International Roguelike Development Conference 2008). (Да, ежегодно проводится конференция для разработчиков roguelike, а также ещё одна для игроков.)
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии7

DIY и Open Source в борьбе с Covid-19: Аппараты искусственной вентиляции лёгких

Время на прочтение2 мин
Количество просмотров35K
image

Российских проектов пока что не наблюдается (если хотите — пишите в личку). Вот список DIY-проектов со всего мира, как можно быстро и дешево сделать аппарат ИВЛ:


UPD: Open Source, Open Architecture Ventilator Engineering Design Specifications

Под катом — табличка сравнения проектов и прочая полезная информация для рукастых инженеров.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+37
Комментарии131

Не бойся дышать полной грудью

Время на прочтение8 мин
Количество просмотров20K

Почему человечество до сих пор не смогло победить вирус гриппа? Кардинальным способом было бы не вдыхать вирус, но никто не хочет ходить в противогазе. Возможно, человечество смогло бы забыть о вирусных инфекциях, передающихся воздушно-капельным путем, если бы гениальный дизайнер смог ввести моду на замаскированную под "обруч с вуалью" маску // шлем-фильтр во время эпидемии. Итак, мы ждем гениального дизайнера. Иногда, когда вирусы становятся очень заразными или смертельными, у разработчиков масок и фильтров возникает желание сделать что-нибудь такое, что могло бы действительно кардинально решить вопрос. Но, когда сезон вируса кончается, это желание проходит нереализованным. Потому что это сложная дизайнерская, инженерная, физическая и коммерческая задача. Коммерческая потому, что устройство должно быть очень дешевым, ибо им нужно обеспечить все население Земли, включая самых бедных.


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


image

Читать дальше →
Всего голосов 29: ↑24 и ↓5+38
Комментарии120

Солнце, ветер и вода ver 0.1

Время на прочтение8 мин
Количество просмотров8.2K

Сезон первый

Переживем кризис вместе… — на яхте.
(С) мой друг
Статья о выборе минимально необходимого двигателя на яхту.

Шаг первый — с чего все началось


Примерно в середине 2014 года, когда стало понятно, что кризис будет весьма затяжной, снова пришло время верстать собственный антикризисный план. Ну чтобы не получилось как в известном фильме — «кризис это когда не хочется хотеть чего то хотеть», а было много-много интересных часов. В поле моего зрения попал яхтинг. На тот момент мои познания в этом вопросе были на уровне детского сада, когда мы делали кораблики из скорлупы грецкого ореха и пускали их в лужах. Я даже не знал, есть ли у меня морская болезнь. :-) Но, сказано — сделано. Тема есть, начинаем верстать план мероприятий.

Перво наперво надо бы где то поучиться. Поговорил с яхтсменами. Все они учились в ДЮСШ еще во времена СССР. Все наперебой давали советы, что надо сперва поехать в Турцию и брать разные яхты в чартер, и учиться прямо на практике. Ну а прямо сейчас можно за скромные деньги «взять вот прямо эту и прямо здесь у меня». Ну их можно понять — для них это бизнес. Мы пойдем другим путем.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии24

Еще раз о передатчиках и приемниках 433 МГц

Время на прочтение10 мин
Количество просмотров182K
Простейший комплект из приемника и передатчика ISM-диапазона 433 МГц завоевал заслуженную популярность в среде любителей электроники. Комплекты дешевы (даже в «Чипе-Дипе» их можно купить рублей за 300, а на Ali, говорят, вообще за полтинник), просты и надежны. Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными — сигнал на частоте 433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах). Допускаю, что недавно появившиеся модули MBee-868, будучи снабженными соответствующей (направленной) антенной, «стреляют» дальше, но они как минимум на порядок дороже, сложнее в подключении, требуют управления энергосбережением и предварительной настройки. И вдобавок частота 868 МГц вдвое хуже проходит через препятствия (хотя, конечно, несравненно лучше частоты 2,4 ГГц).



О приемниках-передатчиках 433 МГц написано очень много (в том числе и на хабре, конечно). Однако, правильно включать в схему этот комплект по какой-то странной причине, кажется, не умеет никто. Когда я в который раз прочел вот тут, что комплект «принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось», мое терпение лопнуло. Какие еще 8 метров?! В 40-50 я бы поверил, хотя в реальности, наверное, дальность еще больше.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+72
Комментарии57

Бессерверный REST API «на коленке за 5 минут»

Время на прочтение8 мин
Количество просмотров20K
Привет, Хабр! Сегодня продолжим разговор о возможностях, которые предоставляет нам Amazon Web Services и о том, как эти возможности использовать в решении прикладных задач.

На простом примере рассмотрим создание буквально за несколько минут собственного бессерверного автомасштабируемого REST API с разбором кейса — получения списка для ресурса.

Интересно? Тогда заходим под кат!


(Источник)
Читать дальше →
Всего голосов 35: ↑29 и ↓6+23
Комментарии26

Чему меня, как разработчика, научили аварии в космосе

Время на прочтение8 мин
Количество просмотров32K

Оригинал: статья «What I learned as a developer from accidents in space», Андрея Ситника, из блога Evil Martians «Martian Chronicles»

Андрей Ситник, автор PostCSS и Автопрефиксера, сделал подборку историй, связанных с освоением космоса Советским Союзом. Вы узнаете, какие уроки из них извлёк Андрей, чтобы вырасти как разработчик и участник опенсорс-движения. Неудачная стыковка, драматический вход в атмосферу и уникальный переход вдоль поручня между космическими кораблями — какое отношение всё это имеет к современной веб-разработке? Обо все этом читайте в посте!

Исследования космоса интересовали меня, сколько я себя помню. Люди, знавшие меня лично, слышали рассказов о космосе больше, чем им хотелось бы. До того, как присоединиться к Evil Martians, я администрировал русскоязычную версию Википедии, и одним из моих любимых увлечений была редактура связанных с космосом статей. Я ездил наблюдать за запусками на Байконуре и мысе Канаверал, и чем больше я узнавал об усилиях по покорению космоса, тем сильнее эти знания влияли на меня как на разработчика. 

Хотя писать программы не так сложно, как строить ракеты (по большей части), но всё же мы, программные инженеры, часто работаем в больших командах, создающих сложные системы. И как исследователи космоса, иногда мы проигрываем борьбу со сложностью.
Читать дальше →
Всего голосов 90: ↑89 и ↓1+125
Комментарии29

Zilog Z-80 — Бессмертный восьмидесятник

Время на прочтение6 мин
Количество просмотров43K
Ранние годы эпохи персональных компьютеров, начавшиеся еще до появления легендарного IBM PC в 1981, во многом определили картину рынка, сложившуюся в следующем десятилетии, когда крепнущая Intel выводила на рынок продукты, едва ли не мгновенно обрастающие множеством совместимых аналогов – как более доступных, так и более продвинутых, технически интересных. Но еще задолго до того, как компании скрестили мечи в борьбе за покупателей первых 186 и их последователей, конкуренция коснулась и первого ключевого чипа в истории компьютерной индустрии – Intel 8080.

image
Intel 8080

Выход процессора Intel 8080 стал катализатором развития направления разработки и производства микропроцессоров, нашедших применение в самых различных областях и сферах. Выход различных 8-битных решений (таких, как Motorola 6800 или MOS Technologies 6502), а также производство полностью совместимых решений-клонов (производимых, в частности, и компанией AMD), определило потребности рынка в середине 70-х, что отчасти можно назвать и причиной появления Z-80.

Читать дальше →
Всего голосов 73: ↑73 и ↓0+73
Комментарии83

Солнце, ветер и вода ver 0.2

Время на прочтение6 мин
Количество просмотров4.9K

Сезон второй

  
Физика яхтинга или яхтинг для физиков

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

Что нужно чтобы оцифровать яхту?


  1. Буксировочная характеристика
  2. Диаграмма остойчивости
  3. Геометрия парусов — измеряю «в живую»
    высота топового угла грота $h_{гр топ}=11,2 м$;
    высота галсового угла грота $h_{гр глс}=1,985 м$;
    высота шкотового угла грота $h_{гр шкт}=2,179 м$;
    расстояние шкотового угла грота от мачты $l_{гр шкт}=2,96 м$;
    высота топового угла стакселя $h_{ст топ}=10 м$;
    высота галсового угла стакселя $h_{ст глс}=1,111 м$;
    высота шкотового угла стакселя $h_{ст шкт}=1,5 м$;
    площадь грота $S_{гр}=17,2 м^2$;
    площадь стакселя $S_{ст}=14 м^2$;
    площадь боковой парусности корпуса $S_{anf}=7,315 м^2$;
    площадь фронтальной парусности корпуса $S_{fr}=3 м^2$;
    боковая проекция площади подводной части корпуса $S_{дп} w=1,82 м^2$;
    площадь килей и скегов $S_{ks}=2,33 м^2$;
    минимально возможный угол установки стакселя $\psi_{ст}=18^o$.


    Может это мне так не повезло, но ни один из производителей, во время моего поиска яхты, не согласился (не смог) предоставить эти данные для своей яхты. Я уверен, что у конструктора яхты вся эта информация есть, но получить ее почему то не получается. Буду добывать ее сам.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии22

VIM — Это не только редактор, это интеграция со всем вашим рабочим окружением

Время на прочтение6 мин
Количество просмотров13K

Чем особенно хорош Vim/Neovim? Тем, что твой инструментарий — это не только редактор (который сам по себе сильно расширяем плагинами и имеет богатый базовый функционал и очень гибок в области кастомизации), но и всё ваше рабочее окружение, со всем юникс-вейным прилагающимся инструментарием из gnu/coreutils и не только. Можно не уходя из редактора взять любую программу или интерпретатор ЯП и использовать его прямо в редакторе.

Читать дальше →
Всего голосов 16: ↑14 и ↓2+17
Комментарии51

Iridium: принимаем и декодируем сигналы группировки спутников у себя дома

Время на прочтение5 мин
Количество просмотров47K
Привет, Хабр.

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


Покрытие сети Iridium, фото из Википедии

Для тех, кому интересно как это работает, продолжение под катом.
Всего голосов 44: ↑44 и ↓0+44
Комментарии21

Отслеживаем прогресс выполнения в Python

Время на прочтение2 мин
Количество просмотров148K

Зачем нужны индикаторы прогресса?


Индикаторы прогресса (progress bar) — визуальное отображение процесса работы. Они избавляют нас от необходимости беспокоиться о том, не завис ли скрипт, дают интуитивное представление о скорости его выполнения и подсказывают, сколько времени осталось до завершения.


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

Читать дальше →
Всего голосов 35: ↑34 и ↓1+41
Комментарии11

Как я начал выступать на конференциях и не могу остановиться

Время на прочтение6 мин
Количество просмотров8.6K

Современный мир разработки, по-своему, прекрасен. Хорошей практикой считается свободное распространение своих знаний и разработок. Стремление к знаниям создает спрос, а habr, toster (ныне qna), github, митапы, конференции и прочее являются отличным предложением. О митапах и конференциях я сегодня и хотел бы рассказать. Под катом история как я, будучи разработчиком и собственником IT-компании, начал выступать на IT конференциях.

Читать дальше →
Всего голосов 31: ↑26 и ↓5+32
Комментарии29

Виртуальная машина на ESP8266 для запуска игр

Время на прочтение5 мин
Количество просмотров19K
VM, написанная неуверенной рукой гуманитария в среде программирования Arduino с использованием быдлокода и велосипедов. А еще есть компилятор для нее из си-подобного языка, написанный на JavaScript теми же методами. Да. Уже можно спешить в комментарии, бросать камни. Ну а тех, кому все же интересно, приглашаю продолжить чтение.

Троллейбус из буханки
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии23

Маленький Hello World для маленького микроконтроллера — в 24 байта (и чужое решение в 12 байт)

Время на прочтение7 мин
Количество просмотров35K
Классической тестовой программой для большинства программистов на системах, имеющих хоть какой-то дисплей, является Hello World. Такая традиция была введена Керниганом и Ритчи в 1978 году.

Для микроконтроллеров аналогичным примером уже давно стала программа, которая мигает светодиодом. В этой статье я покажу результат эксперимента по максимальному сокращению такой программы на примере контроллера ATTiny15 фирмы Атмел.

image

UPD: В комментариях привели ссылку на рекордное решение в 12 байт. Браво!
UPD2: Путем насилия над контролером, удалось выиграть еще 2 байта.
UPD3: И еще одно решение, с еще большим насилием над контроллером.
UPD4: Еще один вариант — в одну инструкцию (но исполняется при этом вся память программ), как и в вариантах 2 и 3.
UPD5: Вариант с использованием возможности выдать тактовый генератор на один из пинов контроллера, при помощи FUSE-бита

Читать дальше →
Всего голосов 60: ↑58 и ↓2+56
Комментарии41

Где предел минимального Hello World на AVR?

Время на прочтение5 мин
Количество просмотров58K


Предупреждение: В данной статье повсеместно используются грязные хаки. Её можно воспринимать только как пособие «как не надо делать»!

Как только я увидел статью «Маленький Hello World для маленького микроконтроллера — в 24 байта», то мой внутренний ассемблерщик наполнился негодованием: «Разве можно так разбрасываться драгоценными байтами?!». И хотя я давно перешёл на C, это не мешает в критических местах проверять быдлокод компилятора и, если всё плохо, то иногда можно слегка изменить C-код и получить заметный выигрыш в скорости и/или занимаемом месте. Либо просто переписать этот кусок на ассемблере.

Итак, условия нашей задачи:

  1. AVR микроконтроллер, у меня больше всего в закромах оказалось ATMega48, пусть будет он;
  2. Тактирование от внутреннего источника. Дело в том, что внешне можно тактировать AVR со сколь угодно малой частотой, и это сразу переводит нашу задачу в разряд неспортивных;
  3. Мигаем светодиодом с различимой глазом частотой;
  4. Размер программы должен быть минимальным;
  5. Вся недюженная мощь микроконтроллера бросается на выполнение задачи.

Погрузиться на Low level
Всего голосов 124: ↑120 и ↓4+116
Комментарии58

Прошиваем AVR вручную

Время на прочтение6 мин
Количество просмотров210K

Картинка для привлечения внимания — xkcd

Представьте себе, что вы попали на необитаемый остров. И вам жизненно необходимо запрограммировать микроконтроллер. Зачем, спросите вы? Ну, допустим, чтобы починить аварийный радиомаяк, без которого шансы на спасение резко падают.

Радуясь, что еще не забыли курс ассемблера, вы кое-как написали программу палочкой на песке. Среди уцелевших вещей каким-то чудом оказалась распечатка документации на контроллер (хорошо, что вы еще не успели пустить её на растопку!), и программу удалось перевести в машинные коды. Осталась самая ерунда — прошить её в контроллер. Но в радиусе 500 километров нет ни одного программатора, не говоря уже о компьютерах. У вас только источник питания (батарея из картошки кокосов) и пара кусков провода.

Как же прошить МК фактически голыми руками?
Читать дальше →
Всего голосов 171: ↑170 и ↓1+169
Комментарии66

Поговорим о смерти

Время на прочтение13 мин
Количество просмотров71K

Люди не делятся на гарантированных самоубийц и на тех, кому это не грозит. Люди делятся на тех, кто совершил самоубийство, и тех, кто этого не сделал.


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


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


По данным Всемирной организации здравоохранения (ВОЗ), каждые 40 секунд кто-то из жителей Земли уходит из жизни сознательно, кончая жизнь самоубийством. Посмотрите на часы — секундная стрелка обошла круг. Ещё одна человеческая жизнь оборвалась.


Согласно приводимой ВОЗ статистике, среди причин смерти молодых людей (в возрасте 15—29 лет) в мировом масштабе самоубийства занимают второе место — не автокатастрофы, не наркотики, не алкоголь, не экстремальные виды спорта. Суицид.


Ежедневно в мире совершают самоубийства 3 тысячи человек, а ежегодно – около 1 миллиона человек (1,5 % всех смертей).


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



Читать дальше →
Всего голосов 166: ↑117 и ↓49+105
Комментарии367

Гарвардский курс CS50 «Основы компьютерных наук и искусства программирования»

Время на прочтение3 мин
Количество просмотров56K


Вот уже несколько месяцев специально для JavaRush мы переводим и озвучиваем самый популярный в мире университетский курс о CS50 — «Основы компьютерных наук и искусства программирования» (трейлер). Его уже много лет очно читают для студентов Гарварда и для воспитанников Йельского университета, а в последнее время ещё и заочно для многомиллионной аудитории интернета.
Это перевод самой новой версии курса, который стартовал осенью 2015 года. В курсе 24 лекции и постепенно мы переведём их все. Намедни мы перевели 15-ю лекцию, её вы найдёте под катом в списке всех переведённых на сегодняшний день лекций.

Что вы узнаете, прослушав этот курс:

  • Основы компьютерных наук и программирования;
  • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
  • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
  • Основы языка программирования C и Scratch;
  • Основы баз данных и SQL;
  • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
  • Основы подготовки презентации проектов по программированию.

Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии11

Что такое игра валидаторов или “как запустить proof-of-stake блокчейн”

Время на прочтение11 мин
Количество просмотров15K

Итак, ваша команда закончила alpha-версию вашего блокчейна, и пришло время запускать testnet, а затем и mainnet. У вас настоящий блокчейн, с независимыми участниками, хорошей экономической моделью, безопасностью, вы спроектировали governance и теперь пора бы попробовать все это в деле. В идеальном криптоанархическом мире, вы выкладываете в сеть genesis block, окончательный код ноды и валидаторы сами все запускают, поднимают все вспомогательные сервисы и все случается само собой. Но это в выдуманном мире, а в реальном, команда должна подготовить довольно много вспомогательного софта и различных манипуляций чтобы помочь валидаторам запустить устойчивую сеть. Об этом данная статья.

Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии5

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность