Вадим Мартынов, руководитель команды платформы надёжности в Яндекс Go, в своём докладе рассказал, как влияют те или иные решения на надёжность системы и как это учитывать при разработке.
Java Developer
Метод локусов или чертоги разума: краткая история знаменитой мнемотехники
Среди научно‑популярных книг, которые мне доводилось переводить, особняком стоит «Мастерская памяти» от издательства «Портал» (большая часть сотрудничества с этим издательством пришлась на тревожный пандемийный период, и я могу только лишний раз поблагодарить уважаемых Веру Малышкину и Любовь Родионову за то, что тогда помогли мне от него отвлечься). Автор этой книги, Лин Келли — австралийка в возрасте за 60, которая профессионально, в спортивном режиме, выступает в своей возрастной группе в соревнованиях по «мнемонической атлетике». Книга максимально актуальна в наше время, так как помогает бороться и с дефицитом внимания, и с недостаточной концентрацией и, что вообще незаменимо — с возрастным ухудшением памяти. В этой статье я хочу подробнее рассказать об одной из самых важных рассмотренных в ней мнемонических техник, которая наиболее известна в древнегреческой трактовке и называется «чертоги разума». В английских источниках встречаются формулировки «memory palace» и «mind palace» а также «brain attic» — это вариант, в котором данную технику переосмыслил Артур Конан‑Дойл.
Война YouTube против блокировщиков рекламы
У каждого человека есть важный монетизируемый ресурс — его внимание (то есть время осмысленной жизни). За внимание пользователя идёт борьба между интернет-компаниями, они придумывают всё новые трюки, чтобы завлечь и не отпустить юзера, а его задача — не потратить свой ресурс на рекламу и другие отвлекающие вещи. Поэтому блокировщики рекламы важны для личной безопасности и опасны для корпораций. В официальной финансовой отчётности Google указано, что технологии блокировки рекламных объявлений — один из основных рисков для бизнеса.
Особенно наглядно война корпораций против людей видна на YouTube, где корпорация Google начала нещадную борьбу с блокировщиками.
Дизайн и математика игр-кликеров
Инкрементные игры потрясающи и загадочны. Кажется, что они нарушают привычную логику хорошего геймдизайна, и тем не менее, им удаётся привлекать солидную базу игроков. Давайте изучим их более подробно, чтобы раскрыть их секрет.
Что такое инкрементная игра?
Игрок нажимает на кнопку, число увеличивается. Нажимает снова, число снова увеличивается. Игрок продолжает нажимать, и постепенно разблокирует функцию, увеличивающую число за игрока. Числа растут, даже когда вы не играете. И этот процесс повторяется вечно.
В сущности, такова общая структура «инкрементной» игры. Она кажется простой, даже примитивной, но в игровом процессе есть неожиданная глубина и привлекательность. Стили игры могут быть разными — от коммерчески успешных и казуальных Clicker Heroes и AdVenture Capitalist до более экспериментальных или хардкорных примеров, таких как Candy Box, Cookie Clicker и Sandcastle Builder.
Cookie Clicker, самое начало.
Что же самое важное в инкрементной игре? Хотя в этом жанре есть множество вариаций и экспериментов, фундаментальными аспектами дизайна являются:
- наличие хотя бы одной валюты или числа,
- которые увеличиваются с заданной скоростью с минимальными усилиями, или вообще без усилий,
- и которые можно тратить на увеличение скорости прироста.
Именно цикл накопления, реинвестиций и ускорения определяет основы жанра и отличает его от игр, в которых присутствует просто увеличивающийся счёт. Например, в примечательной Cookie Clicker игрок стремится к росту количества «печенек», которое изначально увеличивается нажатием на огромное печенье, а потом тратит печенье на покупку апгрейдов, позволяющих создавать ещё больше печенья.
Что я думаю о Lua после релиза проекта на 60,000 строчек кода?
Интервью-ретроспектива с ведущим программистом видео-игры Craftomation 101 о использовании Lua как основного языка в проекте на 60,000 строчек кода.
Как рисовать Sequence без боли и страданий в PlantUML
Привет! Меня зовут Настя, я старший системный аналитик в X5 Tech. Я рисую sequence-диаграммы каждый день на протяжении четырёх лет. За это время я прошла все круги ада по Данте, то есть попробовала разные инструменты для рисования этих самых диаграмм. Пока не встретила его – PlantUML.
Что удивительно, инструмент довольно не новый, но тем не менее лучше него я пока не встречала. А ещё удивительно, что он не особо популярный. Когда мы запустили в управлении системного анализа первый воркшоп по PlantUML, за 3 минуты после анонса пришли 12 заявок от аналитиков разных грейдов – от Junior до Lead.
В процессе подготовки материалов к воркшопу мы искали статьи и литературу, которые помогли бы дополнительно изучить sequence-диаграммы в PlantUML. Ничего интересного мы не нашли.
На самих воркшопах участники часто говорили о том, что они пытались самостоятельно изучить PlantUML, но их пугало то, что нужно писать какой-то код и учить какой-то синтаксис. Документация достаточно обширная, но информации о том, как последовательно строить sequence почти нет.
Поэтому и появилась эта статья.
Сложности перевода: баг, который говорил по-русски и ломал моё приложение
Шпион всматривается в экраны
Несколько лет назад я работал над Lipo Manager, добавляя кое-какие долгожданные функции. Это довольно простое приложение, но вполне достаточное для управления батареями LiPos. Некоторые из вносимых мной изменений отвечали запросу сообщества. Это были визуальные доработки, оптимизация, мультиязычность, обновления зависимостей и исправление периодически возникавших исключений нулевого указателя.
Со всеми этими задачами я справился за день и, проведя несколько тестов, выпустил новую версию…
Воплощаю мечту, создавая собственную игру
Статья про разработку компьютерной игры в одиночку на игровом движке UE5. Цель статьи это найти как моральную поддержку, так и критику в свой адрес. Ведь когда разрабатываешь в одиночку и от 6 - 12 часов в день, смотришь на свой проект и перестаешь адекватно оценивать происходящее и все перемешивается в одну сплошную массу кода и картинок.
Механики удержания в играх
Допустим, вы сделали игру. Допустим, она неплоха или даже хороша! В нее заходят игроки, ее скачивают, но вот только не задерживаются надолго. В чем причина? Как завоевать любовь геймера и “подсадить” его на свой продукт?
В данной статье я дам несколько эффективных советов, как сделать игру привлекательнее для пользователя и, соответственно, повысить возвращаемость в нее.
Как создать Мету, которая затянет играть сутками
Пошагово, с чек-листом и примерами из игр. Для конкретики беру популярный в прошлом году жанр VS-Like, при этом знания из статьи применимы к играм любых жанров.
Метапрогрессия — это система механик, изменяющая процесс игры определёнными способами. Она ложится поверх кор-лупа, изменяя или улучшая кор-геймплей. МП дополняет Кор, создаёт ощущение прогрессии между забегами, улучшает игровой опыт, открывает новые механики. Это та менюшка, где можно повысить количество здоровья герою.
Ностальгии пост: j2me, Gravity Defied, 64kb
Эта статья не преследует никаких практических целей — просто мне стало интересно, как лет 15 назад разработчикам удавалось делать вполне функциональные приложения и игры для слабых телефонов того времени.
- Если что, я не имею к этой игре никакого отношения.
Например, игра с картинки выше не использовала floating-point числа, так как не все телефоны их поддерживали. "3д" и физика — полностью самописные на fixed-point вычислениях поверх целых чисел. Но мне кажется, перечисление особенностей одного приложения будет не сильно информативным. Для полноты картины я немного затрону возможности телефонов, j2me платформу и заодно сравню это с современной разработкой под Android.
Кроме того, j2me — это полноценная java старой версии (кажется, 1.3), я дописал некоторые недостающие классы и смог запустить .jar файлик с игрой на своём PC. Скриншот выше — оттуда. Не скажу, что от этого есть какая-то польза — просто API для j2me было очень простым и мне захотелось попробовать.
Как работает протокол X11 на самом нижнем уровне
X11 это тот механизм на чем работает весь графический интерфейс Unix подобных ОС.
Но мало кто знает как он работает на самом деле. Потому что с годами он оброс слоями и слоями библиотек, которые стремятся скрыть саму сущность протокола.
А протокол в своей сути прекрасен. Он лаконичен и почти совершенен.
В Интернете есть полная документация по протоколу. Но дело в том, что эта документация большая, написана не совсем ясным языком и, по сути, является просто спецификацией. Важные моменты никак не обозначены, а как использовать – тоже оставлено на фантазию читателя.
А все книги и статьи по использованию X11 описывают это через библиотеки прокладки типа XLib и XCB, и даже, что хуже, GTK или Qt.
Так что документацию приходится читать всю и самому выделять что важно, а что не очень. Придумывать сценарии использования и писать хотя бы короткие программы чтобы испробовать как все работает на самом деле.
Как бы то ни было, если кому-то интересно как все работает на самом деле, пожалуйста под кат.
Графические оболочки FFmpeg
Считается, что работа в консоли эффективнее GUI по нескольким причинам. Во-первых, там быстрее набирать команды, чем двигать курсором. Во-вторых, на CPU, память и GPU не ложится лишнее бремя графической оболочки, так что любые процессы быстрее выполняются в консоли.
Но есть люди, которые всегда предпочтут GUI. Они считают графический интерфейс «наиболее эффективным и удобным способом работы на десктопе». На самом деле они во многом правы, в том числе для специфических задач видеообработки важно сразу видеть результат.
FFmpeg — изначально консольная утилита. Но её популярность крайне высока. Поэтому появляются всё новые варианты графических оболочек для FFmpeg, чтобы доступ к инструменту получили абсолютно все пользователи.
Как работает видеопроцессор
[Прим. пер.: оригинал статьи называется GPU Performance for Game Artists, но, как мне кажется, она будет полезной для всех, кто хочет иметь общее представление о работе видеопроцессора]
За скорость игры несут ответственность все члены команды, вне зависимости от должности. У нас, 3D-программистов, есть широкие возможности для управления производительностью видеопроцессора: мы можем оптимизировать шейдеры, жертвовать качеством картинки ради скорости, использовать более хитрые техники рендеринга… Однако есть аспект, который мы не можем полностью контролировать, и это графические ресурсы игры.
Мы надеемся, что художники создадут ресурсы, которые не только хорошо выглядят, но и будут эффективны при рендеринге. Если художники немного больше узнают о том, что происходит внутри видеопроцессора, это может оказать большое влияние на частоту кадров игры. Если вы художник и хотите понять, почему для производительности важны такие аспекты, как вызовы отрисовки (draw calls), уровни детализации (LOD) и MIP-текстуры, то прочитайте эту статью. Чтобы учитывать то влияние, которое имеют ваши графические ресурсы на производительность игры, вы должны знать, как полигональные сетки попадают из 3D-редактора на игровой экран. Это значит, что вам нужно понять работу видеопроцессора, микросхемы, управляющей графической картой и несущей ответственность за трёхмерный рендеринг в реальном времени. Вооружённые этим знанием, мы рассмотрим наиболее частые проблемы с производительностью, разберём, почему они являются проблемой, и объясним, как с ними справиться.
Как рисуется карта в Фараоне
В свободное время я восстанавливаю старенькую, но довольно известную игру Pharaoh. Это ситибилдер, выпущенный в прошлом веке и разработанный Impressions Games. Технология рендеринга в этой игре была значительным достижением для своего времени и способствовала созданию впечатляющей атмосферы Древнего Египта, которая погружает игрока в проработанное окружение, удивляет вниманием к мелким деталям и передает богатство и разнообразие древнеегипетских пейзажей. В этой статье я опишу алгоритм отрисовки города, зданий, объектов, анимации и формат карты оригинальной игры.
Как я писал свою первую игру для Dendy
Что такое Dendy? Что так любит детвора? Это электронная игра! Ооо, дендиии...
В этой статье я вам расскажу о своем первом опыте разработки игры для NES/Famicom консоли. Постараюсь рассказать о инструментах, которые использовал и о интересных особенностях разработки игр для Dendy с которыми столкнулся во время создания игры.
10 лет Docker: от революционной идеи до современной практики
Привет, Хабр! На момент написания статьи, я занимаюсь надежностью (SRE) в компании Workday, еще помогаю студентам в Практикуме осваивать курс по DevOps-практикам.
В этой статье я поделюсь кратким обзором истории Docker, его ключевыми концепциями и мисконцепциями. Надеюсь, это будет полезно для новичков и студентов, изучающих DevOps-практики и виртуализацию.
Может ли Java быть быстрой? Сравнение производительности Helidon Níma и Spring
Основной тренд в мире IT сейчас - экономия ресурсов и легковесные решения. В облаке мы платим только за те ресурсы, которые действительно используем. И чем эффективнее мы их используем, тем меньше денег тратится впустую: уменьшая издержки, увеличиваем маржинальность.
Java долгое время была и остается фаворитом в enterprise решениях, но все чаще в высоконагруженных проектах предпочтение отдается более "производительным" языкам, таким как Go, а порой даже C++. Но вдруг Java тоже может быть быстрой?
Открытой системе — открытый курс: автоматизированный Linux курс для корпоративного обучения
Возможно, вы ловили себя на мысли, что было бы неплохо провести для коллег-новичков в Linux небольшой курс с практическими задачками. Такой курс, чтобы после его прохождения, они могли использовать ОС на уровне продвинутого пользователя, активно пользоваться терминалом, писать bash-скрипты, шарить за wildcard и SSH-туннели и прочую магию Linux. При этом было бы здорово, чтобы оценка за выполнение практической работы выставлялась в LMS автоматически, а вы бы только отслеживали прогресс коллег в электронном журнале и помогали с затыками. Если вы узнали себя в описании - эта статья для вас. Материалы этого курса также могут быть полезными для преподавателей учебных заведений, желающих добавить практики в свои курсы по Linux.
Об особенностях электротехнических (и не только) сообществ: вредные советы
Несмотря на то, что предпосылки к отставанию закона Мура от экспоненты обсуждаются ещё с 90‑х, сам закон, с рядом оговорок, справедлив и в наши дни. Это приводит к тому, что если человек поступил в университет в 2010 году, то первые микроконтроллеры STM32F1, выпущенные в середине 2007 года, имели заметные шансы не попасть в его учебные курсы. Как, впрочем, и памяти DDR3 (стандарт также вышел в середине 2007‑го). В момент же получения человеком диплома в 2015‑ом, стандарту DDR4 исполнилось бы три года, STMicroelectronics только что выпустила бы серию STM32F7 со встроенным графическим модулем, а сами STM32 уже два года как имели возможность программироваться при помощи MATLAB и Simulink, минуя код на Си (если верить рекламе).
Подобное положение вынуждает динамично актуализировать знания.
Академические курсы не всегда успевают за прогрессом. А их первоисточник — техническая документация — бывает крайне обширна. Например, базовая документация на микроконтроллеры STM32F103xB насчитывает 1252 страницы. Помимо неё имеются ещё 54 документа типа application note и десятка полтора документов других типов. Поэтому достаточно востребованным источником знаний оказываются профильные сообщества.
Для эффективного получения знаний в подобных сообществах проблема должна быть сформулирована максимально качественно. Ещё в 2001 году появилось (и было переведено на множество языков) фундаментальное руководство «Как правильно задавать вопросы на технических форумах». Представляется, что тезисы данного руководства во многом универсальны и актуальны как для сообществ программистов, так и для сообществ электронщиков, туристов, кулинаров или художников. Однако столь же универсален феномен, когда ответ на сформулированный в соответствии с духом этого руководства вопрос, оказывается не ответом по существу, а чем‑то «идентичным натуральному ответу по существу». Об этом феномене и пойдёт речь в настоящей статье.
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity