Навеяно постом engine9
Немного собственных снимков с пояснениями, так или иначе связанных с наблюдениями природных и астрономических явлений.
C++ Разработчик
Навеяно постом engine9
Немного собственных снимков с пояснениями, так или иначе связанных с наблюдениями природных и астрономических явлений.
Обобщённые системы не приводят к интересному геймплею
Для предотвращения многих проблем очень часто рекомендуют повышать обобщённость при помощи систем. Якобы если использовать компоненты, разделённые на мелкие части, а также продуманные системы, то всех проблем с особыми случаями можно избежать.
Это сильный аргумент, на который почти нечем ответить, за исключением того, что обобщённые системы приводят к скучному геймплею. Я был довольно активен в сообществе разработчиков игр на Rust, поэтому видел множество проектов, которые создают другие; разумеется, предлагаемые ими рекомендации коррелируют с теми играми, которые они создают. Люди, которые склонны создавать красиво спроектированные системы, работающие полностью обобщённо, обычно создают не совсем игры, а симуляции того, что со временем станет игрой; в таких симуляциях геймплеем часто считается даже нечто типа «у меня есть персонаж, который может двигаться».
Привет, Хабр! Меня зовут Данил Картушов. 👋
В этом посте я расскажу, как музыкальная платформа Deezer, используя метаданные, с первых секунд научилась рекомендовать персонализированные треки новым пользователям!
В чём принципиальное отличие джуна от мидла, а мидла от сеньора? На какие навыки поднажать, чтобы не задерживаться на одной ступеньке? Эти темы актуальны в ИТ-сообществе всегда.
Мы решили проследить, меняются ли с годами представления айтишников о принципиальных различиях между грейдами разработчиков.
Так или иначе сталкиваться с регулярными выражениями приходилось большинству разработчиков. Мое первое знакомство произошло с реализацией regex в STL std::regexp
. Чаще всего регулярки используются в проверке входных данных, что-то вроде проверки корректности введенного пользователем URL, адреса IPv4, адреса IPv6, телефонного номера и при этом скорость выполнения операции regex не сильно влияет на время отклика от приложения. Но, что если вам приходится проверять сотни, тысячи или даже десятки тысяч правил и все это на постоянно меняющихся наборах входных данных в реальном времени? В этой ситуации вам не просто нужен быстрый алгоритм, вам понадобится лучший из них, вам понадобиться чемпион!
Я релоцировался из России пару лет назад, как полагаю и многие читатели Хабра. В последнее время решил поменять страну проживания и обнаружил, что сложно найти систематизированную информацию по странам, чтобы принять решение куда лучше направиться.
В связи с чем я провел анализ стран по наиболее существенным на мой взгляд критериям. Данные предоставлены за 1-й квартал 2024 года из открытого источника https://www.numbeo.com/, проанализированы 92 страны.
В статье описывается механизм создания собственного модифицированного варианта монады IO в Haskell, с ограничениями операций ввода-вывода.
Хорошим тоном организации структуры любой программы на Haskell считается разделение кода на блоки, выполняющие IO операции ввода-вывода и блоки, полностью состоящие из чистых функций, т.е. функций, не выполняющих IO операций, а лишь принимающие на вход некоторые данные и возвращающие их в преобразованном виде. Такого рода чистые блоки по сути представляют из себя функции в математическом смысле слова, принимающие аргумент и возвращающие значение функции, и напоминают программы зари компьютерной эры, когда данные с перфокарт загружались в программу в самом начале её работы, после чего некоторое время обрабатывались, и по итогу работы программы выводила на печать итоговый результат расчётов, при этом в ходе работы программы не предполагалось никакого интерактивного взаимодействия с ней.
Чтобы добавить в программу интерактивность, но при этом максимально сохранить математическую целостность функций, применяется примерно такой подход:
Недавно я увидел новость о появлении на GitHub фальшивых репозиториев, которые обманом заставляют жертв скачивать вредонос, угрожающий безопасности их криптоактивов. Вредонос называется Keyzetsu Clipper, и в тот момент мне очень захотелось узнать, как работают настоящие вирусы. До этого у меня только был опыт учатсия в разных CTF. И тут я понял, что пришло время испытать свои силы на реальном примере.
В данной статье я провел полный анализ и реверс Keyzetsu Clipper, начиная от распаковки и расшифровки до анализа функций персистенца, коммуникации и замены кошельков.
Есть ли этика у разработчиков? Знает ли разработчик продукт, который разрабатывает? «Хороший дилер своим товаром не пользуется, иначе он превратится в собственного клиента», — гласит уличная поговорка. В IT важно знать продукт, который разрабатываешь, чтобы не пришлось перефразировать слова Сэмюэля Кольта: «Не оружие убивает, люди убивают».
Введение
Рады снова приветствовать тебя, дорогой читатель! В этой статье мы продолжим раскручивать тему атак на Bluetooth. В прошлой статье мы разобрали лёгкий и очевидный вид атак - это заглушка. В этих атаках нет ничего сложного.
Но в этой статье мой друг, мы подготовили для тебя нечто более интересное. Эти атаки мало кто затрагивал, но возможно мы ошибаемся, так как судим по своему субъективному мнению, но при поиске похожих материалов результат был либо очень мал, либо его вовсе не было.
Дисклеймер: Все данные предоставленные в статье взяты из открытых источников, не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.
Более 10 лет назад в голове промелькнула мысль "если из ноутбука убрать все лишнее то получится компактный системный блок". Даже набросал "бизнес-идею" в виде презентации...
Европейский Союз официально утвердил новый набор правил, известных как «Право на ремонт». Директива была создана для выведения приоритетности ремонта сломанных электронный устройств вместо их замены на новые. Европейский союз обязал производителей техники и гаджетов предоставлять на свои товары минимальную двухлетнюю гарантию. Новые правила предоставляют расширение прав каждого потребителя, например, в отношении возможности ремонта товаров после истечения гарантийного срока. В списке оказались смартфоны, стиральные машины, пылесосы и др. При этом, если товар выходит из строя во время гарантийного срока, потребители могут выбрать его замену или ремонт. В случае выбора ремонта гарантия будет продлена на год. Подробности — под катом.
По счастливой случайности я оказался резидентом Евросоюза, а значит, на меня также распространяется GDPR. Он позволяет мне запросить копию информации, которая хранится обо мне у всяких разных компаний. Я решил сделать это у Apple, и был неприятно удивлен.
Apple старается собирать как можно меньше данных.
В этой статье расскажу о попытке сделать собственную отладочную плату, аналог Arduino, используя электронику от оптических приводов, которые уже практически вышли из употребления, но хранятся в кладовках многих радиолюбителей. Т.е. фактически мы получим отладочную плату из мусорки.
Как известно, производители оптических приводов используют самые разные контроллеры. И не для всех можно найти документацию в широком доступе. В данном случае мне повезло и в завалах попалась плата с более менее распространенным контроллером М5705. На ней также имеется микросхема внешней флеш памяти и еще несколько компонентов, которые нам, скорее всего не понадобятся.
10 лет назад сотни серверов Яндекса работали на Apache Kafka®, но в этом продукте нам нравилось далеко не всё. Наши задачи требовали единой шины для передачи всех видов данных: от биллинговых до журналов приложений. Сегодня объёмы достигли уже десятков тысяч именованных наборов сообщений.
При таком количестве данных в Apache Kafka® становилось сложно управлять правами доступа, организовывать распределённую работу нескольких команд и многое другое. Проблемы роста и отсутствие подходящего решения в открытом доступе привели к тому, что мы разработали своё решение YDB Topics и выложили его в опенсорс в составе платформы данных YDB. В этом посте расскажу о предпосылках создания продукта, нашей архитектуре передачи данных, возникающих задачах и возможностях, которые появились вместе с YDB Topics.