Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Лучшее время для инди-игр и скандал со Sweet Baby Inc: что происходит с игровой индустрией

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров11K

В своей новогодней статье с итогами про видеоигры я сказал, что 2023 год стал лучшим годом в истории компьютерных игр. В статье вы могли прочесть небольшой обзор: 8 игр, которые, на мой субъективный взгляд, стали лучшими за 2023 год. Но в 2023 году вышло чуть больше, чем 8 игр. Точнее, вышло более 14 тысяч игр, согласно данным со Steam, то есть почти по 50 новых игр в день.

Даже при большом желании мне бы физически не удалось поиграть во все эти игры, не говоря уже о том, чтобы пройти их. За таким количеством игр не только не сможет угнаться ни один человек, но даже ни один игровой сайт. Даже крупнейшие сайты в отрасли не могут позволить себе редакционную команду, способную играть по 50 игр в день, чтобы найти и описать те, которые заслуживают внимания. Реально, это даже не десятая часть игр. И не в последнюю очередь потому, что из этих 50 игр 49 окажутся полным шлаком.


Если сравнивать с 2022 годом, то в 2023 году вышло на 2000 игр больше, и на целых 5000 игр больше, чем пять лет назад. Нет никаких оснований предполагать, что этот рост уменьшится в ближайшее время. И игры продолжают разрабатываться. Только на начало марта 2024 года уже выпущены 3300 игр. Это говорит о том, что в 2024 году будет не меньше игр, чем в 2023, если не больше.

В этой статье мне хочется поговорить об отличной возможности для независимых AA-игр и инди-разработчиков вырваться вперёд, оставив позади крупнобюджетные AAA-игры, и про скандал с нарративной консалтинговой компанией.
Читать дальше →
Всего голосов 41: ↑33.5 и ↓7.5+26
Комментарии33

Конструкторы-самозванцы в Kotlin

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

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

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

Читать далее
Всего голосов 43: ↑43 и ↓0+43
Комментарии11

Самодельная механическая клавиатура с трекболом на базе DactylManuform

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

Почти короткий гайд по проектированию и сборке самодельной клавиатуры на базе Dactyl Manuform. Обзор существующих решений, доступных к реализации.

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

Про решаемость пятнашек

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8K

Привет, я создатель известного в узких кругах приложения 15 Puzzle для Android.

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

Читать далее
Всего голосов 72: ↑73 и ↓-1+74
Комментарии46

Истории

Эффект Монреаля: почему языкам программирования нужен Царь стилей

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров9.5K

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

Пусть это будет мысленный эксперимент. Подыграйте мне. Если вы читали мою прошлую статью (англ.), то должны правильно предположить, что я бы предпочёл экспрессивный язык, ориентированный на профессионалов. Так и есть. Но в гибком языке программирования есть серьёзная проблема с масштабированием – слишком много стилей оформления кода и способов его написания. В итоге просто не обойтись без руководств по стилю, которые помогут сориентироваться в правильной реализации.

Какое подмножество C++ или Kotlin вы используете? Что вы предпочтёте: project.toml или requirements.txt? Теперь у вашего языка есть возможность поэтапной типизации с помощью аннотаций типов. Хотите ей воспользоваться? Как вы реализуете конкурентность: с помощью многопоточности, Tokio или std::async?

Чем более экспрессивный язык, тем сложнее всё становится. И здесь на сцену выходит Go. И речь не только о gofmt, но и о его стандартной библиотеке и согласованности. В Kotlin вам приходится гадать, что лучше использовать для ошибок: исключения или объекты Result? В случае же Go вам всё ясно – ищем err. Да, это многословно, но зато предсказуемо.

Экспрессивные языки прекрасны, но часто создают путаницу. Вы можете использовать богатый и комплексный язык, поддерживающий миллион способов реализации одного и того же. Именно это я хочу вам показать. Как же сохранить всю эту мощь, но уменьшить беспорядок? Как избежать возникновения 500 поддиалектов? Но прежде, чем переходить к решениям, обсудим Scala.
Читать дальше →
Всего голосов 50: ↑52 и ↓-2+54
Комментарии22

Детки, не учитесь кодить. Вместо этого освойте моделирование

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров49K

«Я хочу творить, а не быть следствием чужого творчества. Я хочу принадлежать к тем, кто создает смыслы, а не быть плодом этого смысла».

Представьте себе ситуацию. Скоро истекут сроки подачи документов в колледж. Очередная партия новичков изберет профессию, адепты которой постоянно задаются вопросом: «А нужны ли будут программисты через год... через пять лет... или через десять лет?». И хотя горячие дебаты на этот счет уже улеглись, в воздухе висит немой вопрос: не настанет ли час, когда крупные языковые модели, такие как ChatGPT, заменят нас на поприще написания кода. Неважно, кто ты — абитуриент, зависший в нерешительности перед выбором ВУЗа, или матерый кодер, я предлагаю тебе остановиться и кое-что переосмыслить. А поможет нам в этом деле... кукла Барби.

Читать далее
Всего голосов 39: ↑33 и ↓6+27
Комментарии48

Make Habr Hard Again: «железная» номинация «Технотекста»

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

Новый «Технотекст» стартовал в конце прошлого года. Посмотрев список номинаций, некоторые авторы-инженеры YADRO, которые занимаются разработкой и программированием серверов, СХД, микроэлектроники, не поняли, какую из них выбрать. Раньше же была отдельная «железная» номинация… Куда пропала? 

Не долго думая, мы написали организаторам конкурса и спросили, как нам вернуть важную, на наш взгляд, тему в фокус обсуждения хабросообщества. Так и запустили номинацию «Железо: проектирование и технологии производства» — свои тексты на эту тему вы можете отправлять до 15 апреля включительно. А чтобы немного подогреть к ней интерес, собрали «хардверные» призы для лучших текстов. В тексте рассказали больше о призах и условиях участия. Больше о призах и условиях участия читайте под катом. 

Что у вас там?
Всего голосов 56: ↑57.5 и ↓-1.5+59
Комментарии10

Как не надо проверять размер массива в С++

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров24K

Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.

Читать далее
Всего голосов 84: ↑83.5 и ↓0.5+83
Комментарии103

Аппаратный антискиммер. Чёрная коробочка, защищающая банкоматы

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров12K
Приветствую всех!
Думаю, абсолютному большинству сидящих здесь знакомы такие устройства для кражи данных банковских карт как скиммеры. С ними активно боролись (где-то успешно, а где-то не очень), а к распространению бесконтактных карт они тихо и незаметно ушли в историю.



Многие наверняка слышали про специальные накладки хитрой формы на считыватели карт, призванные защитить девайс от установки постороннего оборудования. Но одними защитными пластмассовыми деталями всё не ограничивалось, существовали куда более интересные девайсы, парочка которых попала ко мне в руки.

Итак, в сегодняшней статье поговорим про такой малоизвестный среди обывателей вид защиты банкоматов как активные антискиммеры. Попутно попробуем запустить имеющиеся у меня девайсы и узнаем, как они работают. Традиционно будет много интересного.
Читать дальше →
Всего голосов 65: ↑69 и ↓-4+73
Комментарии14

Как получить лицензию ФСТЭК России. Опыт «Фланта»: процесс, сложности, советы

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.8K

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

В этой статье не будет захватывающих кейсов из практики наших SRE-инженеров. Мы погрузимся в бюрократический мир, с которым столкнулись при получении лицензий ФСТЭК России. Мы расскажем, лицензии каких видов бывают и как определить, какие из них необходимы. Также пройдёмся по основным требованиям к получению лицензий и рассмотрим, как мы приводили компанию в соответствие с ними и с какими проблемами столкнулись.

Читать далее
Всего голосов 33: ↑32 и ↓1+31
Комментарии18

Программирование и ИТ во мгле, но это не точно

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров29K

Приветствую хабравчане!

В данной статье хочу поделиться проблемами в ИТ. Высказать об этом своё мнение. Обсудить в комментариях, всё ли так плохо на самом деле и каков выход из данной ситуации. Меня не покидает ощущение, что мы как программисты, что то потеряли при очередном витке ИТ прогресса. Обсудим?

Давай, чё там у тебя
Всего голосов 157: ↑130.5 и ↓26.5+104
Комментарии304

Как системному аналитику не делать чужую работу

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров13K

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

Читать далее
Всего голосов 29: ↑27 и ↓2+25
Комментарии14

Небольшая щепотка ультразвуковых чудес

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.5K
Картинка Freepik

Несмотря на свою практически неслышимость и незримость, ультразвук имеет множество применений в современной жизни. В связи с этим мы и рассмотрим некоторые весьма любопытные его реализации, вдвойне интересные ещё с той точки зрения, что они содержат полный набор исходников проектов, что позволяет любому желающему испытать свои силы в реализации описанного. Итак…
Читать дальше →
Всего голосов 68: ↑65.5 и ↓2.5+63
Комментарии23

Ближайшие события

Почему в Grand Theft Auto: San Andreas самолёты падают с неба

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


Оббе Вермей [Obbe Vermeij] — один из программистов GTA 3, Vice City и San Andreas. Оббе ушёл из Rockstar после GTA IV и давно занимается другими проектами. В последние месяцы он начал вести блог insiderockstarnorth.blogspot.com, но в ноябре прошлого года закрыл его, поскольку бывшим коллегам мемуары не понравились. Тем не менее в личном микроблоге Оббе иногда делится байками про разработку игр из своей карьеры.

На этот раз Вермей рассказал, почему так часто падают самолёты в San Andreas.
Читать дальше →
Всего голосов 78: ↑78 и ↓0+78
Комментарии22

Размышления о высококачественных данных, собранных людьми

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров3.8K


Высококачественные данные — это «топливо» для современных моделей глубокого обучения. Большая часть данных, размеченных под конкретные задачи, создается живыми людьми — аннотаторами, которые занимаются классификацией или проводят RLHF-разметку для LLM alignment. Многие из представленных в этой публикации методов машинного обучения могут помочь улучшить качество данных, но главным остается внимание к деталям и скрупулёзность.

Сообщество разработчиков машинного обучения осознает ценность высококачественных данных, но почему-то складывается впечатление, что «все хотят работать над моделями, а не над данными» (Sambasivan et al. 2021).


Рисунок 1. Два направления обеспечения высокого качества данных.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии2

Kandinsky 3.1 — новая быстрая модель генерации изображений по тексту

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров17K

Прошёл ровно год с момента релиза модели Kandinsky 2.1 — именно эта модель принесла известность нашей исследовательской группе Sber AI Research и дала толчок развитию всей линейки моделей Kandinsky. В честь этой даты мы выпускаем новую версию модели Kandinsky 3.1, о которой я расскажу подробнее в этой статье.

Читать далее
Всего голосов 64: ↑68 и ↓-4+72
Комментарии32

Паяем Ардуино-совместимый контроллер и играем с интереснейшим шилдом

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров14K


Привет, Хабр! Вас тоже огорчало, что PLS-разъёмы плат Arduino Uno и Mega установлены без соблюдения сетки с шагом 2.54 мм, отчего невозможно создать собственный шилд на базе обычной макетки под пайку?

А ещё обидно, что на упомянутых платах не предусмотрено никаких кнопок, кроме сброса, а программно управляемый светодиод есть, но всего один, если не считать присоединённых к линиям Tx и Rx, задействованным при загрузке скетча и обмене данными с компьютером. То есть, без подключения внешних компонентов почти ничего нельзя сделать.

Сегодня я соберу вариант Arduino Uno с тремя подключёнными к GPIO светодиодами и тремя кнопками, не считая сброса. А расположение разъёмов остаётся стандартным, чтобы не терять совместимости с шилдами.
Читать дальше →
Всего голосов 47: ↑50 и ↓-3+53
Комментарии32

Энциклопедия контроллеров и обучающий проект (на Хабре)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров13K


Я давно занимаюсь микроконтроллерной тематикой и делюсь своими изысканиями (частью изысканий) в блоге на Хабре. Делаю я это довольно давно и количество статей уже перевалило за сотню, и, в полном соответствии с воззрениями (старины) Гегеля, количество явно переросло в качество.

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

Настало время как-то систематизировать эту информацию, прокомментировать и поделиться своими мыслями на эту тему. А в практическом плане этот каталог (мини-энциклопедию) можно использовать для выбора DIY контроллеров для своих проектов или, учитывая опубликованные примеры кода и переводы туториалов, как обучающее пособие по их программированию.

Итак…
Читать дальше →
Всего голосов 59: ↑59.5 и ↓-0.5+60
Комментарии11

На светлом-светлом Хабре появилась тёмная-тёмная тема

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров18K

Привет, Хабр! Мы приготовили для вас долгожданный подарок (из заголовка вы уже поняли, какой), но мы вам его просто так, как говорится, не отдадим 😃

Читать далее
Всего голосов 157: ↑140.5 и ↓16.5+124
Комментарии132

Введение в нейросети: что, зачем и как?

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров33K

Это модное слово всё чаще используется в разговорной речи: обывателей плотнее окутывают угрозами бунта искусственного интеллекта и войны с роботами — с одной стороны, и рекламой нейросетевых продуктов — с другой. Отдельный котёл в аду — для тех, кто впаривает «курсы дата‑саентистов». А когда бедный юзернейм в поисках истины обращается к Гуглу своему любимому поисковику — то вместо простого ответа на простой вопрос, получает ещё больше вопросов — таких как тензорфлоу, сигмоида и, не дай Бог, линейная алгебра.

Как же нейросети рисуют картинки?
Всего голосов 58: ↑56 и ↓2+54
Комментарии25