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

Все потоки

Сначала показывать
Порог рейтинга

Про наш с Модильяни секрет, восприятие мира и перцептивную геометрию

Программирование *Визуализация данных *Математика *

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 207
Комментарии 0

Новости

Как установить лицензионную защиту кода на Python и обезопасить данные с помощью HASP?

Блог компании MTS AI Python *IT-инфраструктура *Информационная безопасность *
Tutorial

Всем привет, я Вячеслав Жуйко – Lead команды разработки Audiogram в MTS AI.

При переходе от On-Cloud размещений ПО на On-Premises в большинстве случае перед вами неизбежно встанет задача защиты интеллектуальной собственности – и она особенно критична для рынка AI, где задействуются модели, обладающие высокой ценностью для компании. К тому же, в этой сфере широко используется интерпретируемый язык Python, ПО на котором содержит алгоритмы, являющиеся интеллектуальной собственностью компании, но фактически распространяется в виде исходных кодов. Это не является проблемой для On-Cloud решений, но в случае с On-Premises требует особой защиты как от утечек кода, так и самих данных.

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

Итак, обо всем по порядку
Рейтинг 0
Просмотры 366
Комментарии 0

Эволюция игрового серверного фреймворка на Python. Часть 2 из 2. Слои логики

Python *Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *Разработка игр *
Tutorial

В прошлый раз мы отделили логику от инфраструктуры и разбили последнюю на четыре слоя: Server → Parser → Application → Repository. Классы инфраструктуры составляют основной фреймворк, который берет на себя всю рутинную работу, а нам предоставляет писать одну только логику.

Логика состоит из контроллеров, которые составляют пятый и пока что последний слой. Они полностью независимы не только от инфраструктуры (им доступно только хранилище), но и друг от друга. Контроллеры — это, на данный момент, базовые единицы бизнес-логики.

Если сильно обобщить, то контроллеры занимаются преобразованием одних команд в другие с сопутствующим изменением состояния приложения (Repository). В зависимости от команды и текущего состояния пользователя Application выбирает соответствующий контроллер и передает ему ссылку на Repository. Контроллер обрабатывает команду, изменяет состояние хранилища и возвращает другие команды, которые должны быть отправлены инфраструктурой по назначению. В общей схеме контроллеры занимают промежуточное место между движком и хранилищем:

... → Application → Controller → Repository.

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

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

При такой организации кода отдельные игры — это лишь соответствующая настройка и использование классов из жанровой библиотеки. Идеальный проект тогда будет состоять вообще из одного main-скрипта в пару строк и yml-файла конфигурации.

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 383
Комментарии 0

Нормализуем логи OpenFeign

Java *
Перевод
Tutorial

Стандартный логгер OpenFeign предоставляет весьма неудобный подход в логировании коммуникаций — он записывает запрос отдельно от ответа, причём каждый заголовок и тело - это отдельная строка логов.

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

Решение ‘Normalized Logger’ нацелено исправить этот изъян - этот логгер собирает в одну запись будущего лога запрос и ответ - теперь они не будут разбросаны.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 205
Комментарии 0

Интеллектуальная собственность на шрифты: как защитить и как не нарушить

Блог компании Онлайн Патент Типографика *Патентование *Дизайн

Шрифты — объект интеллектуальной собственности, о котором часто забывают, хотя они используются почти везде. Нарушение авторских прав на шрифт может притаиться где угодно — на этикетке макарон, книжной обложке и даже в оформлении телешоу. Недавно такой конфликт даже проявился в политике. В июне 2022 года площадь в Москве переименовали в площадь ДНР и украсили ее тематическими баннерами. Украинские дизайнеры Олесь Гергун и Евгений Анфалов заявили*, что в оформлении баннеров был незаконно использован их шрифт KTF Jermilov, разработанный специально в поддержку Украины.

В юридическом порядке отстоять свои права украинцы вряд ли смогут. Но если бы они находились в российском правовом пространстве или «дружественном» государстве, у них были бы все шансы на победу — в таких разбирательствах суды обычно встают на сторону дизайнеров. Рассказываем как защитить интеллектуальную собственность на свой шрифт и не нарушить чужие права вместе с сотрудницей «Онлайн Патента»,  патентной поверенной Еленой Купцовой и Сергеем Бобрышевым, коммерческим директором компании «ПараТайп», крупнейшего российского магазина шрифтов. 

Читать далее
Рейтинг 0
Просмотры 272
Комментарии 1

Security Week 2230: утечка данных через кабель SATA

Блог компании «Лаборатория Касперского» Информационная безопасность *
Исследователь Мордехай Гури из израильского университета Бен-Гуриона опубликовал на прошлой неделе новую работу, расширяющую достаточно специфическую область знаний в сфере безопасности: методы кражи данных из систем, отключенных от сети. При отсутствии подключения к интернету (или хотя бы к локальной сети внутри организации, в которую можно проникнуть) для эксфильтрации данных можно использовать только непрямые, зачастую даже неочевидные, каналы связи. Типичная сфера для применения таких трюков — максимально защищенные от внешнего вмешательства управляющие компьютеры в промышленности.



В свежем исследовании в качестве средства утечки данных были изучены SATA-кабели, к которым подключен жесткий диск или SSD в системном блоке. Автор работы подтвердил, что взаимодействие контроллера SATA с накопителем приводит к паразитному радиоизлучению от кабеля на частоте около 6 гигагерц. Отправляя специальную последовательность команд на чтение или запись данных, исследователь смог передать на радиочастотах информацию с изолированного от сети компьютера.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 871
Комментарии 4

Ночь с 25 на 26 июля 2022. Луна вблизи Венеры

Научно-популярное Астрономия


Главным астрономическим явлением предстоящего темного времени станет сближение Луны и Венеры. Но этим период времени от захода до восхода Солнца не исчерпывается.

О всем по порядку



В южных широтах начинается период видимости Меркурия. Сейчас самая близкая к Солнцу планета удалилась от него на на 10 градусов к востоку, и это теоретически достаточно для того чтобы заметить Меркурий в лучах вечерней зари. Но справедливо это лишь для экваториальных, тропических и — возможно — для субтропических широт. Проблема в том, что Меркурий сейчас перемещается вдоль эклиптики впереди Солнца, а эклиптика к востоку от Солнца опускается к югу — склонение Меркурия меньше Солнечного, а значит в средних северных широтах Меркурий зайдет вскоре после Солнца, или даже одновременно с ним. Например, в Москве в момент касания края солнечного диска линии горизонта высота Меркурия составит менее 4 градусов — атмосфера вблизи горизонта часто пыльная, не слишком прозрачная — увидеть Меркурий на столь небольшой высоте и непосредственной близости к Солнцу будет крайне сложной задачей.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 525
Комментарии 0

«Программировать не сложно — сложно не разочароваться в процессе»

Программирование *
Перевод

В детстве у меня была Mattel Auto Race — портативная игровая консоль со встроенным LED-экраном с красными светодиодами, элементами управления, одной игрой и динамиками. Почему-то я однажды о ней вспомнил и субботним вечером решил создать версию игры, используя p5.js. Сначала дела шли хорошо: я поработал над встречными автомобилями и логикой создания и удаления автомобилей. Затем я решил немного усложнить игру, добавив немного рандома в процесс появления автомобилей.

Вот тогда я столкнулся с проблемами. Что-то было не так с тем, как я управлял таймингом — я никак не мог заставить машины появляться в нужном мне порядке. Повозившись с разными вариантами, я так и не понял, что не так, и разочаровался. Прошло 2 дня, а я так и не могу вернуться к проекту, чтобы не сталкиваться с досадой и чувством разочарования.

Но оказалось, что так и должно быть.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 1.6K
Комментарии 10

Разложить по полочкам: как мы научили Облако сортировать фотографии по лицам

Блог компании VK Обработка изображений *Машинное обучение *Облачные сервисы *

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

Мы — Сергей Тарасенко, менеджер продуктов Облако и Диск-О, и Арсений Зорин, руководитель группы бэкенд-разработки — расскажем о новом инструменте, который экономит время пользователей: автоматической сортировке фотографий внутри папки по лицам. Именно сортировке: вы можете быстро выбрать изображения с конкретными людьми, но не идентифицировать их.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 412
Комментарии 1

Дайджест недели от Apple Pro Weekly News (18.07 – 24.07.22)

Гаджеты Компьютерное железо Смартфоны IT-компании

Apple выпустила общедоступное обновление iOS и других систем, но удаляет некоторые игры из Apple Arcade, ещё компании присудили оборотный штраф от ФАС России, а также стало известно какие ещё чипы установлены в новом MacBook Air. Всё это и многое другое – в свежем дайджесте Apple Pro Weekly News, переходим к подробностям!

Перейти к новостям
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 305
Комментарии 0

Сделаем защищенный DNS снова быстрым. DNS over QUIC

Блог компании OTUS Информационная безопасность *Системное администрирование *Сетевые технологии *DNS *

Протокол DNS (Domain Name System Protocol) является одним из важнейших инфраструктурных протоколов для поддержки сети Интернет и первоначально он разрабатывался для максимальной производительности и возможности распределенного хранения неограниченного числа доменных зон. DNS может функционировать поверх UDP-протокола и это уменьшает накладные расходы на установку соединения и избыточный трафик в сети. Но одной из важнейших проблем стала безопасность обмена данными, поскольку клиент в первоначальном варианте протокола не может проверить достоверность информации и это может приводить к подмене ip-адресов злоумышленниками с переадресацией клиента на фишинговый сайт.

Для решения этой проблемы были введены расширения DNSSEC для генерации цифровой подписи ответа. Но сам запрос и ответ при этом не шифровались, что могло быть использовано для ограничения доступа к определенным доменам или для получения на транзитных узлах статистики доступа к хостам. Частично эту проблему решило использование инкапсуляций DNS-over-TLS (DoT, использует TLS для шифрования UDP-дэйтаграмм) и DNS-over-HTTPS (DoH, передает запросы и ответы поверх HTTPS-подключения), которые функционируют поверх TCP. В первом случае запрос более компактный (но может быть обнаружен по анализу трафика), во втором DNS-диалог неотличим от подключения к сайту или веб-сервисам, но при этом существенно увеличивает избыточной трафик (даже при использовании HTTP/2), а также вынужденно добавляет заголовки (которые могут использоваться для трекинга и перехвата cookies). Но можно ли как-то объединить преимущества UDP и DoH? Встречаем DNS-over-QUIC, который был утвержден в RFC9250 как Proposed Standard.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1.1K
Комментарии 2

Осознанные сновидения. Зачем нужны, как вызвать, какие последствия?

Мозг

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

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

Читать далее
Всего голосов 28: ↑13 и ↓15 -2
Просмотры 3.5K
Комментарии 12

Паттерны проектирования в Dart

Блог компании OTUS Анализ и проектирование систем *Dart *Flutter *

В последние годы растет популярность фреймворка для кроссплатформенной разработки приложений Flutter, а вместе с ним вторую жизнь получил и язык программирования Dart. Dart создавался как потенциальная замена JavaScript и мог бы занять нишу, которая сейчас принадлежит TypeScript, но по ряду причин он так и оставался длительное время "одним из проектов Google", который не был оценен ни для использования в web (после транспиляции в JavaScript), ни для создания серверных или десктопных приложений.

При этом компилятор Dart создает оптимизированный высокопроизводительный код для основных операционных систем и может также использоваться для компиляции в другие аппаратные архитектуры (например, для микроконтроллеров) и, в целом, Dart может использоваться как язык общего назначения для создания серверных приложений (Shelf, Aqueduct), устройств умного дома (с целевой платформой ARM и пакетом dart_periphery) и, конечно, десктопных, мобильных и веб-приложений (Flutter).

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 533
Комментарии 0

Чат-боты vs email-рассылки

Мессенджеры *Интернет-маркетинг *Повышение конверсии *Контент-маркетинг *Email-маркетинг *
Из песочницы

Лиды дорожают, многие идут в D2С. Какая рассылка эффективнее: старая добрая электронка или прямое сообщение в мессенджере?

Сравнил по таким критериям: открываемость письма, расходы, наличие интерактива, какой-нибудь анализ поведения и как быстро можно запустить.

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Просмотры 287
Комментарии 0

Поиск работы за рубежом. Чек-лист для соискателя-мигранта

Я пиарюсь

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

Читать далее
Всего голосов 9: ↑3 и ↓6 -3
Просмотры 1.3K
Комментарии 5

Общий обзор методов резервного копирования

Блог компании RUVDS.com Системное администрирование *Резервное копирование *Хранение данных *
Перевод

Решения по резервному копированию для окружений VMware и Hyper-V отличаются многими аспектами, которым можно посветить целую обширную статью. В этой же публикации мы разберем только один из этих аспектов – типы бэкапа. Ниже представлен краткий обзор каждого из традиционных (полный, инкрементальный и дифференциальный) и более свежих (бесконечно-инкрементальный и синтетический) методов резервного копирования, а также их модификаций (зеркальный, обратно-инкрементальный, смарт-бэкап и непрерывный). Это позволит вам понять, чем они отличаются, и какие преимущества каждый из них обеспечивает.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 1.1K
Комментарии 0

Виды Application Security Testing. Как не запутаться среди SAST, DAST и IAST

Блог компании PVS-Studio Информационная безопасность *Программирование *Управление разработкой *DevOps *

Какие плюсы есть у SAST? Чем он отличается от DAST? Что такое IAST? Что значат все эти слова?! Об этом (и не только) расскажем в статье-разборе основных видов Application Security Testing (далее AST).


Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 341
Комментарии 0

Льготы для ИT-организаций: фискальный режим становится благоприятнее (Часть 2)

IT-компании

Сфера ИТ имеет свои отличительные особенности, которые государство старается учитывать для улучшения условий ведения бизнеса. Принят новый пакет мер, направленный на установление благоприятного фискального режима для успешной работы ИТ-компаний.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 353
Комментарии 0

Я попробовала Firefox, и теперь не могу вернуться на Chrome

Блог компании Дата-центр «Миран» Firefox Google Chrome Расширения для браузеров Браузеры
Перевод


Нам кажется, автор довольно ясно и лаконично сформулировала основные преимущества Firefox. Добавим только, что этот браузер — по сути единственная оставшаяся альтернатива для монополии Google Chrome (и движка Chromium)

2008-й год. Я два года счастливо сидела на Firefox после болезненного, но неизбежного расставания с Internet Explorer. Но по учебной и профессиональной необходимости пришлось перейти на Chrome.

В основном, Chrome меня вполне устраивал. Он представил некоторые уникальные фичи, которых у Firefox не было. Например, синхронизация вкладок между устройствами или сохранение всех закладок в одном профиле, который действует на любых компьютерах.
Читать дальше →
Всего голосов 39: ↑35 и ↓4 +31
Просмотры 11K
Комментарии 69

Аллегория зрения, или Масштабно о масштабах

Блог компании Нанософт разработка CAD/CAM *Инженерные системы *
Tutorial

В XVII веке среди художников-живописцев большой популярностью пользовалась идея написания картин внутри картины. Ярким примером служит знаменитая серия полотен-кунсткамер Виллема ван Хахта. Здесь можно найти более сотни действительно существующих произведений, в том числе и знаменитейших шедевров. Любители искусства по сей день спорят о названиях и авторах нескольких картин и скульптур, не прошедших идентификацию.

От настолько кропотливого творения захватывает дух! Только представьте, какого труда и профессионализма требует воспроизведение сотни мировых шедевров в собственной картине. Но с появлением и развитием технологий создавать подобные картинные галереи не составит большой сложности. В САПР, например, это легко можно сделать с помощью видовых экранов – здесь главное не запутаться в масштабах.

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 362
Комментарии 7