Привет, Хабр! Сегодня поговорим о старой-доброй Magic: the Gathering. Я фанат этой игры с 1999 года. Провела за ней много часов в институтской общаге, потом играла с друзьями, даже сама организовывала турниры, а сейчас в основном играю для себя и «затягиваю» в Magic новых людей. Почему эта игра того стоит, для чего она вообще была создана и что тут происходит с правилами (спойлер: все очень специфично), расскажу под катом. И, конечно, обсудим, почему игра «не для всех» в итоге понравилась всем и как получилось, что тут нет порога входа несмотря на сложность. Поехали!
User
Как мы уменьшили размер нашего Javascript монорепозитория в Git на 94%
Это не кликбейт. Мы и правда сделали это! В Microsoft мы работаем с очень большим монорепозиторием, который между собой называем 1JS. Недавно мы достигли 1000 активных пользователей в месяц, около 2500 пакетов и ~20 млн строк кода! Последнее клонирование репозитория вернуло невероятные 178 ГБ.
По множестве причин, это попросту слишком большой размер, некоторые ребята из европы попросту не могут успешно клонировать репозиторий из-за его размера.
Вопрос в том, как это вообще произошло?!
Асинхронный Rust в трех частях. Часть первая: Futures
В введении мы посмотрели на пример асинхронного Rust без какого‑либо объяснения, как он работает. Это дало нам несколько вопросов для размышления: Что такое асинхронные функции и возвращаемые ими «future»? Что делает join_all? Чем отличается tokio::time::sleep от std::thread::sleep?
Чтобы ответить на эти вопросы нам потребуется преобразовать каждую из частей в обычный не асинхронный код Rust. Вскоре мы обнаружим, что воспроизвести foo
и join_all
достаточно просто, а вот со sleep
ситуация чуть сложнее. Начнем же.
Асинхронный Rust в трех частях. Введение
Async/await, или «асинхронный ввод‑вывод», — это относительно новая функция языка, которая позволяет программам выполнять несколько задач одновременно. Это своего рода альтернатива многопоточности, хотя программы на Rust часто используют и то и другое. Асинхронный ввод‑вывод особенно популярен в веб‑сервисах и сетевых приложениях, работающих с большим числом подключений одновременно.
Эта серия статей представляет собой введение в "futures", задачи и асинхронный ввод‑вывод в Rust. Наша цель — понять основные механизмы, чтобы асинхронный код не казался магией. Мы начнем с преобразования (так называемой «рассахаризации») асинхронных примеров в обычный Rust и постепенно создадим собственную асинхронную «среду выполнения». На данном этапе под «средой выполнения» мы понимаем библиотеку или фреймворк, которые используются для написания асинхронных программ.
Создание собственных фьючерсов, задач и механизма ввода‑вывода позволит понять, что именно делает для нас среда выполнения. Предполагается, что вы уже немного писали на Rust и читали The Rust Programming Language \или аналогичный источник.
Давайте начнем с выполнения нескольких задач одновременно с использованием потоков. Сначала все пойдет хорошо, но затем, с увеличением количества потоков, начнутся проблемы. Затем мы добьемся того же, используя async/await
. В этой части мы разберем примеры, а в следующей мы начнем углубляться в них.
Hail to the Rainbow. Разработка игры длиною в вечность
Всем привет! Вот уже пятый год я веду разработку своего инди-проекта Hail to the Rainbow! Поскольку дело уже близится к финалу, я решил создать цикл статей на тему разработки , где хотел бы поделиться историей создания, техническими моментами, кейсами, связанными с неожиданными трудностями и прочими нюансами.
Собираем бюджетный домашний NAS на 14 ТБ. Часть 2 — софт, железо и всё такое
Сборка из статьи «Собираем бюджетный домашний NAS на 14 ТБ» и по сей день работает прекрасно, позволяя взаимодействовать с файлами по сети через SMB шару. Но мои задумки обширнее того, что реализовано сейчас. Об апгрейдах, новых приложениях и разных удобных фишках TrueNAS поведаю далее в статье.
Postal 2: антигерой мира видеоигр
В начале 2000-х индустрия видеоигр делала большие шаги к мейнстриму, и жанр шутеров от первого лица бурно развивался. Это было время, когда игроки могли погрузиться в миры, нарушающие все возможные моральные и социальные нормы. Одним из таких проектов, что в первую очередь вспомнится большинству олдфагов, является Postal 2, вышедший в 2003 году. Он стал воплощением бунтарского духа того периода и своего рода символом той эпохи, ведь обещал игрокам беспрецедентную для FPS тех лет свободу и море чёрного юмора, будучи не столь сильно закован в рамки политкорректности. Всё это позволило ему взбудоражить игровое сообщество своей противоречивостью, заставляло задуматься, где грань между весёлой игрой и моральным вызовом. И пусть Postal 2 был далеко не первым проектом, стремившимся шокировать жестокостью, но он хорошо запомнился аудитории свой индивидуальностью, необычным подходом к геймплею и свободой, позволяющей творить настоящий беспредел!
Именно эта вседозволенность сделала игру культовой, и её наследие продолжает вызывать у нас чувство ностальгии и живой интерес. Несмотря на то, что игровая пресса достаточно негативно отнеслась к проекту, геймерам он очень сильно запал в душу, что обеспечило игре несколько официальных дополнений и продолжений. Правда последующие части серии не смогли повторить успех своего предшественника и почти во всём были вторичны, из-за чего сейчас они кажутся уже не такими интересными и дерзкими, как Postal 2. Поэтому сегодня я предлагаю вам вспомнить, чем он был так хорош, и действительно ли это обычный шутерок, обёрнутый в кровавую упаковку, или всё-таки в нём есть нечто большее?
А чтобы это путешествие в прошлое было не только теоретическим, но и практическим, в конце статьи я, как всегда, приложу ссылку на сборку игры. Так что вы сможете не просто вспомнить старые времена, но и снова погрузиться в тот безумный мир, который запал вам в душу более 20 лет назад.
Рождение GTA: как появились симуляторы гангстеров? Часть 2: двухмерные ад, угар и резня первого Grand Theft Auto
Итак, в середине 90-х годов в одной точке в лондонском офисе ВМС Interactive сошлись две идеи: несостоявшийся гангстер из богемной семьи Сэм Хаузер искал свежие идеи игр для молодёжи и попутно грезил о возможности творить беспредел хотя бы на экране, а гик из шотландского городка Дейв Джонс из DMA написал и предложил игру-песочницу Race ‘n’ Chase: про большой живой город с кучей транспорта и пешеходов. Поначалу натерпевшийся от гопоты Джонс подразумевал игру за полисмена и нахлобучивание преступников, строго соблюдая при этом ПДД и законы — но по мере взаимодействия с ВМС и Хаузером родилась идея перевернуть всё с ног на голову и учинять бардак за криминальный элемент. Именно с первого билда Race ‘n’ Chase, где коп-протагонист был заменён на гангстера, и началась разработка первой игры в серии GTA: Grand Theft Auto 1997 года.
Попробуйте Tauri
Хочу рассказать про один из моих любимых Opensource проектов: Tauri. Это среда для создания десктопно-мобильных приложений на JavaScript, но быстрых и легковесных. С опциональными дополнениями на Rust, а через него и на всех других языках.
Когда старые игры молодеют: Age of Mythology получила глобальный ремейк 22 года спустя. Каким он получился?
Знаете, всегда радует, если разработчики ПО или игр продолжают поддерживать свои продукты спустя несколько лет. Сейчас такое время, что компания, выпустившая какую-либо программу, через полгода уже и существовать не будет — а значит, пользователи ПО останутся без поддержки. Жесткий пример подобного, правда не для ПО, а для другого высокотехнологичного продукта, — компания Second Sight. Она выпускала бионические глазные импланты Argus. Через пару лет прекратила их производство и заявила, что не может полноценно поддерживать работу существующих устройств, которые вживили более чем 350 пациентам по всему миру.
Но есть и положительные примеры. Один из них — игра Age of Mythology. Она получает обновления с 2002 года, с момента своего выхода в свет. Разработчики периодически выпускают DLC-версии игры с улучшенными текстурами. Но сейчас они превзошли самих себя и выпустили ремейк с полностью обновленной графикой, игровым ИИ и прочими фишками. Атмосфера, управление, звуки и вообще окружающая игрока виртуальная среда остались прежними. Об этом и поговорим под катом.
Почему GitHub на самом деле победил: история глазами сооснователя
Недавно мы опубликовали в блоге перевод статьи о том, как GitHub заменил SourceForge в роли доминирующей платформы для хостинга кода. Но, как справедливо отметил автор оригинала, его мнение основано на открытых источниках и интервью с коллегами. А потом своим ви́дением поделился один из сооснователей GitHub, Скотт Чакон, который «действительно был там». Под катом — перевод его ответной статьи о реальных причинах победы GitHub.
Рождение GTA: как появились симуляторы гангстеров? Часть 1: «встретились англичанин, шотландец и японец»
С 2000-х годов мир компьютерных игр трудно представить себе без серии Grand Theft Auto. Томми Версетти, Нико Белич, Карл CJ Джонсон и их коллеги по опасному бизнесу навеки в сердцах десятков миллионов игроков — хотя их образ жизни в игровой вселенной бесконечно далёк от идеалов законопослушности, общественной морали и правопорядка.
История Git: на этот раз не так весело
Линус Торвальдс как-то написал в своей книге, что создавал Linux для развлечения, но в итоге это привело к революции. Git, его второе творение, также оказалось «случайной революцией» — и сегодня это стандартный инструмент для людей в ИТ. Однако процесс его создания был уже не таким «весёлым» — по крайней мере, для самого Линуса.
The Elder Scrolls: Arena (1994). Как всё начиналось. Подробная история рождения легендарной игры
«Я посмотрел на полуобнажённую грудь на обложке и сказал: „Пффф… Это будет отстой“», — Кен Ролстон, главный геймдизайнер The Elder Scrolls III: Morrowind ©
«Я начал работать в Bethesda как раз во время выхода Арены, и когда я стал в неё играть я подумал: „Клёво, это действительно хорошая бродилка по подземельям“. Игра забрасывает вас в данжен, где вы проводите первые несколько уровней. И потом, когда я выбрался наружу, я такой: „Да вы шутите. Я могу идти куда угодно? Делать что угодно? Это. Круто“», — Тодд Эндрю Говард. Исполнительный продюсер в Bethesda Game Studios ©
В этом году «Древним свиткам» исполнилось 30 лет. Давайте вспомним как всё начиналось. «Древние свитки» — это легендарное явление. Как полагается в таком случае, история их появления полна тайн, мифов и белых пятен. Я постараюсь рассказать, что известно, с опорой на источники.
Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 14: из изгоев к звёздам (финал!)
Пойманный ФБР при помощи Симомуры в феврале 1995 года Кевин Митник провёл в калифорнийской тюрьме всю вторую половину 90-х. Шли годы, адвокаты отчаянно бодались с прокурорами, ибо в худшем варианте ему грозило вплоть до пожизненного. Представители системы в лице ФБР и компании пытались сделать из Митника показательную жертву для устрашения хакеров — и тем самым спровоцировали начало большой общественной кампании в его защиту. Если бы суд принял радикальные аргументы обвинения, то возник бы прецедент, когда за взлом программы в личных целях любой компьютерщик рисковал угодить на многомиллионные иски корпораций и многолетние сроки заключения. Результатом стало то, что миллионы людей по всему миру включились в движение FREE KEVIN — и вопрос из юридического стал превращаться в социально-политический. Если в 1995 году для Митника всё выглядело совершенно безнадёжно, то уже с 1998 года чаши весов стали понемногу смещаться в его пользу.
PANGIT: Дневник разработчика #8
Закончился сентябрь и самое время подвести итоги и рассказать что сделано, какие новости, планы. Но и обратиться к художникам и музыкантам со своей идей и предложением.
PostgreSQL Antipatterns: устраняем вложенные интервалы
Недавно попался на глаза запрос, которым хотели отобрать в таблице (очевидно, для последующего удаления) все id
записей интервалов, которые полностью перекрыты каким-то другим интервалом того же owner
'а.
Но self-JOIN
показал себя не лучшим образом...
Чарующая магия Final Fantasy VII
Конец 90-х – это время, когда мир стремительно менялся, но многое оставалось простым и знакомым. Это были дни, когда интернет ещё не захватил все аспекты нашей жизни, а коробки с дисками для PlayStation занимали полки магазинов и домов геймеров. Помните этот звук включения консоли? Лёгкое жужжание, а затем фирменный стартовый экран PlayStation с логотипом Sony… это был сигнал к тому, что начинается настоящее приключение.
Понимаю, что у каждого PlayStation ассоциируется с какими-то определёнными проектами, но, лично для меня, такой стала серия игр Final Fantasy. Седьмая часть на момент выхода в 1997 году стала не просто игрой, а культурным феноменом. Она превысила все ожидания по продажам, разойдясь миллионными тиражами по всему миру. Игра получила множество наград и до сих пор регулярно упоминается как одна из величайших видеоигр всех времён, благодаря чему созданы различные спин-оффы, мультфильмы и ремейки, позволившие взглянуть на игру под другим углом.
То самое стартовое лого PlayStation 1. Звук, отправляющий в прошлое...
Многие игроки критикуют седьмую часть за устаревшую графику и примитивные кубические модельки эпохи раннего 3D, но сегодня благодаря множеству модификаций её можно значительно обновить. Существует огромное количество модов, которые улучшают всё: от графики и заставок до интерфейса и шрифтов. Таким образом, вы сможете не только вернуться к любимому проекту и окунуться в ностальгию, но и взглянуть на него с новой перспективы, изменив его до неузнаваемости и заново пережив знакомую историю в обновлённом формате.
В сегодняшней статье я расскажу про Final Fantasy VII и постараюсь понять, насколько хорошо она играется в 2024 году и может ли получить от неё удовольствие современный игрок. Кроме того, я выложу сборку с игрой, которая запустится на современных системах, а также лаунчер, что позволит буквально в пару кликов устанавливать различные модификации по вашему выбору.
Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 13: хакер в объятиях системы
Итак, 15 февраля 1995 года в городе Роли, Северная Каролина, окончилась более чем двухлетняя жизнь знаменитого хакера Кевина Митника на подпольном положении. Оскорблённый взломом, работавший с американскими спецслужбами и корпорациями «киберсамурай» Цутому Симомура сумел за пару месяцев сделать то, на что оказались неспособны ФБР и другие силовые структуры США: он нашёл Митника по едва уловимым следам в Интернете и сотовых сетях, и предоставил агентам лишь задержание. Пресса ликовала: ужасный неуловимый супер-хакер, который (по версии прессы же) ломал даже системы управления ядерным оружием в горе Шайенн, наконец схвачен и предстанет перед судом. Кевин был уверен, что на этом его жизнь окончена — и дальше его ждёт лишь безысходность в тюремной камере на долгие-долгие годы. Прав он оказался, к собственному удивлению, лишь отчасти.
Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 12: в сжимающемся кольце охоты
Последние дни января 1995 года стали одними из самых неприятных в жизни Митника. Лихой взлом знаменитого специалиста по компьютерной безопасности Цутому Симомура с выкачкой всех его данных, включая личную переписку, оказался очень плохой идеей. Амбициозный японец был оскорблён до глубины души и бросил все силы на то, чтобы поймать взломщика во имя мести — и его связи в американских спецслужбах и хакерском сообществе оказались весьма серьёзным ресурсом. До начала 1995 года Митник находился в розыске, и едва не попался полиции в Сиэтле — но целенаправленной охоты за ним не велось. Веди он себя аккуратнее, то вполне мог бы прожить до конца дней под одной из фейковых личностей, которые научился создавать умело и убедительно. Увы, но Кевин совершенно не мог удержаться от взломов — и один из них, в декабре 1994 года, оказался лишним. Разъярённый «киберсамурай» Цутому поднял связи в АНБ и ФБР, сумел раскочегарить систему — и поиски Митника начались уже всерьёз.
Information
- Rating
- 1,792-nd
- Location
- Магнитогорск, Челябинская обл., Россия
- Registered
- Activity