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

Разработка

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

Абстрактные войны: public interface IAbstraction против абстракции

Совершенный код *Программирование *Проектирование и рефакторинг *ООП *

Почти 30 лет назад в классической книге по шаблонам проектирования Design Patterns: Elements of Reusable Object-Oriented Software, авторы сформулировали один из самых известных, но недопонятых принципов в истории программирования:

Program to an interface, not an implementation.

— Erich Gamma et. al, Design Patterns: Elements of Reusable Object-Oriented Software

Зачем "программировать в интерфейсы"?

Давайте разбираться
Рейтинг 0
Просмотры 191
Комментарии 0

Новости

Entity Framework Core и высокая производительность

.NET *Высокая производительность *ASP *

Entity Framework Core является рекомендованным и самым популярным средством взаимодействия с реляционными базами данных на платформе ASP NET Core. Это мощный инструмент который подходит для большинства сценариев, но, как и любой другой инструмент имеет свои ограничения. Долгое время бытовало мнение (и не безосновательно) что Entity Framework не подходит для высоконагруженных систем и в таких сценариях лучше использовать Dapper. Но время идет и Entity Framework развивается, в том числе в плане оптимизации. Помимо улучшения производительности самой платформы .NET, Entity Framework Core для NET 6 имеет ряд настроек и возможностей, призванных значительно улучшить производительность. В этой статье мы рассмотрим Entity Framework Core с точки зрения производительности и сравним его с Dapper используя актуальные версии на момент июля 2022 года. Посмотрим насколько рекомендация "перепишите все на Dapper" актуальна :)

Эта статья будет полезна разработчикам, которые используют Entity Framework Core в ежедневной работе, а также разработчикам высоконагруженных систем для актуализации знаний о возможностях последних версий Entity Framework Core.

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

Как пакетно конвертировать изображения и видео в гифки с помощью FFmpeg минуя CLI

Python *Qt *

Привет, земляне. Многие из вас слышали про набор библиотек FFmpeg, а некоторые его активно используют. Я из их числа, но я не поклонник взаимодействия с приложением посредством текстовых команд, поэтому я предлагаю собственное приложение с графическим интерфейсом для взаимодействия с FFmpeg. Теперь, не нужно изучать текстовый интерфейс, чтобы произвести пакетное конвертирование изображений и видео в GIF-файлы высокого качества.

Пожалуйста, подробнее
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 477
Комментарии 1

Работаем со старым промышленным софтом под linux или как подружить wine и RS-485

Настройка Linux **nix *Промышленное программирование *Производство и разработка электроники *
Из песочницы

В свете недавних указов президента посыпались вопрос от заказчиков, а есть ли %конфигуратор устройства не поддерживаемый цать лет, разработчики которого уволились или сбежали из России% под linux?

В следствие чего была из синей ленты, остатков бубна и обрывочных знаний по linux данная инструкция.

Надеюсь она пригодиться коллегам занимающимся наладкой и эксплуатацией АСУ ТП.

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

Минимизируем 8 рисков в тестировании программного обеспечения для улучшения иммерсивного игрового опыта в AR/VR

Блог компании OTUS Тестирование игр *
Перевод

Почему нужно включать тестирование программного обеспечения в стратегии разработки AR/VR игр и какие риски следует минимизировать, чтобы обеспечить высокое качество программного продукта на основе AR/VR?

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

Интеграция нагрузочного тестирования на Grafana K6 в CI/CD

Блог компании OTUS Тестирование IT-систем *Программирование *DevOps *

Обеспечение надежного функционирования системы при развертывании обновления системы требует запуска тестов разного уровня - от модульных тестов отдельных компонентов до интеграционных тестов, проверяющих в staging-окружении работу системы в целом. Но не менее важны для оценки готовности системы к большой кратковременной пиковой нагрузке (или злонамеренным атакам) выполнение нагрузочных тестов. В июле 2021 года компания Grafana Inc приобрела продукт k6, который изначально был ориентирован на запуск высокопроизводительных распределенных нагрузочных тестов, и это положительно повлияло на его дальнейшее развитие как встраиваемого инструмента для запуска тестов в облачных инфраструктурах или Kubernetes. В этой статье мы рассмотрим один из возможных сценариев использования k6 для тестирования сервиса в конвейере CI/CD.

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

Введение в извлечение сущностей из текста и NER

Python *Natural Language Processing *
Tutorial

Извлечение информации означает создание структурированных данных из неструктурированного текста. На практике задача может выглядеть так: нужно автоматически создать запись в календаре исходя из текста письма, как на рисунке ниже.

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

Простым языком о языковых моделях и цепи Маркова (Markov Chain)

Python *Data Mining *Big Data *Natural Language Processing *
Tutorial

N-граммы 

N-граммы – это статистические модели, которые предсказывают следующее слово после N-1 слов на основе вероятности их сочетания. Например, сочетание I want to в английском языке имеет высокую вероятностью, а want I to – низкую. Говоря простым языком, N-грамма – это последовательность n слов. Например, биграммы – это последовательности из двух слов (I want, want to, to, go, go to, to the…), триграммы – последовательности из трех слов (I want to, want to go, to go to…) и так далее.

Такие распределения вероятностей имеют широкое применение в машинном переводе, автоматической проверке орфографии, распознавании речи и умном вводе. Например, при распознавании речи, по сравнению с фразой eyes awe of an, последовательность I saw a van будет иметь большую вероятность. Во всех этих случаях мы подсчитываем вероятность следующего слова или последовательности слов. Такие подсчеты  называются языковыми моделями.

Как же рассчитать P(w)? Например, вероятность предложения P(I, found, two, pounds, in, the, library). Для этого нам понадобится цепное правило, которое определяется так:

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

Издательство Питер. Колонка редактора

Блог компании Издательский дом «Питер» Профессиональная литература *
image

Привет, Хаброжители! Предлагаем ознакомиться с краткими обзорами новинок, выход которых запланирован на вторую половину 2022 г и которые уже доступны для предзаказа.
Читать дальше →
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 1.9K
Комментарии 5

Wildcard-сертификат Let's Encrypt для внутренних сервисов в Kubernetes-кластере

Kubernetes *
Tutorial

У вас есть кластер, в котором хочется разместить как можно больше рабочих сервисов и продуктов для внутреннего использования, ибо удобно: систему управления версиями, репозиторий Docker-образов, S3-хранилище, базы данных, тестовые среды и т.д. Но есть "но": многие из них, как например, репозиторий Docker-образов, могут работать только с использованием TLS. У вас есть два пути: получить сертификат от одного из сертификационных центров, платных или бесплатных, вроде Let's Encrypt, или сгенерировать самому. Устанавливать на каждого клиента сертификат нашего "левого" самопровозглашённого центра не хочется, поэтому самоподписанный сертификат отпадает. Денег платить каждый год не хочется, поэтому выбираем Let's Encrypt. Но и тут есть проблема (помимо необходимости автоматизации перевыпуска сертификата не реже раза в три месяца): внутренние сервисы нельзя выставлять в публичную сеть, а значит и HTTP-01 вариант подтверждения владения доменом нам недоступен. Остаётся только DNS-01 метод, который имеет свои подводные камни.

В данной статье я расскажу о своём опыте автоматизации выпуска/перевыпуска wildcard-сертификата для домена второго уровня (wildcard, чтобы два раза не вставать, но можно выпускать сертификаты и для каждого отдельного поддомена) для использования внутренними сервисами, расположенными в Kubernetes-кластере, с помощью cert-manager и бесплатного сервиса поддержки DNS-зон Яндекс.Коннект.

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

Добавляем три полезных измерительных прибора в лабораторию верстальщика

Блог компании АО «ГНИВЦ» Расширения для браузеров

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

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

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

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

Дайджест заметок UX-дизайнера за июнь 2022

Анализ и проектирование систем *Usability *Дизайн

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

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

Bug Bounty от Positive Technologies: некоторые вопросы и ответы. Интервью с СРО The Standoff 365 Ярославом Бабиным

Информационная безопасность *Финансы в IT IT-компании

В мире информационной безопасности существует несколько вариантов, как различным компаниям проверить свои продукты или инфраструктуру на возможность взлома. Например, пентест или тестирование на проникновение — оценка безопасности компьютерных систем или сетей с помощью средств моделирования атаки киберпреступников. Для этого проводится анализ системы на наличие потенциальных уязвимостей, с помощью которых можно спровоцировать некорректную работу целевой системы или ее полный отказ в работе. Кроме того, еще есть Bug Bounty, с помощью которой можно помочь компании найти уязвимости и самому заработать денег.

Читать далее
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 657
Комментарии 1

CPPN + музыка. Генерируем музыкальное видео

Алгоритмы *Обработка изображений *Визуализация данных *

Привет, Хабр. Мне не удалось найти русскоязычные статьи, посвященные генерации артов с помощью архитектуры CPPN, поэтому я сам расскажу о том, что можно с ней сделать. Это позволит скрасить пару вечеров и сгенерировать себе, например, обои на рабочий стол. А может и придумать что-нибудь серьезное. 

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

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

Веб-разработчик — Яндекс.Практикум: отзыв о программе. Ошибка или нет?

JavaScript *Учебный процесс в IT Карьера в IT-индустрии
Из песочницы

Хочу поделиться своим собственным опытом учёбы в Яндекс.Практикуме (далее ЯП) 2021-2022 г. по программе веб-разработчик, 10 месяцев (фронтенд).

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 4.4K
Комментарии 14

Полковнику никто не пишет. Отправка писем по SMTP после изменения политики Google. С примером на Python

Python *Google Chrome

Недавно Google изменил политику по отношению к доступу к аккаунту из неизвестных источников. Давно приходили предупреждения, но я до последнего надеялся, что обойдется и не коснется меня. Наивный.

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

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

Papers, please! Как устроены сервисы по распознаванию лиц для идентификации клиента и проверки документов

Python *Разработка мобильных приложений *Обработка изображений *Машинное обучение *Искусственный интеллект

В популярной в свое время игре Papers, please! игрок выполняет роль таможенника, проверяющего документы по все более усложняющимся правилам. Главная игровая механика - проверка документов на соответствие всем нормам, таким как верная дата и место выдачи, соответствие имени и фамилии человека на всех документах, срок действия визы, наличие человека в “черных” списках и тому подобное.

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

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

Идея о «печатном станке»: системные алгоритмы на рынке спортивных событий

Алгоритмы *Математика *Развитие стартапа Финансы в IT
Из песочницы

Традиционно рынок спортивных событий воспринимается обществом весьма негативно. Принято считать, что какой-либо заработок в этой области маловероятен или невозможен вовсе, а мат. аппарат в лице теории вероятностей и математической статистики представляет мало интереса с точки зрения эффективного для заработка применения.

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

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

Российское ПО или каково пить сладкий чай без сахара

Блог компании RUVDS.com Программирование *Управление проектами *Управление продуктом *Софт
Этот велосипед формально на ходу, на нём можно приноровиться ездить. С потерями и ранами, но можно. А нужно?

Когда-то давно я решил пить чай и кофе без сахара. На первых порах было очень сложно и выручал дорогой сахарозаменитель в микротаблетках: 2 штуки и прямо сладко. Очень быстро я стал замечать, что вкус напитков испортился, появилась какая-то неприятная, неописуемая химозинка, которая потом долго держалась во рту и вызывала жажду. Попробовал другой — тот же эффект. В итоге после пары месяцев мучений, стевии и прочих сладких добавок я стал наслаждаться всеми видами чая без сахара, а кофе бросил и пью редко, но с обычным сахаром — вкусно! И если вы думаете, что статья про лишний вес или сахарный диабет, вы ошиблись. Статья про заменители. Точнее, про российское программное обеспечение. Как вы поняли, и сладко, и, похоже, но есть та самая химозинка. Из-за которой противно употреблять. Попробуем разгадать её формулу.

Я нашёл девять слагаемых этой формулы. И они меня, откровенно говоря, опечалили. Скажу сразу, я субъективен и не работал с ПО всех типов и не говорю, что все в чём-то нехороши — например, я видел удачные российские системы управления сервисом, ITSM, CRM, ERP, BPMS и т.д. Но и в эти добротные системы проникает особый дух отечественной разработки, отчасти связанный с пожеланиями пользователей. Впрочем, обо всём по порядку.
Читать дальше →
Всего голосов 68: ↑55 и ↓13 +42
Просмотры 18K
Комментарии 48

Обзор книги «Python. Экспресс-курс», отличная книга для начинающих с нуля

Python *Профессиональная литература *

Всем доброго времени суток!

Публикую обзор книги "Python. Экспресс-курс" от автора Наоми Седера.

Стоит читать? Да! Почему? Опишу в статье.

Python - хороший первый язык программирования, а это отличная книга для его изучения с нуля.

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