Забудьте про скучные «Hello, World». Макросы и шаблоны давно стали полноценными инструментами архитектора кода: от хитрых C++-шаблонов до процедурных макросов Rust и Java-аннотаций, автоматически генерирующих целые фреймворки. В этой статье мы рассмотрим примеры, где metaprogramming избавляет от рутины и экономит часы работы над проектом. Детали как всегда под катом. Торопитесь? Просто кликните по нужному разделу: → Template-less метапрограммирование: от классических TMP-хаков к «value-bas…
9 июня 2005 года в продажу поступила игра, вызвавшая массу обсуждений ещё на стадии разработки. Релиз получился противоречивым: даже те, кто увлечённо погрузились в густую во всех смыслах атмосферу города на Горхоне, критиковали «Мор (Утопия)» за забагованность, непритязательную для середины нулевых графику, однотипность моделей и общую непонятность происходящего. А также за откровенную негуманность геймплея к игроку, которую автор проекта Николай Дыбовский называл не багом, а фичей и сознател…
Приветствую всех! Один из самых частых вопросов касательно старого оборудования, что мне обычно задают, звучит так: можно ли печатать произвольные данные на старых кассовых аппаратах? Действительно, несмотря на то, что после 2017 года старые ККМ были запрещены для торговли, чековые принтеры в них ещё не выработали свой ресурс, так что было бы странным не попробовать использовать их в своих проектах. Итак, в сегодняшней статье разберёмся, как это делать. Заодно разберёмся, какие кассы поддают…
Когда думаешь, что под надёжной защитой, но дьявол, как всегда, в деталяхДумаю, многие помнят позапрошлогодний инцидент с Man-in-the-Middle атакой на XMPP-сервис jabber.ru. Эта история наделала много шума, но, как мне кажется, главный вывод из неё так и не был усвоен широкой аудиторией. А зря. Потому что эта атака вскрыла системную уязвимость в процессе выдачи TLS сертификатов, которая напрямую касается миллионов сайтов, особенно тех, кто доверяет свою безопасность Cloudflare.Я поднял эту тему …
Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? Чтобы перейти от предпол…
Отказоустойчивость (англ. resilience, fault tolerance) — это способность системы продолжать работу, несмотря на внутренние ошибки, сбои в зависимостях или непредвиденные ситуации.С хорошей отказоустойчивостью интерфейс остаётся стабильным и понятным, пользователь получает предсказуемый и комфортный опыт, а сбои отдельных компонентов не приводят к сбоям всей системы.В этой статье речь не будет идти о конкретных примерах реализации повышения отказоустойчивости. Понять то, что нужно подключать сер…
Представь себе, что ты находишься в Плоскомире, и вдруг кто-то предлагает тебе заглянуть в мир трех измерений. Разве это не покажется тебе безумием? Эдвин Эбботт, "Флатландия" Эта статья про застарелые комплексы, а также про успешное их преодоление. Восемь лет назад, Dagaz создавался не на пустом месте. В его основу легли Zillions, Axiom и… Jocly. Как раз с последним и было связано больше всего терзаний. Сейчас Jocly выглядит как 100%-ый 3D-проект, но так было не всегда. Когда-то в н…
Несколько месяцев назад я отключил JavaScript в своем браузере, чтобы проверить, остались ли в современном интернете сервисы Google, которые все еще работают без JS. Как ни странно, форма восстановления имени пользователя все еще работала!Это меня удивило, так как я привык думать, что с 2018 года формы восстановления аккаунта требуют JavaScript, потому что они полагаются на botguard решения, которые генерируются из сильно запутанного JavaScript-кода для защиты от злоупотреблений. Более детально…
Для тех, кто в танке Apple презентовали свой новый фирменный стиль. Liquid Glass - это новый материал... Красиво ли это? Спорно, конечно, а спорить я сейчас не хочу. Всё новое - это забытое старое? Как бы да... но нет. Я прочёл десятки комментариев о том, что подобное уже было в прошивках китайских смартфонов, таких как Сяоми или чё там ещё у Китая. На самом деле то, что показали в бета версии iOS - не только не встречалось в Android нигде ранее, но и не появится в Android ближайшее время.Есл…