Чтобы игра стала хитом, нужны большие затраты (и огромное везение). Геймплей должен приносить удовольствие, сюжет должен цеплять, прогресс должен радовать, баги должны не появляться или хотя бы не быть критическими. Качественно сделанная игра выстрелит, а количество фанатов будет расти в геометрической прогрессии. Но есть один фактор, который может свести на нет все усилия. Это халтурная локализация. Даже шедевр может затеряться на фоне колоссального количества новых проектов, если получит несколько негативных отзывов при запуске.
Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.
Проблема старения напрямую связана с вопросом о разной продолжительности жизни у разных организмов. Немецкий физиолог М. Рубнер в 1908 году первым обратил внимание ученых на то, что крупные млекопитающие живут дольше, чем мелкие. Например, мышь живет 3,5 года, собака — 20 лет, лошадь — 46, слон — 70. Рубнер объяснил это разной интенсивностью обмена веществ.
Авторитет института NIST (National Institute of Standards and Technology, Национальный Институт Стандартов и Технологии) в среде специалистов по информационной безопасности фактически непререкаем. На протяжении многих лет документы NIST (специальные публикации, рекомендации и стандарты) используются мировым сообществом кибербезопасности для выстраивания логически взаимосвязанных, прозрачных, измеримых процессов обеспечения информационной безопасности и управления киберрисками. Обзор самых интересных на наш взгляд публикаций NIST будет состоять из двух частей, эта – первая. Вперед!
Недавно натолкнулся на статью в корпоративном блоге Home Credit Bank на Хабре.
Там есть ссылка на нашу статью на Хабре, статья в свою очередь ведет на наш проект, который опубликован под лицензией GNU Affero General Public License v3.0:
Вероятно вы уже поняли, куда это все идет. Данная лицензия подразумевает публикацию кода проекта, который использует наши модели. Но банк естественно этого делать не будет, потому что это банк. А значит лицензия де факто означает некоммерческое использование.
Но Home Credit Bank естественно не обращался к нам за коммерческой версией или лицензией для данной модели.
Основная задача:
Изучить, как хранить данные IoT на комбинации on-chain (Ethereum Blockchain) и off-chain хранилищ (IPFS и Ethereum Swarm) в зашифрованном виде и использовать их в модели публикации-подписки в режиме реального времени без использования каких-либо протоколов M2M, таких как MQTT или CoAP. Оценить производительность этой системы с точки зрения количества транзакций, которые могут быть выполнены в секунду и оптимизировать ее работу.
Предыдущие части статьи:
Безопасное хранение данных IoT в частном блокчейне Ethereum. Часть 1
Безопасное хранение данных IoT в частном блокчейне Ethereum. Часть 2
В этой части статьи в главе 6 мы проводим эксперименты по хранению данных с использованием традиционных баз данных, а также предложенной системы с использованием Ethereum Blockchain, IPFS и Swarm. Чтобы понять стоимость безопасности IoT, мы проводим эксперименты по оценке производительности предложенной системы.
В главе 7 мы попытаемся обобщить выводы, сделанные в данной статье, и завершим ее ретроспективным обзором 2 измерений производительности этих систем хранения данных вместе с блокчейном.
Недавно наткнулся на stackoverflow на такой вопрос Need to check if code contains certain identifiers и в ходе размышлений преобразился из «маленького помощника Санты» в «адвоката дьявола». Что, конечно, гораздо веселее. Но мораль не в этом.
(на картинке изображён С++ среди других функциональных языков)
Классы - это скорее всего первое, что добавил Страуструп в далёких 1980х, ознаменовав рождение С++. Если представить, что мы археологи древних плюсов, то косвенным подтверждением этого факта для нас будет this, который по прежнему в С++ является указателем, а значит, скорее всего, он был добавлен до "изобретения" ссылок!
Но речь не про это, пора окинуть взглядом пройденный с тех пор путь, изменение и языка и парадигм, естественный отбор лучших практик, внезапные "великие открытия" и понять к чему это всё привело язык, который когда то вполне официально назывался С с классами (ныне мем).
В конце(СПОЙЛЕР) мы попытаемся превратить С++ в функциональный язык за несколько простых действий.
Для начала рассмотрим базовое применение классов:
Программа получается отличной: Андрей Цветцких (Тинькофф), Дмитрий Цепелев (Злые Марсиане), Серёжа Попов (HTML Academy), Андрей Смирнов (X5), Алексей Бородкин (Ozon), Елена Насыбуллина (Selectel), Дмитрий Калаев (ФРИИ), Максим Рогожников (Тинькофф), Антон Назаров (Autodesk), Александр Кириллов (Evrone), Филипп Терехов (Уфимский городской планетарий) — и это не всё. Под катом — подробности программы.
Цель статьи - рассказать, как получить удобный доступ к битам регистра STM32 без использования битовых операций и пользоваться битами микроконтроллера как обычными переменными. Чтобы не быть голословным, создадим проект UART+DMA с передачей и приёмом данных неизвестной длины, работающую чисто на структурах c битовыми полями, которые привязаны к адресам периферии STM32.
Январь этого года был для меня не только чередой праздников, но и поводом отметить год, как мы полностью переехали на новый платежный шлюз. Для нас, как для сервиса подписки на духи, это одна из ключевых систем и если с ней есть проблемы, то это касается всех в компании. Сам переезд можно сравнить с хорошей книгой: есть экспозиция - проблемы с прошлым сервисом, завязка как мы делали выбор между своей разработкой и готовым сервисом, развитие действия - когда мы начали работать над архитектурой и делать первые коммиты, кульминация - момент первого запуска и первые проблемы с ним и развязка, когда мы закончили миграцию всех клиентов. Звучит интересно? Тогда добро пожаловать под кат.
Huawei поставляет Android-смартфоны без сервисов Google и привычного магазина приложений Google Play, создав аналоги: Huawei Services и AppGallery.
Для нас, разработчиков, это 420 миллионов активных пользователей на 700 миллионов устройств. Для поддержки пользователей потребуется оформление документов.
В статье мы говорим только о использование сервисов.
Оперативное информирование клиентов, когда их достаточно много для ручного обзвона, но недостаточно много для подключения массового сервиса, вроде sms.ru (на самом деле сервис хорош, но недавняя политика некоторых мобильных операторов создала определённые финансовые сложности ввиду заградительных тарифов на использование услуг sms-рассылок с/без использования имён, для относительно не крупных рассылок), что породило потребность в применении независимого инструмента.
Путем продолжительных скитаний по просторам сети, был изучен ряд материалов и некоторые готовые решения. Спасибо dos999 (Ссылка на пост) за отправную точку, но хотелось бы реализовать это "модном" на python3.
Была предпринята попытка адаптировать изложенную логику на основе полученных знаний, но уперся в кириллическую кодировку, т.к. готового кодера в UCS-2 python не имеет, а варианты на основе utf-16 приводили к какому-то такому результату "PÉQ@P>Q£Q$P>P9".
Но, кто ищет - то находит. Попалась мне на задворках сети готовая реализация на python2 от huh-muh (Ссылка на пост). И тут пазл сложился, а адаптировать под python3 труда не составило:
Совсем недавно, организация, направленная на развитие экосистемы Solana - Solana Foundation, выступила организатором череды мероприятий под названием «HackerHouse». Solana HackerHouse — это серия мероприятий по всему миру, на которых встречаются участники, которых объединяет экосистема Solana. Команды, сформировавшиеся из разработчиков, дизайнеров, менеджеров, маркетологов, приняли участие в четырёхдневном соревновании. Было представлено множество интересных проектов на основе параметров, заданных организаторами. Результаты HackerHouse – это всего лишь промежуточный итог. Самые успешные идеи и проекты будут воплощаться на практике.
Примечание переводчиков: В Swift 5.5 появилась новая концепция языка async/await. Мы решили опубликовать перевод статьи, чтобы разобраться с structured concurrency.
За время подготовки перевода оригинал успели переписать, и в статье ниже мы совместили обе версии: сначала идет развернутая версия, а в конце — краткие чек-листы с избранной информацией.
Если у вас есть код, который нужно запускать одновременно с другим кодом, для работы важно выбрать правильный инструмент. В статье мы:
• познакомим вас с разными типами параллельных задач, которые вы можете создавать в Swift
• покажем, как создавать группы задач
• научим отменять выполняемые задачи
• разберем, когда может быть предпочтительнее использовать неструктурированные задачи.