Как стать автором
Обновить
-2
0

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

Отправить сообщение

Безопасный HTTPS-прокси менее чем за 10 минут

Время на прочтение5 мин
Количество просмотров109K

Это руководство описывает развёртывание HTTPS-прокси с помощью dumbproxy на практически любом Linux-сервере. Потребуется только curl и рутовый доступ.

Читать далее
Всего голосов 44: ↑43 и ↓1+52
Комментарии85

5 мини-ноутбуков конца лета 2022 года: модульность, портативность и производительность

Время на прочтение5 мин
Количество просмотров50K

Ноутбуки — отличный инструмент для многих представителей IT-индустрии. В целом, где ноутбук, там и твое рабочее место — в большинстве случаев это действительно так. Конечно, большую роль играет размер девайса, его производительность и некоторые другие критерии. В некоторых ситуациях большим плюсом является портативность, и в эту подборку попали как раз небольшие устройства. О большинстве из них мало кто знает, при том, что ряд моделей — модульные, что ценится многими пользователями. Давайте посмотрим, что это за девайсы.
Читать дальше →
Всего голосов 41: ↑30 и ↓11+29
Комментарии100

За гранью App Store, или Что нового открывает MDM и Supervised для B2B в iOS

Время на прочтение14 мин
Количество просмотров8.8K
Привет! Меня зовут Денис Кудинов, я iOS-Development team lead в «Лаборатории Касперского». В этой статье расскажу об Mobile Device Management, а также о supervised- и BYOD-режимах — как работает технология и что с ее помощью можно сделать такого, что недоступно обычным приложениям из App Store. Считайте это презентацией возможностей Configuration Profiles, да и Apple MDM в целом :)

image

Статья будет полезна разработчикам B2B-приложений для iOS, которые хотят разбавить свои инструменты новыми фичами, а также для product owner-ов и бэкенд-разработчиков, которые хотят поддержать взаимодействие с мобильными устройствами.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Медицинский детектив: как я разрабатывал матмодель и софт для хирургии по пересборке черепа

Время на прочтение13 мин
Количество просмотров8.6K
image

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

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

Мы разработали новый протокол операции. Через 3 года прошла первая операция.

В старом протоколе хирург бы снял слепки зубов, разместил бы модель фрагментов пациента в артикулятор и подготовил бы набор ручных вмешательств. Наша методика расчёта показала, что то, что мы всегда считали «визуально правильным», таким не является. Мы долго проектировали ту операцию за матмоделями, проверяя, что будет с костями. Во время операции хирург открывал мягкие ткани, ставил навигационный шаблон на костную ткань, перекраивал кости под новыми углами. Углы, под которыми скреплялись кости, выглядели контринтуитивно. Их рассчитывала матмодель на основе КТ и фотограмметрии. Она же дала сверхточную навигацию: ничего не делалось вручную, только по трёхмерной координатной привязке. Хирург быстро разрезал, поставил шаблоны, наложил пластины, скрепил пластины в расчётных точках. Что-то похожее я видел в ролике к игре Deus Ex. Хирург во время самой операции был лишь исполнителем своей заранее созданной программы.

Пациент восстановился за 4 месяца. Старый протокол подразумевал, что общее время лечения будет длиться 30 месяцев, а с этим протоколом мы сократили общее время лечения до 4–12 месяцев.

Сегодня эта операция стала новым стандартом сферы.

Потому что мы поставили под сомнение догму.
Читать дальше →
Всего голосов 86: ↑86 и ↓0+86
Комментарии7

Нет HUD’а без добра: HUD в игровых интерфейсах

Время на прочтение9 мин
Количество просмотров11K

В играх существует огромное количество интерфейсов: инвентарь, диалоги, меню крафта и торговли, лобби, карта, деревья прокачки персонажа и его экипировки и многие другие. Все они позволяют игрокам взаимодействовать с представленными через интерфейс механиками, которые создатели игры заложили в свой продукт. И в этой статье мы подробно разберем один из самых важных элементов игрового UI: HUD (heads-up display).

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

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

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

Читать далее
Всего голосов 23: ↑22 и ↓1+24
Комментарии13

Простое развёртывание сетевой лабы на базе контейнеров

Время на прочтение7 мин
Количество просмотров12K

Часто сетевая лаба представляет собой довольно сложную конструкцию, состоящую из множества устройств, соединенных между собой. В этом помогает виртуализация, благо всякие маршрутизаторы и т.п. могут запускаться в виде контейнеров (скажем, Quagga) или виртуальных машин (здесь я рассмотрю Mikrotik).

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

Но недавно я узнал о проекте ContainerLab.dev и весьма впечатлился. Попробовал, оценил, впечатлился еще больше. Полез на Хабр почитать тонкости и хитрости, но, к удивлению, не нашел ни единого поста на эту тему.

Решил исправить. Вдруг кому-то еще облегчит жизнь.

А дальше?
Всего голосов 11: ↑11 и ↓0+11
Комментарии17

Руководство по CMake для разработчиков C++ библиотек

Время на прочтение18 мин
Количество просмотров93K

Данное руководство позволит читателю составить полную картину того, как организовать сборку C++ библиотек с использованием современных возможностей CMake. Предполагается, что читатель имеет представление о базовых понятиях из мира CMake и динамических/статических C++ библиотек, так как в руководстве они могут не объясняться.

Читать далее
Всего голосов 71: ↑71 и ↓0+71
Комментарии49

Как написать «Змейку» в четыре переменные?

Время на прочтение10 мин
Количество просмотров11K

Пишем классическую «Змейку», как на КДПВ, в четыре переменные. По словам автора, «Можно написать и с двумя, но зачем осложнять себе жизнь?» К старту курса по разработке на С++ приглашаем под кат.

Читать далее
Всего голосов 17: ↑13 и ↓4+14
Комментарии19

Private LTE: почему этим заменяют промышленный Wi-Fi, BLE, LoRa на российских предприятиях

Время на прочтение5 мин
Количество просмотров20K


Когда связисты разрабатывали стандарты LTE, они сразу подумали про массовое применение для любой беспроводной связи по всей планете. Поэтому внутрь «большого» LTE попадал, например, стандарт NB-IoT для энергоэффективной передачи с одной маленькой батарейки лет так пять подряд (ближайший аналог — BLE), — старый добрый стандарт раций «нажми на кнопку и говори» на случай отказа ядра сети и так далее.

Бум Private LTE (pLTE) в России начался примерно пару лет назад, а первое внедрение — около трёх лет назад. Фактически предприятиям нужен стандарт связи, который отлично подходит для работы с кучей терминалов от датчиков оборудования до диспетчерской связи. Естественно, там, где это возможно, используется старый добрый Ethernet, но есть места типа плавильных цехов, куда кабель либо нельзя прокинуть, либо очень сложно, и места вроде дронов или других подвижных частей оборудования, куда кабель не закинуть вообще. Когда датчиков уже становится много, точно нужна беспроводная сеть.

Коротко, pLTE — это закрытый контур (трафик не выходит за границы предприятия), сразу несколько стандартов связи внутри зоны действия базовых станций, аппаратная или виртуальная симка на каждом терминале, выделение «своих» лицензируемых частот от оператора и интеграция с СОРМ. Практически вы получаете всё нужное беспроводное (пять разных применений) за цену промышленного вай-фая, но есть нюансы.

Собственно, сейчас про эти нюансы я и расскажу.
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии18

Как работают регулярные выражения, или Движок regex с анимацией

Время на прочтение5 мин
Количество просмотров14K

К старту курса по Fullstack-разработке на Python показываем, как работают регулярные выражения, на примере их движка с визуализацией, которую вы видите на КДПВ. Под катом подробности и код.

Читать далее
Всего голосов 17: ↑16 и ↓1+20
Комментарии17

Китайские феи, или немного о «PIXIE»

Время на прочтение7 мин
Количество просмотров12K

В радиолюбительском разнообразии имеется направление работы в эфире малой мощностью - QRP, т.е. с мощностью передатчика менее 10 Ватт. Но есть увлеченные радиолюбители, работающие в эфире мощностями менее 1 Ватта и при этом проводящие связи с корреспондентами, удаленными на тысячи километров.

Среди этой категории радиолюбителей очень популярны схемы трансиверов на основе простого трансивера "PIXIE", о его китайских клонах и разновидностях и пойдет речь в моем мини-обзоре.

Читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии16

Крошечная библиотека TFT для микроконтроллеров ATtiny

Время на прочтение8 мин
Количество просмотров14K
Библиотека TFT на ATtiny85, управляющая цветным дисплеем Adafruit 2.0" 320x240

В статье речь пойдёт о маленькой графической библиотеке, предназначенной специально для микроконтроллеров ATtiny, используемых с различными миниатюрными TFT-дисплеями, которые можно недорого приобрести на сайтах Adafruit, AliExpress или Banggood.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+56
Комментарии3

Beyond URL and URN

Время на прочтение4 мин
Количество просмотров17K

Рыская по интернетам, зашел на страницу про URI и спустя несколько часов осознал, как мало я знал об этом монстре. Признаюсь, до этого я думал, что URI это либо URL, либо URN. Но это не так! Есть и другие варианты идентификации ресурса в сети.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии3

В одной лодке с «ублюдком»: 11 продвинутых советов по использованию Git

Время на прочтение11 мин
Количество просмотров51K

*"ублюдок" — вольный перевод слова "git" — "an unpleasant or contemptible person", "неприятный или презренный человек".



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


Давайте посмотрим, что можно использовать, чтобы улучшить себе жизнь. Статья предполагает, что читатель умеет пользоваться основными возможностями git и понимает что делает, когда, скажем, вводит в консоль git rebase --merge --autostash.

Читать дальше →
Всего голосов 84: ↑79 и ↓5+95
Комментарии26

Как работает рендеринг 3D-игр: освещение и тени

Время на прочтение20 мин
Количество просмотров23K
Реализация подавляющего большинства визуальных эффектов в современных играх зависит от продуманного использования освещения и теней. Без них игры были бы скучными и безжизненными. В четвёртой части анализа рендеринга 3D-игр мы сосредоточимся на том, что происходит в 3D-мире наряду с обработкой вершин и наложением текстур. Нам снова понадобится много математики, а также уверенного понимания основ оптики.

Часть 1: обработка вершин

Часть 2: растеризация и трассировка лучей

Часть 3: текстурирование и фильтрация текстур

Вспомним пройденное


Ранее мы рассматривали ключевые аспекты перемещения и обработки объектов в сценах, их преобразования из трёхмерного пространства в плоскую сетку пикселей, а также способы наложения текстур на эти объекты. В течение многих лет такие операции составляли основную часть процесса рендеринга, и мы можем увидеть это, вернувшись в 1993 год и запустив Doom компании id Software.


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

Теней не было, потому что они не входили в задачу программистов: PC того времени представлял собой процессор на 66 МГц (то есть на 0,066 ГГц!), жёсткий диск на 40 МБ и 512-килобайтную графическую карту с минимальными 3D-возможностями. Перенесёмся на 23 вперёд: в знаменитой перезагрузке серии мы видим совершенно другую историю.


Для рендеринга этого кадра использовалось множество технологий, он может похвастаться такими этапами, как screen space ambient occlusion, pre-pass depth mapping, фильтры размытия боке, операторы тональной коррекции, и так далее. Расчёт освещения и затенения каждой поверхности выполняется динамически: они постоянно изменяются в зависимости от условий окружающей среды и действий игрока.
Всего голосов 27: ↑27 и ↓0+27
Комментарии4
2

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность