Search
Write a publication
Pull to refresh
54
5

Пользователь

Send message

Случайные лабиринты и сапёр от третьего лица, инопланетные жуки и алгоритм Брезенхема

Reading time4 min
Views7.8K

Всем привет! Уже больше 30 лет я занимаюсь разработкой видеоигр и регулярно экспериментирую с различными игровыми механиками. В результате я пришел к идее создать игру по типу сапёра, но от третьего лица и на roguelike подобном уровне.

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

Игра получилась на удивление играбельной, извините за тавтологию. Интересное сочетание экшена/аркады и паззла/адвенчуры. Разрешите рассказать вам о паре алгоритмических задач, возникших при генерации уровней. Сами алгоритмы простые. Однако интересно именно то, что их можно использовать в игре.

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

Читать далее

RFID-метка на простой логике

Reading time25 min
Views205K
Объявлено новое соревнование 7400, и нужно сделать что-то новое. Нельзя ударить в грязь лицом после победы в прошлом году ;)

У меня было несколько расплывчатых идей, но их было недостаточно, чтобы вызвать реакцию «Ух ты!» или «Ты маньяк!». Нужно серьезно потрудиться, чтобы оставаться на уровне моей предыдущей разработки — емкостного сканера.

Я устроил мозговой штурм с моими товарищами: Педерсеном (Pedersen), Асбьёрном (Asbjørn) и Флеммингом (Flemming), которые тут же придумали множество смешных идей. И вот Флемминг упомянул RFID (он разработчик системы управления доступом, которая основана на RFID). А вот это уже мысль. Конечно, первые мысли были об RFID-считывателе, но мы уже собрали их довольно много, и это было скучно. Однако, появилась идея сделать RFID-метку. Я не знаю, кто упомянул это первым, и, как обычно в мозговом штурме, идеи рождаются коллективным разумом. Итак, решено сделать RFID-метку, собранную исключительно на 7400-ой логике.
Много текста и картинок

Эмулятор RFID

Reading time14 min
Views75K

Эмулятор карт EM Marine



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

Как я нейроны паял

Reading time7 min
Views9.2K

Здравствуйте. Наверное, многие из вас слышали об искуcственном интеллекте и очевидно что это — важная тема, которая изменяет сегодня нашу жизнь. Над созданием ИИ работает множество учёных. На данный момент существуют два фундаментальных подхода: нейробиология и нейросети. Лично я считаю нейробиологию более перспективной, но менее развитой т.к. о том, как именно работают нейроны мы знаем сегодня всё ещё очень мало. Нейросети являются наиболее развитым подходом, который, однако фактически достиг пределов развития т.к. для улучшения результатов требуются всё большие и большие вычислительные ресурсы. Кроме того, его отношение к настоящим нейронным сетям и нейронам весьма опосредованное и представляет собой всего лишь приблизительную математическую модель.

Подойдём к вопросу иначе: если нейрон - это электрохимическая структура, то можем ли мы попытаться воспроизвести его химическую активность с помощью электронных компонентов? Другими словами, можем ли мы составить электрическую цепь аналогичную нейрону?

Читать далее

Self-hosted EXPLAIN: наглядно и безопасно

Reading time2 min
Views8.5K

С момента первой же хабрапубликации о возможностях нашего сервиса визуализации планов запросов PostgreSQL explain.tensor.ru (а было это уже больше 2 лет назад) пользователи задавали резонный вопрос: "Все у вас круто, но у нас в запросах и планах есть коммерческая инфа, которую отправлять куда-то наружу низзя... Можно как-то ваш сервис развернуть на своей площадке?"

Ну, а почему бы и нет, подумали мы - тем более, некоторые пользователи уже интересовались возможностью интеграции нашего сервиса в свои системы.

Читать далее

Как подступиться к оптимизации процессов и расходов в организации — Process Mining и его возможности

Reading time5 min
Views2.8K

Один из распространённых инструментов в области цифровой трансформации — процессная аналитика. Расскажем, на что обратить внимание в первую очередь и какие возможности — в этом контексте — есть у нашей системы.

Читать далее

Проектируем DataGrid на React так, чтобы сэкономить Boilerplate

Reading time13 min
Views8.9K

⚛ Проектируем DataGrid на React так, чтобы сэкономить Boilerplate

Хорошо продуманная архитектура позволяет не только избежать legacy, но и отдать часть рутины менее квалифицированным кадрам. Думаю, будет уместно поделиться заметками о проектировании DataGrid, так как скорее всего вы уже сталкивались с копипастой)

Читать далее

Принципы юнит-тестирования. Часть первая

Reading time10 min
Views60K

Привет! Меня зовут Владимир, я разработчик команды продукта «Сервис персонализации» в SM Lab. В этом посте я хотел бы рассказать (а в комментариях — обсудить) один очень важный и полезный инструмент разработчика — юнит-тесты.

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

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

Эта статья для всех – кто слышал про них, но не видел, кто приступает к написанию юнит-тестов, и кто их пишет уже давно. Надеюсь, каждый из вас найдет что-то полезное для себя.

При подготовке материала очень помогла книга Владимира Хорикова (@vkhorikov ) «Принципы юнит-тестирования». Рекомендую ее всем, кто хочет еще глубже погрузиться в эту тему.

Итак, поехали.

Читать далее

Как убедиться, что код библиотеки не был изменен?

Reading time7 min
Views4.6K

Любые Open Source проекты потенциально подвержены риску вредоносной модификации сторонними контрибьюторами и уязвимость может появиться на любом уровне распространения кода — от исходных текстов до двоичных артефактов, которые связываются с прикладными программами. Кроме того, нередко в библиотеках и подсистемах Linux обнаруживаются ошибки, которые могут привести к нарушению функционирования системы, аварийному завершению приложения или обходу механизмов безопасности и важно иметь возможность быстро обнаружить все затронутые этой ошибки компоненты и выполнить выпуск заплатки для 0-day уязвимости.

Для решения всех этих задач Linux Foundation в 2010 году предложил формат для описания юридических аспектов использования программного обеспечения (в частности, лицензии), происхождения артефакта (исходного кода или двоичного файла), способов контроля целостности объекта, а также зависимостей от других объектов. В 2021 году формат был принят как стандарт ISO/IEC 5962:2021 (спецификация SPVX V2.2.1) и является основой для определения SBOM (Software Bill of Materials), которые описывают зависимости компонентов, способы их верификации и описание цепочки поставок для валидации источника.

В статье мы обсудим общие принципы описания SPDX и инструменты (включая недавно открытый Microsoft SBOM Tool, ранее назывался Salus), для создания SPDX/SBOM (в том числе, для автоматической генерации на основании файлов спецификации зависимостей проекта).

Читать далее

Как проходит интервью системных аналитиков в Тинькофф

Reading time5 min
Views43K

Привет! Меня зовут Евгений Зингер, я тимлид группы разработки бэка кредитов для юрлиц в Тинькофф. Кроме основной работы, я лидирую стрим-интервью системных аналитиков и часто собеседую кандидатов. В статье расскажу, как проходят три этапа собеседования: от HR-скрининга до финального интервью. А также объясню, как попасть в Тинькофф за один день. Материал будет полезен всем, кто интересуется системным анализом и хочет работать в крупной компании или именно у нас. 

Читать далее

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 7

Level of difficultyEasy
Reading time11 min
Views45K

На прошлом уроке мы изучили некоторые способы поиска областей интереса на изображении. Напомню, что мы делали:

пытались найти по цвету (чаще всего так делать не надо);

пытались найти круглый знак посредством функции HoughCircles (иногда работает);

а еще мы изучили морфологические операции (открытие закрытие).

Сегодняшний урок будет более глубоко посвящен работе с контурами, так как часто контур помогает выдели фичи на изображения, а так же области интересов (благодаря контуру, мы можем охватить форму объекта).

Для начала вспомним, как находить контуры.

Читать далее

Импортозамещение Camunda самописным BPM-механизмом

Reading time7 min
Views7.3K

Привет, Хабр! Меня зовут Владимир Швец, я ведущий разработчик центра Smart Process в МТС Digital. Расскажу о том, как мы собрали BPM-движок, который позволяет кастомизировать бизнес-процессы без перезагрузки стенда и перезапуска приложения.

Два программиста написали движок за две недели, поэтому такой BPM-механизм – быстрое и легкое решение, назвали его Scenario Engine. Мы применили движок для гибкого создания ряда процессов в рамках проекта интеграции с внешней системой. Ниже я разберу то, как работает движок, что у него под капотом, как мы его придумали и какие выводы сделали.

Добро пожаловать под кат!

Читать далее

В Data Science не нужна математика (Почти)

Reading time6 min
Views92K

Привет, чемпион!

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат.

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

Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется. Важно прочитать до конца!
Читать дальше →

Способы хранения графа в памяти компьютера

Reading time4 min
Views35K

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

Читать далее

Теория чисел. Новый метод анализа распределения чисел, в том числе и простых

Reading time6 min
Views19K

В статье рассказывается о новом подходе к анализу распределения простых чисел.
О подходе с использованием формулы распределения чисел для всего натурального ряда.

Читать далее

Как создавать иконки сайтов в 2022 году — всё о favicon

Reading time9 min
Views45K

Пришло время переосмыслить то, как мы создаем набор иконок для современных браузеров, и остановить безумные генераторы. Фронтенд-разработчики сейчас вынуждены создавать более 20 PNG-файлов, чтобы отобразить крошечный логотип веб-сайта на вкладке браузера или сенсорном экране. Статья расскажет, как использовать более разумный подход и создать минимальный набор иконок, соответствующий большинству современных потребностей.

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

Статья целиком

TypeScript: разрабатываем WebAssembly-компилятор

Reading time13 min
Views6K



Привет, друзья!


Представляю вашему вниманию перевод этой замечательной статьи, в которой автор рассказывает о том, как разработать компилятор для WebAssembly на TypeScript.


Обратите внимание: мой вариант компилятора можно найти в этом репозитории, а поиграть с его кодом можно в этой песочнице.


Если вам это интересно, прошу под кат.

Читать дальше →

Путеводитель по ID для JPA сущностей. Часть 1: ID, генерируемые на сервере

Reading time14 min
Views73K

Разработка инструментария – очень познавательное занятие, потому что заставляется задуматься над теми вещами, которые в процессе разработки иногда не замечаешь. Казалось бы, создание @Id атрибута в JPA – рутинное занятие и каждый разработчик может сделать айдишник, даже не включая мозг. Однако, когда начинаешь углубляться в эту тему и пытаться разработать инструмент, который не только помогает писать код для определения ID, но и подсказывает потенциальные проблемы, то всплывает много интересного. И наши соображения, которыми мы руководствовались при разработке JPA Buddy, вылились в этот цикл статей. 

Читать далее

Дилемма моделирования в рамках Data Vault/Anchor Modeling: объект или событие

Reading time6 min
Views13K

Всем привет :) 

Меня зовут Голов Николай, я строю платформу данных на основе Snowflake и Anchor Modeling в ManyChat.

В этой статье я уже подробно рассказывал, как решал аналогичную задачу  в Авито, используя Vertica и методологию Anchor Modeling. В комментариях меня спрашивали, с какими сложностями приходится сталкиваться при использовании этой модели, поэтому сегодня я решил поговорить именно о них и заодно поделиться решением, к которому мы пришли.

Читать далее

Блокчейн на JavaScript

Reading time7 min
Views27K
В последнее время криптовалюты и блокчейн-технологии стали невероятно популярными. Сегодня я расскажу о моём подходе к созданию блокчейн-платформы на JavaScript с использованием всего 60 строк кода. Я — начинающий блокчейн-разработчик, поэтому если я в чём-то ошибаюсь — поправьте меня в комментариях.


Читать дальше →

Information

Rating
1,898-th
Works in
Registered
Activity