Как стать автором
Обновить
15
0
Кудрявцев Денис @kuda78

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

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

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

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

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

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Комментарии2

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

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии8

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

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров25K

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

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

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

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров7K

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

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

К сценариям
Всего голосов 11: ↑10 и ↓1+9
Комментарии6

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

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров13K

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

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

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

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров21K

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

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

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

Array: for/foreach или unsafe

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8K

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

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

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

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров9.1K

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

Почему так и что можно сделать?
Всего голосов 16: ↑16 и ↓0+16
Комментарии15

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

Уровень сложностиСредний
Время на прочтение47 мин
Количество просмотров21K

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

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

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

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров21K

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

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

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

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

Kodi c The Movie Database (TMDB) без VPN
Всего голосов 26: ↑25 и ↓1+24
Комментарии25

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

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров52K

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

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

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

Открыть доступ в СБОЛ;drop table mortgage;
Всего голосов 81: ↑72 и ↓9+63
Комментарии242

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

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

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

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

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

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

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

Читать далее
Всего голосов 148: ↑147 и ↓1+146
Комментарии18

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

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

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

Узнать, как
Всего голосов 49: ↑48 и ↓1+47
Комментарии61

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

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

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

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

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

Читать далее
Всего голосов 45: ↑29 и ↓16+13
Комментарии87

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

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

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

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

Читать далее
Всего голосов 71: ↑69 и ↓2+67
Комментарии34

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

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


Peace, Хабр!


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


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


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

Читать дальше →
Всего голосов 229: ↑196 и ↓33+163
Комментарии712

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

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

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


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

Читать дальше →
Всего голосов 41: ↑32 и ↓9+23
Комментарии103

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

Время на прочтение7 мин
Количество просмотров6.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-папки. Рассказали на ретро командам, как и что делать.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии12

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

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

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

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

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Комментарии7
1
23 ...

Информация

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