Pull to refresh
15
0
Кудрявцев Денис @kuda78

User

Send message

Как правильно замерить скорость работы кода в .NET

Reading time5 min
Views6.1K

Поговорим о бенчмаркинге кода: о том, что это такое и для чего нужно. А также покажем, как на основе результатов бенчмаркинга оценить производительность кода в проекте, написанном на C#.

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments2

Обнаружение движущихся объектов с помощью OpenCV с использованием обнаружения контуров и вычитания фона

Reading time12 min
Views13K

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

Читать далее
Total votes 14: ↑13 and ↓1+12
Comments8

.NET 7 против российской криптографии

Level of difficultyMedium
Reading time9 min
Views25K

Разрабатывая один проект на свежем .NET 7 столкнулся с необходимостью подписывать данные с использованием отечественных криптоалгоритмов. Ранее, в .NET Framework хорошая поддержка работы с со сторонними криптопровайдерами, реализующими семейство алгоритмов ГОСТ (CryptoPro CSP, ViPNet CSP и пр.), шла "из коробки". К сожалению, в новые версии фреймворка часть ранее работающего функционала по работе с CMS-сообщениями не попала, и пришлось восполнять пробел надёжными дедовскими методами, т. е. с помощью старого доброго WinAPI.

Читать далее
Total votes 74: ↑74 and ↓0+74
Comments14

Современные Source Generators в .NET, часть 2

Level of difficultyMedium
Reading time19 min
Views7K

Это вторая часть серии (надеюсь) статей про современные Source Generators в .NET. Мотивация и общее описание есть в первой части, рекомендую начинать знакомство с неё.

В этой части мы поговорим про типовые сценарии разработки генераторов.

К сценариям
Total votes 11: ↑10 and ↓1+9
Comments6

Reddit для программистов

Level of difficultyEasy
Reading time14 min
Views13K

Эта статья посвящена одной популярной и активной площадке на просторах Интернета — Reddit. Кто не в курсе, Reddit — это платформа, где сосуществуют тысячи сообществ по интересам. Мы любим Reddit за честность, открытость и любознательность её пользователей. Если вы программист, особенно начинающий, и ещё не слышали про Reddit — эта статья обязательна для прочтения. А если сисадмин? Для вас тоже найдётся сабреддит! В этой статье мы собрали сабреддиты для всех-всех, каким-либо образом связанных с IT-индустрией. Даже для наших любимых HR! Что же такое Reddit?

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments29

Полгода самостоятельного изучения .NET – не повторяйте моих ошибок

Level of difficultyEasy
Reading time8 min
Views21K

Доброго времени суток! Меня зовут Васьен, я – начинающий backend разработчик, поставивший себе цель переучиться из экономиста в программисты с нуля. Обучение я начал в конце сентября прошлого года и на текущий момент выходит, что прошло ровно полгода с момента начала пути. Все нормально, я еще не вкатился и неизвестно, когда "вкачусь", я осознаю, что много чего осталось не изученным, в каких областях имею лишь очень поверхностные представления и просто продолжаю дальше учиться.

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

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments29

Array: for/foreach или unsafe

Level of difficultyMedium
Reading time6 min
Views8K

Я много работаю с массивами, поэтому хотел бы освежить тему того, как наиболее быстро по нему перемещаться в C#. Речь пойдёт об экономии наносекунд и оптимизации на уровне IL-кода. Кажется, что в 99% случаев вам это знать не нужно и задумываться об этом не стоит. Тем не менее, для горячих сценариев или если вы из high-load или геймдева, вам это может пригодиться.

Читать далее
Total votes 16: ↑15 and ↓1+14
Comments12

Современные (инкрементные) Source Generators в .NET

Level of difficultyMedium
Reading time18 min
Views9K

В процессе написания source generators для наших внутренних нужд я столкнулся с тем, что на большой кодовой базе обычные генераторы работают, скажем так, небыстро, существенно влияя на производительность IntelliSense в Visual Studio (который и так не то чтобы порхает как бабочка в таких условиях). Наткнувшись на описание более современного API — incremental generators, я обрадовался и обновил наши генераторы, чтобы они его реализовывали, однако ожидаемого прироста скорости не увидел (он был, но незначительный).

Почему так и что можно сделать?
Total votes 16: ↑16 and ↓0+16
Comments15

Как сайты определяют ботов? Деобфускация Akamai Bot Manager 2.0

Level of difficultyMedium
Reading time47 min
Views21K

Akamai Technologies - американская компания, занимающаяся защитой веб-ресурсов от ботов с помощью своего продукта Bot Manager. В её портфолио числятся такие гиганты ритейла, как Nike, Adidas и Asos, для которых особенно важен контроль за ботами, автоматизирующими процесс выкупа редких/лимитированных товаров с целью их перепродажи по завышенной цене. В данной статье мы взглянем на скрипт антибота Akamai и рассмотрим, какие методы обнаружения через JavaScript в нём используются. Не знаете почему обнаруживается ваш selenium? Добро пожаловать!

Читать далее
Total votes 106: ↑106 and ↓0+106
Comments37

Kodi перестал обновлять информацию о фильмах, потому что TMDB заблокировал доступ пользователям из России

Level of difficultyEasy
Reading time3 min
Views21K

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

The Movie Database (TMDB) - это популярная редактируемая пользователями база данных фильмов и сериалов, которая содержит описания большинства фильмов и обложки на русском языке.

При помощи своего парсера Kodi может идентифицировать фильм по названию файла, а затем скачать описание, обложку, актёров и многое другое с TMDB.

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

Kodi c The Movie Database (TMDB) без VPN
Total votes 26: ↑25 and ↓1+24
Comments25

Товарищ майор в клетке или как я изолировал Яндекс Браузер (для использования СБОЛа)

Level of difficultyMedium
Reading time4 min
Views52K

Еще с весны было известно, что Сбербанк потерял возможность продлевать свои сертификаты. Новые же сертификаты были выписаны одним из национальных УЦ, чьего корневого сертификата в операционных системах нет. Однако СБОЛ продолжал работать, и несмотря на предупреждения, я откладывал решение будущего вопроса.

Несколько дней назад я не смог войти в СБОЛ. Решить проблему можно двумя путями: установив себе рутовый сертификат в систему или установив Яндекс.Браузер.

Устанавливать рутовый сертификат не хотелось, а Яндекс.Браузер у нас запрещен политикой компании. Как выкрутиться с минимальными потерями и не поссориться с безопасниками - читайте под катом.

Открыть доступ в СБОЛ;drop table mortgage;
Total votes 81: ↑72 and ↓9+63
Comments242

Как отобразить таблицу на экране мобильного устройства: решения

Reading time2 min
Views18K

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

Читать далее
Total votes 61: ↑60 and ↓1+59
Comments17

Законы мира информационных технологий

Reading time5 min
Views26K

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

Читать далее
Total votes 148: ↑147 and ↓1+146
Comments18

Реанимируем старые серверные корпуса с блоками питания HP Common Slot

Reading time5 min
Views17K

Мы в HOSTKEY много лет используем блоки питания HP Common Slot мощностью от 460 до 1400 Вт. Они эффективны, надежны в эксплуатации и легко интегрируются с серверами различных производителей. Если у вас скопились ненужные серверные корпуса, не торопитесь сдавать их в утиль: есть шанс сэкономить €500 – €600 на покупке новой платформы.

Узнать, как
Total votes 49: ↑48 and ↓1+47
Comments61

Нужен бесплатный SSL-сертификат? Легко

Reading time3 min
Views142K

Если вам нужен SSL-сертификат, но вы не являетесь специалистом в веб-технологиях, то эта заметка для вас. Описан простой способ выпуска базового SSL-сертификата Let’s Encrypt в ручном режиме, на локальном компьютере с Windows, с помощью приложения Certbot. Этот способ позволяет получить файлы SSL-сертификата в папку на своём локальном компьютере, после чего можно установить сертификат на свой хостинг.

Потребность в SSL-сертификатах возникла у меня в связи с тем, что срок старых истёк, а создать новые оказалось невозможным из-за возникших ограничений на доменные зоны RU и РФ. Если у вас такая же проблема или вам просто надоело искать веб-сервис для выпуска SSL-сертификатов, то эта заметка вам поможет.

Поскольку я пока не знаю наилучшего пути, то ниже просто опишу ту последовательность действий, которую сам выполнил и которая позволила мне создать SSL-сертификаты для десяти своих доменов (в том числе в зонах RU и РФ), а значит и вам этот способ может помочь.

Читать далее
Total votes 45: ↑29 and ↓16+13
Comments87

Сказка про Guid.NewGuid()

Reading time11 min
Views24K

C#. Guid.NewGuid(). Linux. Windows. Randomness or Uniqueness. RNG and PRNG. Performance. Benchmarking.

Цель нашей сегодняшней сказки — развлечься как следует. Детективная история в поисках потерянного перфоманса с красивым финалом и эффектным результатом непосредственно связана с набором слов из предыдущего абзаца.

Читать далее
Total votes 71: ↑69 and ↓2+67
Comments34

Россия 2022: как не потерять все (или хотя бы попытаться)

Reading time6 min
Views194K


Peace, Хабр!


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


Сегодня пошел 8-ой день, как от этой уверенности почти ничего не осталось.


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

Читать дальше →
Total votes 229: ↑196 and ↓33+163
Comments712

Своя docking station для ноутбука

Reading time4 min
Views21K
main

Все началось с того что мой стационарный компьютер устарел и перестал удовлетворять мои требованиям по работе (а так же по играм). В частности на нем невозможно нормально работать с виртуальными машинами. Решил его обновить, с учетом того что у меня хороший корпус и бесшумный блок питания. Но в руки мне попал ноутбук с процессором intel core i7-7700hq 2.80 GHz, 16 GB оперативки, NVIDIA GeForce GTX 1050 Ti, SSD 256 GB.


В нем все замечательно, только мало места на диске и всего 3 usb выхода, два usb-c, третий обычный usb. Нет ни одного выхода на мониторы, ни ethernet слота. Я пользуюсь проводным подключением, мне больше нравится. В итоге задумался как из того что имею сделать то, что мне нужно.

Читать дальше →
Total votes 41: ↑32 and ↓9+23
Comments103

Как мы теперь реагируем на аварии на проде (и пара примеров)

Reading time7 min
Views6.7K

Когда отлетает сертификат.

16:45: выкатываем изменение на один из проектов, добавился новый компонент. Автотесты видят нормальные 200-е ответы страниц, компонент проверяется вручную на страницах сайта.
17:41: QA сообщают, что часть автотестов главной страницы не отработана. На главной какой-то другой контент, а не главная.
17:42: аварийный слак-бот Валентин маршрутизирует инцидент, определяет команду, которая релизила новое обновление, создаёт конференц-кол и вызванивает каждого.
17:47: команда принимает решение откатывать релиз, на главной показывается одна из внутренних страниц.
18:16: у команды недостаточно прав на запуск отката, призывается команда С0.
18:22: запуск отката.
18:35: успешный откат.

Постмортем: с 16:45 до 18:35 пользователи видели не главную страницу, а одну из внутренних. Визуально разница между ними не очень большая, но на новой главной можно было только записаться на первый бесплатный урок, никакого дополнительного контента нет. Статистическая разница в динамике заявок говорит, что потери небольшие, примерно 20 тысяч рублей. Корневая причина: через ревью и первичное тестирование прошло изменение, которое заменяет главную:


В модуле был импортирован модуль FreeLessonModule. А внутри FreeLessonModule прописываются роуты:


Прошёл импорт модуля вне описания корневых роутов, что привело к дописыванию нового правила роута, которое подменило главную. Избежать этого можно, не импортируя модули из shared-папки. Рассказали на ретро командам, как и что делать.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments12

Код ревью с учётом человеческих слабостей

Reading time7 min
Views11K

Проверка кода (code review) — отличный инструмент для повышения качества кода, но он не учитывает один факт: отправляют и просматривают код люди, а они устают, теряют сосредоточенность, ленятся, да и просто испытывают эмоции в самые неожиданные моменты.

Поэтому хочу представить свое видение хороших и плохих практик код ревью с учётом человеческих особенностей.

Читать далее
Total votes 27: ↑25 and ↓2+23
Comments7
1
23 ...

Information

Rating
Does not participate
Registered
Activity