Search
Write a publication
Pull to refresh
0
@DeepXread⁠-⁠only

User

Send message

Как я решил протестировать нагрузочную способность web сервера

Reading time15 min
Views12K

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

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

И так дано - web сервер. Написан на .net core. Сервер используется в корпоративной разработке.

Посмотреть, как работает можно, например здесь – бесплатный сервис хранения ссылок http://linkin.link. Про него я писал тут.

Читать далее

Описание элементов перечислений в Swashbuckle

Reading time6 min
Views8.7K

Swagger — замечательная вещь! Он позволяет легко посмотреть, каким API обладает ваш сервис, сгенерировать клиента для него на различных языках и даже попробовать поработать с сервисом через UI. В ASP.NET Core для поддержки Swagger существует пакет Swashbuckle.AspNetCore.


Но есть один недостаток, который мне не нравится. Swashbuckle способен строить описания методов, параметров и классов, основываясь на XML-комментариях в коде .NET. Но он не показывает те описания, которые применяются непосредственно к членам перечислений.

Читать дальше →

Добавляем CRUD в ASP.NET Core проект за 10 минут с помощью EasyData

Reading time6 min
Views11K

image


Одной из первых задач для большинства бизнес-приложений на ASP.NET Core является реализация операций CRUD (Create, Read, Update, Delete) для основных объектов, с которыми работает ваше решение.


Каждый разработчик, которому нужно решить эту задачу, знает, что создание CRUD-страниц и форм — очень скучный и трудоемкий процесс.


Если делать это вручную, то получится очень медленно и наверняка с кучей недоработок (пропущенные поля, забытые валидаторы и т.д.).


Можно воспользоваться инструментом scaffolding'а, доступным в Visual Studio. Но даже в этом случае это будет совсем не быстрый процесс, поскольку его нужно запускать для каждого класса модели. В итоге вы получаете множество .cs/.cshtml файлов, которые нужно поддерживать и атуализировать по мере изменений в классах модели или просто когда нужно что-то исправить в поведении или внешнем виде CRUD страниц. Если количество сущностей в вашей БД превышает десяток, то весьма велики шансы того, что файлы для реализации CRUD операций занимают больше 50% всей кодовой базы вашего проекта. Более того это решение все равно не обеспечивает некоторых важных, а порой и необходимых функций, таких как разбитие на страницы в режиме просмотра (pagination) или банальные поиск/фильтрация.


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

Читать дальше →

Cоздание переиспользуемых Linq фильтров (построителей предикатов для Where), которые можно применять для разных типов

Reading time4 min
Views5.1K

Способ создания переиспользуемых Linq фильтров (построителе предикатов для условия Where), которые можно применять для разных типов объектов. Поля объектов для фильтрации указываются с помощью MemberExpression.

Способ подходит для Entity Framework, включая Async операции.

Читать далее

[В закладки] Кунг-фу на клавиатуре. Искусство сочетать клавиши

Reading time17 min
Views51K

Сочетания клавиш для тех, кто хочет войти в IT и не только

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

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

В конце вы увидите, как все эти знания можно использовать при работе с самым популярным на данный момент текстовым редактором Visual Studio Code.

Читать далее

Улучшаем биндинги в CSharpForMarkup

Reading time5 min
Views1.4K

Недавно мне пришлось разбираться с Xamarin Forms и на глаза попалась такая штука как CSharpForMarkup. Она показалась очень интересной, поскольку позволяет использовать стандарный C# вместо XAML, тем самым нивелируякучу неудобств связаных с XAML. Но реализация биндингов мне показался недостаточно хорошой. Поэтому я начал её улучшать при помощи expression-ов и Roslyn анализаторов. Кому интересно что с этого получилось прошу под кат.

Читать дальше →

2D-to-3D: конструируем сервис для экспериментов с реконструкциями формы

Reading time8 min
Views8.8K

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

кратко обсудим что из себя представляет задача 2D-to-3D, 

взглянем на наиболее успешные алгоритмы и работы, 

сравним параметрический и непараметрический подходы к восстановлению формы лица и тела человека,

разберем как устроен наш сервис для апробации моделей пространственной реконструкции.

Всех, кто хотел бы на манер “Чудес науки” переместить девушку с обложки глянцевого журнала к себе в комнату хотя бы в AR, просим под кат.

Читать далее

Обеспечение безопасности базы данных PostgreSQL

Reading time10 min
Views48K

Базы данных — это Святой Грааль для хакеров, поэтому их необходимо защищать с особой тщательностью. Это первая из серии статей, в которых мы дадим обзор best practice в обеспечении безопасности баз данных. Мы начнем с одной из самых популярных СУБД с открытым исходным кодом, PostgreSQL, и рассмотрим несколько уровней безопасности, о которых стоит задуматься:

Читать далее

По зубам: гигиена, часть 1

Reading time7 min
Views20K

На это всегда не хватает времени: как вечером хочется поскорее пойти спать, а добраться до зубной щётки сродни подвигу, так и на приёме у стоматолога рассказ о гигиене зачастую ограничивается лаконичным, но явно недостаточным советом: «Купите какую-нибудь щётку средней жёсткости и какую-нибудь пасту с травами и чистите зубы 2 раза в день».



Зубной налёт (макрофото с электронного микроскопа)

Читать дальше →

Заказчик не платит: как защититься или как забрать свой аванс у арендодателя?

Reading time8 min
Views9.4K

В некоторых случаях никак. В некоторых можно. Погнали! 

За 20+ лет работы было у нас несколько случаев когда заказчики решили не платить. А у кого их не было?!

Для 99% заказчиков лучшей защитой от неоплаты является качественная работа. Однако, есть 1%, которые не платят уже забрав услуги или даже товар. С товаром проще, а с услугами дико сложно. Сейчас объясню. Есть пункт 1 статьи №782 ГК РФ, в котором сказано: “Заказчик вправе отказаться от исполнения договора возмездного оказания услуг при условии оплаты исполнителю фактически понесенных им расходов.”

Читать далее

Уменьшить размер консольного .NET 5.0 приложения

Reading time3 min
Views5.5K

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

В чём проблема и как решить?

Читать далее

Усилитель интернет-сигнала: принцип работы и технологии, за счет которых сигнал передается на большое расстояние

Reading time12 min
Views53K

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

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

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

Читать далее

Raspberry Pi, небольшой помощник в удаленной работе (два варианта дистанционного включения ПК)

Reading time10 min
Views22K

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

Реализацию осуществил двумя способами: первый с помощью SIP сервера Freeswitch, посредством телефонного соединения через IVR меню; второй способ с помощью системы домашней автоматизации ("Умный Дом") MajorDoMo.

Устройство, выполняющее отправку «магического пакета» - мини компьютер Rasberry Pi Model 3B, в первом случаю выполняет роль IP АТС, во втором сервер «Умного Дома».
Первоначальная идея была создание возможности удаленного управления элементами "Умного Дома" при отсутствии (блокировки, нестабильной связи и т.д.) сети Internet или отдельных сервисов. Однако для написания статьи я выбрал наиболее актуальное (для меня) применение. Итак, основная задача: набрав с телефона номер своего «Умного дома» и введя подтверждение, дистанционно включить свой ПК.

Читать далее

Восстанавливаем RAID 5, 1 или 0 при поломке одного или нескольких дисков

Reading time3 min
Views43K
В нашем пошаговом руководстве, я расскажу о нескольких методах восстановления информации с программных RAID 5, 0 или 1, которые собраны под «Linux».


Погружаемся в логические свойства CSS

Reading time5 min
Views18K

Поддержка логических свойств CSS со временем становится лучше. Однако мне по-прежнему трудно запомнить их, когда использую их в проекте. Что означают start и end? Несколько сложно охватить все детали без проб и ошибок.

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

Приятного чтения!

Таинство отбеливания пожелтевшего пластика

Reading time9 min
Views64K

Если вы являетесь участником сообщества ретро-геймеров или любителей ретро-компьютеров, то у вас наверняка есть винтажные устройства, которые под гнетом лет поблекли и начали желтеть. Вы также могли слышать о методике Retr0bright или даже смотреть различные видео от 8-bit Guy, посвященные этой теме. Но самая суть все равно остается для большинства людей скрыта. Почему пластик желтеет, и что именно происходит в процессе Retr0bright? Да и вообще, безопасно ли использование этой техники для коллекционных экземпляров?
Читать дальше →

Представляем новый справочник по TypeScript

Reading time3 min
Views7.6K

Привет, Хабр! Мы рады сообщить, что бета-версия новой редакции TypeScript Handbook вышла из стадии бета-тестирования и теперь является основным ресурсом нашего веб-сайта для изучения TypeScript!

Читать далее

Пишем установщик на WixSharp. Плюшки, проблемы, возможности

Reading time11 min
Views5.8K

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

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

Читать далее

Подтверждение номеров телефона без SMS

Reading time2 min
Views30K
Сегодня компаниям все чаще нужно верифицировать клиента не только по email, но и по телефонному номеру. Проблем с подтверждением номера по смс две — это дорогой для компании и не всегда безопасный способ — клиенты часто используют временные виртуальные номера.

Предлагаем простой API метод для авторизации номеров телефонным звонком.


Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity