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

Разработчик бэкенда

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

Интересные сюрпризы ConcurrentDictionary (+разбор задачи с DotNext 2017 Moscow)

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

Привет всем, кто пишет код для .NET, особенно многопоточный. Редко встретишь потокобезопасный код без потокобезопасных коллекций, а значит, нужно уметь ими пользоваться. Я расскажу о самой популярной из них — ConcurrentDictionary. В ней спрятано на удивление много интересных сюрпризов: как приятных, так и не очень.


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


Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии3

Делаем своими руками: KVM Over IP при помощи Raspberry Pi

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

На Хабре вряд ли стоит рассказывать о программах удаленного доступа к ПК, вроде TeamViewer. Но все это работает лишь в среде операционной системы. А вот доступа к BIOS, возможности установки, переустановки и прочих операций с операционной системой нет. Для всего этого есть иные решения. Одно из самых доступных — KVM Over IP.

Конечно, если покупать брендовую систему, то получится дорого. Но есть иное решение — создание собственной системы на основе «малинки». Это решение предложил разработчик Максим Деваев (Maxim Devaev). Он собирается начать продавать эту систему по $130. Но собрать все это можно и самостоятельно — главное запастись собственными компонентами. Под катом — описание того, как это сделать.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии46

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

Рекурсивные CTE

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров4.6K

Одним из наиболее важных применений CTE являются рекурсивные запросы, для которых CTE является фактически единственным средством реализации. Как отмечалось в предыдущей статье, в Books Online есть несколько примеров использования CTE, включая и рекурсивный CTE. Тут мы будем использовать эти примеры из Books Online, используя один из ранних образов базы данных AdventureWorks.

Рекурсивные CTE все сделаны по одному шаблону. Тело CTE представляет собой запрос с UNION ALL, который объединяет один или несколько подзапросов называемых закреплёнными элементами, которые заполняют набор результатов. Кроме закреплённых элементов есть один или несколько рекурсивных подзапросов, называемых рекурсивными элементами, которые возвращают оставшуюся часть результирующего набора. Эти рекурсивные подзапросы ссылаются на сам рекурсивный CTE. Получается, у нас есть один или несколько закреплённых подзапросов и один или несколько рекурсивных подзапросов, объединенных UNION ALL. 

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

«Пиратский» Google Chrome в Microsoft Windows 7 год спустя. И примкнувший к ним MS EDGE, Opera, Brave. Полная версия

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

Пиратство растёт, милорд!

Google Chrome для Windows 7 - детальный технический отчёт, каким образом актуальная версия популярнейшего браузера всё равно работает в «семёрке» даже спустя год после официального прекращения её поддержки корпорацией. Реакция Google LLC или почему пиратство только набирает обороты?

Читать далее
Всего голосов 133: ↑119 и ↓14+105
Комментарии159

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

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

Открываю с утра новости, а там – ни разу не было и вот опять:

Нехватку (высококвалифицированных низкооплачиваемых) специалистов выявили благодаря опросу Института экономической политики им. Гайдара (ИЭП), с результатами исследования ознакомился РБК.

Население при этом: ну да ну да.

Весной 2023 года только 2% сообщили, что в связи с СВО у них выросла зарплата, за последний год материальное положение в той или иной степени улучшилось у 15%, тогда как ухудшилось у 33%, поскольку увеличились текущие расходы (39%), а некоторые (7%) потеряли часть сбережений и/или доходов. Савин, Институт социологии РАН. «Вестник РУДН. Серия: Социология», №4, 2023

Читать далее
Всего голосов 231: ↑208 и ↓23+185
Комментарии138

Операция Lahat: новая группа Hellhounds атакует российские организации через системы на базе Linux

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

В октябре 2023 года команда Positive Technologies по расследованию инцидентов PT CSIRT обнаружила компрометацию одной энергетической компании с использованием трояна Decoy Dog. Этот вредонос активно используется в атаках на российские компании и правительственные организации по меньшей мере с сентября 2022 года. Однако образец, обнаруженный нами на хосте жертвы, представлял собой новую модификацию троянского ПО, которую злоумышленники доработали, усложнив его обнаружение и анализ.

Анализ инструментов, тактик и техник не позволил связать данную активность ни c одной из ранее известных APT-групп. Новая группа, названная нами Hellhounds, прикладывает значительные усилия для сокрытия своей активности на хостах и в сети. В интересы группы входят компании и государственные организации исключительно на территории Российской Федерации. Злоумышленники могут преследовать разные цели, но достоверно известно об одном случае полного уничтожения инфраструктуры.

Узнать больше о расследовании
Всего голосов 33: ↑31 и ↓2+29
Комментарии27

Разоблачаем Эффект Даннинга-Крюгера. Статистический артефакт, пример автокорреляции

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

Слышали ли вы об «эффекте Даннинга-Крюгера»? Это (очевидная) тенденция неквалифицированных людей переоценивать свою компетентность. Обнаруженный в 1999 году психологами Джастином Крюгером и Дэвидом Даннингом эффект с тех пор стал очень знаменитым.

И вы понимаете почему.

Это слишком сочная идея, чтобы не быть правдой. Все «знают», что идиоты, как правило, не осознают своего идиотизма. Или, как выразился Джон Клиз...

Разоблачаем популярный миф
Всего голосов 118: ↑104 и ↓14+90
Комментарии82

OpenConnect: недетектируемый VPN, который вам понравится

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

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Всего голосов 325: ↑324 и ↓1+323
Комментарии342

Фотохостинги с 2017 по 2023 (утрачено 57% фотографий)

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

С публикации прошлого текста ( «Тестирование фотохостингов на цифровой износ (21 шт)») прошло 6 лет, что позволяет провести новое исследование, но не по теме цифрового износа и конкретно по вопросу выживания цифровых архивов.

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

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

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

Интересные трюки HTML. Экстремальный минимализм

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

Мы уже много говорили про оптимизацию сайтов до минимального размера, преимущества статичного HTML, а также упаковку сайта (и веб-сервера) в портативный формат одного исполняемого файла, который нативно исполняется под любой ОС.

Но стремление к минимизации может пойти дальше, если вы хотите поместить весь сайт в адресную строку браузера. А с помощью сокращателя ссылок даже большой сайт сжимается до восьми байт. В этом случае и хостинг не нужен (то есть роль хостинга выполняет сервис сокращения ссылок).
Читать дальше →
Всего голосов 62: ↑62 и ↓0+62
Комментарии5

Как принимать платежи в Telegram | Оплата без всяких токенов и асинхронная обработка платежа

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

Как принимать платежи на своем сайте или в telegram используя библиотеку yoomoney-api.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии31

ESP32 снимает показания водяных счетчиков и сам передает их «куда надо»

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

В сети сотни статей про использование ESP32 для съема показаний приборов учета, но практически все из них про интеграцию с «умным домом». Мой вариант реализации решает практическую задачу - просто сам передает показания, снимая с меня эту задачу.

Основное отличие моего решения, от тех что я видел, заключается в максимальной автономности и легкости контроля и управления. ESP32 самостоятельно общается с сайтом который принимает показания приборов учета посредством встроенного http клиента. Процесс контролируется и управляется встроенным в ESP32 telegram ботом.

Читать далее
Всего голосов 28: ↑26 и ↓2+24
Комментарии86

Yggdrasil-mesh глазами пентестера

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

В наше время растет популярность децентрализованных альтернатив современным подходам к маршрутизации трафика в вычислительных сетях (например, для обхода санкционных блокировок недружественных стран и анонимизации трафика). Одним из примеров такого подхода является Yggdrasil. Новые подходы обещают нам инновации, децентрализации и конечно же гарантии безопасности. Но так ли это на самом деле? И хотя многие опытные пользователи и так знают о проблемах безопасности подобных сетей, мне бы хотелось подсветить их сильнее на одном конкретном примере, не претендуя на звание создателя rocket science.

ПРЕДУПРЕЖДЕНИЕ. Все совпадения вымышлены. Автор не ставил своей целью просканировать весь Yggdrasil и проэксплуатировать все уязвимости безопасности.

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

.NET 7 против российской криптографии. Часть 2. Штампы времени

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

Практически неотъемлемой частью формирования электронной подписи стало формирование штампов времени (TS) на подпись. С их помощью обеспечивается доверенное подтверждение времени подписания документа. Со штампами времени в .NET 7 та же беда, что и с CMS-сообщениями - отсутствие нативной поддержки российских алгоритмов хэширования и электронной подписи на уровне фреймворка. Но, благо, старый добрый WinAPI и здесь поможет обойти проблему.

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

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

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

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

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

Главный принцип разработки интерфейсов

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

Если вы достаточной древний, то на личном опыте знакомы с технологической энтропией: железо становится мощнее, но софт деградирует. Photoshop тормозит, а ТВ тупит даже при переключении каналов. Портится не только код, но и интерфейсы.

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

Читать далее
Всего голосов 29: ↑24 и ↓5+19
Комментарии55

Трюк с XOR для собеседований и не только

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


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

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

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии104

Повышение эффективности SQL-запросов: советы и рекомендации

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

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

Читать далее
Всего голосов 22: ↑18 и ↓4+14
Комментарии7

Тестовые серверы Telegram: инструкция по эксплуатации

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

Про разработку ботов в Telegram написано много текстов, а про «тестовый дата-центр» практически ничего. Ранее Pavelgram освещал этот вопрос: он кратко рассказал, что такое тестовые серверы и как с ними работать. Я продолжу это начинание.

Эта статья — сборник разбросанной документации и результатов экспериментов. Под катом расскажу о технических особенностях тестового окружения для разработки, покажу примеры ботов и юзерботов. В качестве бонуса — история «о жизни в тестовом контуре».
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии6
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Старший