Как стать автором
Обновить
2
0
Дмитрий @ExiveR

Администратор баз данных

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

Пробиваем дыры в NAT

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

NAT - механизм, создающий множество проблем для P2P коммуникации, в силу того, что нередко адрес пира может не иметь доступного из любой точки мира, "белого" адреса. Существует ряд способов обхода NAT, но их документация, равно как и данные об их надежности, достоинствах и недостатках оставляет желать лучшего, а потому мы рассмотрим наиболее простой, и в то же время надежный метод - "hole punching".

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

Новое в SQL Server 2022 – Parameter Sensitive Plan Optimization (PSP)

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

В SQL Server 2022 появилась замечательная возможность\функция, которая называется: Parameter Sensitive Plan Optimization (оптимизация плана с учетом параметров, для краткости - PSP). Как следует из названия, её задача обеспечить производительность параметризованных запросов. Появилась возможность создания несколько планов исполнения для параметризованного запроса, каждый из которых оптимизирован для разных значений параметров. Это позволяет оптимизатору SQL Server выбирать наилучший план выполнения для определенных значений параметров, используемых при исполнении конкретного запроса.

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

Ускорение в 30 раз — requestIdleCallback

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

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

Хотелось бы сразу сказать, что статья может быть не чем-то новым, но может оказаться полезной в плане практического понимания того, где может пригодиться requestIdleCallback и как он может быть использован.

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

GraphQL в .NET: Практическое использование

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

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

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

Действующий процессор на 13 микросхемах стандартной логики

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


Привет, Хабр! Для меня было просто невозможно пройти мимо этого схемотехнического чуда. Горстка деталей на небольшой двусторонней плате выполняет команды машинного языка и выводит результат в виде двоичного кода!

Действующая модель называется "TD4 CPU", является проектом с открытыми исходниками, реально работает и позволяет понять устройство и принцип работы процессора.
Читать дальше →
Всего голосов 85: ↑84 и ↓1+109
Комментарии54

Малоизвестные возможности языка C

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

Если у вас несколько лет опыта программирования на языке C, то, вероятно, вы гораздо более уверены в своих знаниях этого языка, чем если бы вы провели столько же времени, работая с C++ или Java. И язык C, и его стандартная библиотека довольно близки к к минимально возможному размеру.

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

Читать далее
Всего голосов 72: ↑68 и ↓4+79
Комментарии22

Многопоточность и Thread Pool в C++

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

Привет, Хабр! Я неожиданно созрел для написания первой статьи тут. За время работы в сфере IT у меня появилась своя собственная библиотека на языке C++, которая медленно, но верно обрастает различными полезными модулями. Не все включаемые в нее модули написаны мною с нуля, но я всегда стараюсь так или иначе адаптировать их под свои нужды. Сегодня у меня появилось непреодолимое желание поделиться с вами некоторыми фрагментами моей библиотеки.

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

Как настроить RDP без static ip и сторонних сервисов

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

Для меня никогда не вставал вопрос про RDP, так как постоянно носил с собой ноутбук. Если в студенческие годы таскать на горбу 17 дюймовый Lenovo IdeaPad Z710 почти под 3кг веса (2.9кг) было не сложно, то со временем даже 15 дюймовый HP или 13 дюймовый MacBook Pro стал прилично ощущаться и не в лучшую сторону для моей спины. 

Первая задача: как уменьшить вес, но не потерять в производительности? Для себя я выбрал собрать стационарный компьютер и подключаться к нему с iPad. Эта задача решается достаточно просто. И на ней не будем останавливаться.

Вторая задача: а как, собственно, подключаться?

Читать далее
Всего голосов 18: ↑12 и ↓6+9
Комментарии63

Книга «SQL Server. Наладка и оптимизация для профессионалов»

Время на прочтение18 мин
Количество просмотров9.4K
image Привет, Хаброжители!

Исчерпывающий обзор лучших практик по устранению неисправностей и оптимизации производительности Microsoft SQL Server. Специалисты по базам данных, в том числе разработчики и администраторы, научатся выявлять проблемы с производительностью, системно устранять неполадки и расставлять приоритеты при тонкой настройке, чтобы достичь максимальной эффективности.

Автор книги Дмитрий Короткевич — Microsoft Data Platform MVP и Microsoft Certified Master (MCM) — расскажет о взаимозависимостях между компонентами баз данных SQL Server. Вы узнаете, как быстро провести диагностику системы и найти причину любой проблемы. Методы, описанные в книге, совместимы со всеми версиями SQL Server и подходят как для локальных, так и для облачных конфигураций SQL Server.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии4

Что такое URL

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

В прошлом году Дэниэл Стенберг, создатель curl, написал пост об одном забавном URL:

http://http://http://@http://http://?http://#http://

Пост интересен, рекомендую его прочитать. Автор объясняет, как устроен URL, и как различные системы его обрабатывают.

Но в том посте не разобрано, в частности, как сказывается такая разница в обработке одних и тех же URL различными системами. В этой лекции 2017 года (слайдывидео) Оранж Цай рассматривает и многие другие несогласованности между различными библиотеками, а также риски из области безопасности, возникающие из-за такой несогласованности.

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

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

Странный мир путей файлов в Windows

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

Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с /, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.

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

Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.
Читать дальше →
Всего голосов 178: ↑178 и ↓0+178
Комментарии100

Умная кормушка: Machine Learning, Raspberry Pi, Telegram, немножко магии обучения + инструкция по сборке

Время на прочтение15 мин
Количество просмотров38K
Всё началось с того, что жена захотела повесить кормушку для птиц. Идея мне понравилась, но сразу захотелось оптимизировать. Световой день зимой короткий — сидеть днём и смотреть на кормушку времени нет. Значит нужно больше Computer Vision!



Идея была простой: прилетает птичка — вжуууух — она оказывается на телефоне. Осталось придумать как это сделать и реализовать.
В статье:
  • Запуск Caffe на Raspberry Pi B+ (давно хотел это сделать)
  • Построение системы сбора данных
  • Выбор нейронной сети, оптимизация архитектуры, обучение
  • Оборачивание, выбор и приделывание интерфейса

Все исходники открыты + описан полный порядок развёртывания получившейся конструкции.
Читать дальше →
Всего голосов 73: ↑72 и ↓1+71
Комментарии58

Как на самом деле работает Async/Await в C# (Часть 1)

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

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.

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

CAN шина

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

Всем привет! Я начинающий разработчик и увлекся Embedded стороной вопроса. Лучший способ запомнить информацию - написать какой нибудь конспект и поделиться им. Ниже моя краткая выжимка о CAN шине и передаче данных через нее.

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

Десятичный счётчик-дешифратор K561ИЕ8 (CD4017) и красивый эффект на нём

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

Привет, Хабр! Бегущие огни многие из нас уже собирали. А что, если сделать их не одномерными, а двумерными? То есть, чтобы они бегали не по вектору, а по матрице?

Получится эффект со множеством вариантов настройки, в зависимости от частоты вертикальной и горизонтальной развёртки.

И воплотим мы его не на Ардуино и микроконтроллерах, а на микросхемах стандартной логики. Которые и от импорта не зависят, и программному взлому не поддаются, а ещё они олдскульные, тёплые, почти ламповые.
Кроме того, соберём ещё три динамичных светодиодных эффекта.
Всего голосов 52: ↑49 и ↓3+64
Комментарии9

Книга «Объекты. Стильное ООП»

Время на прочтение9 мин
Количество просмотров10K
image Привет, Хаброжители!

Хороший объектно-ориентированный код удобно читать, изменять и исправлять. Универсальные практики проектирования объектов, собранные в этой книге, позволят улучшить ваш стиль кодирования. Эти правила подойдут к любому объектно-ориентированному языку, они делают код максимально понятным и надежным, а также повышают производительность как индивидуальных разработчиков, так и команд.

Книга «Объекты. Стильное ООП» познакомит вас с профессиональными техниками написания ОО-кода. Маттиас Нобак раскрывает правила создания объектов, определения методов, изменения и извлечения состояний и многое другое. Все примеры написаны на простом псевдокоде, который легко перевести в любой язык программирования. Кейс за кейсом вы изучите ключевые сценарии и задачи проектирования объектов, а затем шаг за шагом создадите простое веб-приложение, которое покажет, как должны взаимодействовать объекты разных типов.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+10
Комментарии5

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

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

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

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

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

Как я учился языку JAVA на Яндекс платформе

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

Вот наконец я созрел для написания отзыва о своей учебе в Яндекс практикуме на потоке Java программировании. Долго не мог и не хотел оставлять отклик по учебе, думаю он был бы не совсем корректным. Теперь, когда утихли первые и последние эмоции, думаю можно.   Итак, прежде чем описать свое мнение, ведь все что будет написано является сугубо субъективным, пропущенным через мой опыт и чувства, поэтому маленькое предисловие: немного о себе, это важно с точки зрения дальнейшего описания событий. Образование высшее медицинское, стаж работы на врачебных должностях, в том числе и заведующим отделением обширный, к тому же имею педагогическое образование и стаж преподавания семь лет. Это все к тому, что я понимаю о чем говорю и пишу в своем отзыве. А также для тех, у кого образование гуманитарий. Одно дела переучиваться людям с техническим образованием на программиста, а другое без такового. И последняя ремарка, сравнивать не с чем, пока на других платформах не пытался учиться, обзор будет сугубо о платформе Яндекс практикум,  и наверно будет отзыв не совсем честен, так как к началу обучения я самостоятельно в течение шести месяцев изучал данный вопрос, к моменту обучения представлял, что такое ООП (объектно-ориентированное программирование), в целом имел представление об языках программирования, а также изучил наизусть основы программирования java по книги «Java Полное руководство» Герберт Шилдт 10-е издательство и спокойно пользовался технической документацией по Java SE 11 на тот момент.

Читать далее
Всего голосов 19: ↑17 и ↓2+21
Комментарии28

Как устроено индексирование баз данных

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

Индексирование баз данных — это техника, повышающая скорость и эффективность запросов к базе данных. Она создаёт отдельную структуру данных, сопоставляющую значения в одном или нескольких столбцах таблицы с соответствующими местоположениями на физическом накопителе, что позволяет базе данных быстро находить строки по конкретному запросу без необходимости сканирования всей таблицы. Применяются разные типы индексов, однако они занимают пространство и должны обновляться при изменении данных. Важно тщательно продумывать стратегию индексирования базы данных и регулярно её оптимизировать.
Читать дальше →
Всего голосов 53: ↑51 и ↓2+64
Комментарии9

Погружение в уникальные индексы

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

Рассмотрим следующий пример:

CREATE TABLE T (PK INT PRIMARY KEY, A INT, B INT)
CREATE INDEX TA ON T(A)
CREATE UNIQUE INDEX TB ON T(B)
INSERT T VALUES (0, 0, 0)
INSERT T VALUES (1, 1, 1)

Теперь предположим, что мы выполним обновление:

UPDATE T SET A = 1 – A

Это изменение влияет на кластерный индекс (PK__T__15502E78) и на некластерный индекс TA. План в значительной степени такой, какой мы ожидали:

  |--Clustered Index Update(OBJECT:([T].[PK__T__15502E78]), OBJECT:([T].[TA]), SET:([T].[A] = [Expr1003]))
       |--Compute Scalar(DEFINE:([Expr1016]=[Expr1016]))
            |--Compute Scalar(DEFINE:([Expr1016]=CASE WHEN [Expr1004] THEN (1) ELSE (0) END))
                 |--Compute Scalar(DEFINE:([Expr1003]=(1)-[T].[A], [Expr1004]=CASE WHEN [T].[A] = ((1)-[T].[A]) THEN (1) ELSE (0) END))
                      |--Top(ROWCOUNT est 0)
                           |--Clustered Index Scan(OBJECT:([T].[PK__T__15502E78]))

Это типичный «узкий» план обновления. В одном операторе обновления затрагиваются кластерный и некластерный индексы. План содержит Compute Scalar, которые определяют, нужно ли изменять соответствующую строку некластерного индекса. О подобных планах я писал в этой статье.

Оперативно узнавать о новостях MS SQL Server можно в телеграмм-канале: MS SQL Server - дело тонкое...

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

Информация

В рейтинге
5 227-й
Откуда
Караганда, Карагандинская обл., Казахстан
Дата рождения
Зарегистрирован
Активность