Архив за 05 апреля 2024

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

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

Игра "Пятнашки"

Классическая игра "Пятнашки" состоит из сетки 4x4, содержащей фишки с числами от 1 до 15 и одну пустую клетку:

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

Цель игры - перемещая фишки, расположить их в возрастающем порядке:

Читать полностью »

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


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

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

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

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

Экспрессивные языки прекрасны, но часто создают путаницу. Вы можете использовать богатый и комплексный язык, поддерживающий миллион способов реализации одного и того же. Именно это я хочу вам показать. Как же сохранить всю эту мощь, но уменьшить беспорядок? Как избежать возникновения 500 поддиалектов? Но прежде, чем переходить к решениям, обсудим Scala.Читать полностью »

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

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

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

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

Чуть больше контекста

Читать полностью »

Современные HDD постепенно увеличиваются в объёмах, но каких-то резких скачков уже давно не было. Компания Seagate, возможно, нашла способ увеличить объём накопителей сразу в несколько раз. 

Компания Intel продала свой крупнейший в России офис. Это следует из отчётности одного из юрлиц Intel в РФ. 

Intel продала свой самый большой российский офис
Создано DALL-E

Читать полностью »

Группа компаний «Аквариус» и «Открытая мобильная платформа» (ОМП) объявлили о завершении портирования корпоративной версии российской мобильной операционной системы «Аврора» на планшеты Aquarius Cmp NS220RE.

США продолжают усиливать санкции относительно Китая. И если запрет на продажи GeForce RTX 4090D и ускорителей H20 для самого Китая нельзя назвать гигантской проблемой, то вот усиление давление на ASML — это уже серьёзно. 

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

В России начали готовится к знаменательному дню — 7 апреля 2024 года исполнится 30 лет с того дня, как в базу данных IANA была внесена запись о российском домене .ru. В связи с этим на Международной выставке-форуме «Россия» на ВДНХ пройдёт «День Рунета». 


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js