Pull to refresh
41
0
ETC.Dema @ETCDema

User

Send message

Рекомендации при работе с PostgreSQL

Level of difficultyMedium
Reading time10 min
Views28K

Доброго времени суток. Основываясь на своём опыте хочу представить некоторые рекомендации при разработке кодовой базы на SQL.

Данные рекомендации получены горьким опытом, так что надеюсь, они Вам помогут :)

Читать подробнее и больше не косячить
Total votes 51: ↑48 and ↓3+51
Comments53

Использование DiagnosticSource в .NET Core: практика

Reading time14 min
Views12K

В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection и SqlCommand и измерять время их выполнения.


В настоящее время DiagnosticSource уже используется в AspNetCore, EntityFrameworkCore, HttpClient и SqlClient — каждый из них отправляет собственные события, которые могут быть перехвачены и обработаны.


В этой статье я хочу рассмотреть несколько примеров того, как можно на практике использовать DiagnosticSource в приложениях ASP.NET Core.


  • CorrelationID и пробрасывание заголовков между сервисами
  • Сбор метрик и трассировок
  • Логирование

Кроме того, в этой статье я решил собрать список событий, которые доступны для обработки и могут быть использованы в ваших приложениях, а также рассказать о некоторых подводных камнях, с которыми вы можете столкнуться, если решите использовать механизм DiagnosticSource в своём проекте.

Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments11

Как работает ChatGPT: объясняем на простом русском эволюцию языковых моделей с T9 до чуда

Level of difficultyEasy
Reading time30 min
Views435K

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

Погнали →
Total votes 299: ↑292 and ↓7+343
Comments283

Понимание (всех) «модульных» форматов и инструментов JavaScript

Reading time19 min
Views47K


Доброго времени суток, друзья!

Представляю вашему вниманию перевод статьи «Understanding (all) JavaScript module formats and tools» автора Dixin.

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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments6

Сравнение подходов к реализации распределенных транзакций для микросервисов

Reading time21 min
Views43K

Как архитектор-консультант в Red Hat, я имел возможность поработать над множеством проектов для наших клиентов. У каждого из них есть свои особенности, которые, однако, имеют некоторые общие черты. Большинство клиентов хотят знать, как скоординировать запись в несколько систем одновременно. Ответ на этот вопрос обычно включает подробное объяснение двойной записи, распределенных транзакций, современных альтернатив, а также возможных сценариев сбоев и недостатков каждого подхода. Как правило, именно в этот момент заказчик понимает, что разделение монолитного приложения на микросервисы - долгий и сложный путь, обычно требующий компромиссов.

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

Выгорание — норма? Часть 2. Подробно про фазы и «Что делать?»

Reading time18 min
Views43K

Стресс — это норма жизни. Без стресса нет роста и обучения новому.

Передоз стресса, как передоз чего угодно — вызывает защитную реакцию. Сначала — сопротивление и попытки адаптации, затем, если эти попытки провалились — схлопывание энергетических систем, чтобы не умереть. 

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

Читать далее
Total votes 35: ↑33 and ↓2+43
Comments20

Защита авторских прав на ваши Pet-projects

Reading time8 min
Views7.9K
Что делать, когда вы получили претензию, требование или иск по вашему проекту от работодателя или партнера с требованием передать все материалы? Как вы можете защитить свои проекты в этом случае или сильно заранее, для профилактики? Много ли разработчиков разбираются в этом? Количество разработок и результатов творческой деятельности неуклонно растет и возникает все больше спорных ситуаций по правам на эти проекты (произведения). Поэтому вопрос защиты прав на Pet-project (пет-проекты) становится практикой. К тому же она может быть не такой уж сложной.

Вадим Кирюхин, управляющий партнер, адвокат юридической фирмы «Кирюхин и Партнеры», член международной ассоциации адвокатов (International Bar Association) сегодня расскажет, что такое пет-проект с точки зрения российского законодательства и что вы можете сделать, если получили претензию от вашего работодателя с требованием передать все материалы по пет-проекту. Вы узнаете также, какие в настоящее время есть способы защиты ваших прав на пет-проекты, а в конце рассмотрим кейсы из судебной практики.


Читать дальше →
Total votes 16: ↑15 and ↓1+19
Comments14

Тариф «100к+», или как вельми зело огорчить спамера

Reading time12 min
Views65K

Уже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.

Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
Читать дальше →
Total votes 207: ↑203 and ↓4+264
Comments259

Обновление вашего PWA в продакшене

Reading time6 min
Views17K

Вам больше не помогут no-cache или max-age заголовки, вы просто не знали и не могли узнать о механизме обновления SW. Потому что про него вам не говорили.

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

Статьи — это тоже исходный код {

Level of difficultyMedium
Reading time9 min
Views15K

Title


Открываю VS Code и начинаю набирать статью с самого начала. Но вот незадача — формат маркдауна не совсем совместим с имеющимся форматом Хабра. Получается выхода нет и придётся возвращаться к встроенному редактору Хабра;


Или не придется?

В голову пришла идея написать утилиту, которая конвертирует разные форматы маркдаунов друг в друга, например, из формата GitHub в формат Habr;


Такую программу я в итоге и разработал. Теперь не надо копировать статьи в редактор Хабра, чтобы посмотреть как она выглядит, можно продолжать писать в любимом VS Code;


Хотя я и использую множество плагинов VS Code, но мысли о неэффективном процессе написания статей не исчезли. Раз уж я набираю текст в VS Code, то почему бы сразу не делать коммиты контента в гит-репозиторий?


Это дало бы немало новых возможностей, которыми пользуются программисты: версионирование, бекапы на локальные носители или веб-сервисы, правки от редакторов и пользователей. А еще можно внедрить CD/CI;


В итоге, я написал небольшой гайд для разработчиков, как писать техническую документацию в редакторах, используя мою утилиту. Саму утилиту можно посмотреть в моём репозитории на GitHub;

Читать дальше →
Total votes 42: ↑41 and ↓1+62
Comments46

Инфраструктура System.Transactions в мире .NET

Reading time33 min
Views30K

Встречали ли вы в C# конструкцию типа using (var scope = new TransactionScope(TransactionScopeOption.Required))? Это значит, что код, выполняющийся в блоке using, заключается в транзакцию и после выхода из этого блока изменения будут зафиксированы или отменены. Звучит понятно, пока не начинаешь копать глубже. И чем глубже копаешь, тем «страньше и страньше» становится. Во всяком случае, у меня при более близком знакомстве с классом TransactionScope и вообще транзакциями .NET возникла целая уйма вопросов.

Что за класс TransactionScope? Как только мы используем конструкцию using (var scope = new TransactionScope()), все в нашей программе сразу становится транзакционным? Что такое «управляющий ресурсами» (Resource Manager) и «управляющий транзакциями» (Transaction Manager)? Можно ли написать свой управляющий ресурсами и как он «подключается» к созданному экземпляру TransactionScope? Что такое распределенная транзакция и правда ли, что распределенная транзакция в SQL Server или Oracle Database — это то же самое, что и распределенная транзакция .NET?

В данной публикации я постарался собрать материал, помогающий найти ответы на указанные вопросы и сформировать понимание транзакций в мире .NET.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments44

За что получает деньги наемный работник? Не понимаете? Сейчас поймете

Reading time4 min
Views152K
«За что я плачу тебе деньги?» — обычный вопрос работодателя работнику, причем саркастический, как правило.

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

Читать дальше →
Total votes 178: ↑174 and ↓4+226
Comments888

10 современных раскладок в одну строку CSS-кода

Reading time7 min
Views33K

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

Читать далее
Total votes 34: ↑33 and ↓1+39
Comments12

Windows 10 + Linux. Настройка GUI KDE Plasma для Ubuntu 20.04 в WSL2. Пошаговое руководство

Reading time9 min
Views94K


Введение


Данная статья предназначена вниманию системных администраторов, которые подготавливают типовые рабочие места на компьютерах под управлением ОС Windows 10, в том числе для разработчиков ПО.

Следует отметить, что существует определенная проблема, связанная с невозможностью интеграции ПО, полученного в on-line магазине Microsoft Store для использования в пользовательском образе Windows 10. Не вдаваясь в подробности уточню, что данная проблема связана с тем, что установленные из Microsoft Store программы связываются со служебной учетной записью Administrator, и при завершении создания пользовательского образа утилитой sysprep возникают обусловленные этим обстоятельством ошибки.

Рассмотренный в данной статье способ позволить избежать такой проблемы при подготовке образа ОС Windows 10 с предварительно настроенной подсистемой WSL2, а также с заранее подготовленным и настроенным образом ОС Ubuntu 20.04 с GUI KDE Plasma, который в свою очередь может иметь свой набор пользовательского ПО.

В сети Интернет имеется большое количество примеров и руководств по настройке подсистем WSL (т.е. WSL1 и сравнительно новой WSL2), с настройкой GUI интерфейса для linux систем на базе ОС начиная с версии Ubuntu 16.04 и заканчивая Ubuntu 20.04, но в основном это касалось рабочих столов на основе т.н. «легковесного» xfce4, имеющий вполне объяснимые ограничения в пользовательских настройках. Но что касается GUI KDE Plasma для Ubuntu 20.04, в сети не нашлось какой-либо существенной информации. Но именно этот вариант предоставляет конечному пользователю практически неограниченный набор настроек как внешнего вида системы, так и настроек оборудования, конечно с учетом текущих возможностей интеграции linux-систем, реализованных в подсистеме WSL2.
Читать дальше →
Total votes 16: ↑15 and ↓1+20
Comments43

Битва C# JSON сериализаторов для .NET Core 3

Reading time13 min
Views36K
Всем привет. В преддверии старта курса «Разработчик C#» подготовили для вас интересный перевод, а также предлагаем бесплатно посмотреть запись урока: «Шаблон проектирования Состояние (State)»





Недавно выпущенный .NET Core 3 принес с собой ряд нововведений. Помимо C# 8 и поддержки WinForms и WPF, в последнем релизе был добавлен новый JSON (де)сериализатор — System.Text.Json, и, как следует из его названия, все его классы находятся в этом пространстве имен.

Это серьезное нововведение. Сериализация JSON — важный фактор в веб-приложениях. На нее полагается большая часть сегодняшнего REST API. Когда ваш javascript клиент отправляет JSON в теле POST запроса, сервер использует десериализацию JSON для преобразования его в C# объект. И когда сервер возвращает в ответ объект, он сериализует этот объект в JSON, чтобы ваш javascript клиент мог его понять. Это большие операции, которые выполняются для каждого запроса с объектами. Их производительность может значительно повлиять на производительность приложений, что я и собираюсь сейчас продемонстрировать.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments15

Влияние кризиса на IT: уволят ли нас всех

Reading time11 min
Views54K


Нередко вижу слова в духе «по другим отраслям коронавирус сильно ударил, а вот IT практически не затронул». Мол, веб-сервисы от карантина только выиграли, писать код можно и удалённо, а раз сейчас ограничения отменяют — значит, всё закончилось хорошо, проблем нет и теперь уже не будет.


По-моему, заявлять такое означает не вполне понимать ситуацию. Существует, например, прогноз Минкомсвязи, что российская IT-отрасль может стать убыточной, а численность российских айтишников во втором полугодии может снизиться на 27 000 человек. Понятия не имею, насколько сбудется конкретно этот прогноз, но поискал разные данные, и в целом они подтверждают: хотя IT и повезло больше многих, картина невесёлая, а уверенно говорить «всё осталось позади» рано.


Как всё могло ухудшиться в период, когда популярность онлайн-сервисов резко возросла? Как происходящее может сказаться на обычном айтишнике? И что ему делать, чтобы сложности задели как можно меньше?

Читать дальше →
Total votes 90: ↑85 and ↓5+107
Comments185

Распределенные транзакции для разнородных баз данных в MS .NET

Reading time6 min
Views18K
Недавно, на одном интервью меня спросили, а работал ли я с распределенными транзакциями, в том смысле, что нужно было делать вставку/обновление таких записей при условии:

  1. Одной транзакции.
  2. Это могут быть несколько разнообразных баз данных таких как Oracle, MS SQL Server и PostgreSQL.
  3. Отклик на CRUD операцию может быть значительным.
  4. Последовательность вставки не важна.

Чего коллеги добивались задавая этот вопрос? Проверить мой опыт или получить готовое решение? На самом деле для меня не важно, но вот что важно — задача в теории вопроса показалась мне интересной и, я решил написать статью о том, как можно было бы решить эту задачу.
Читать дальше →
Total votes 4: ↑3 and ↓1+5
Comments9

Освобождаем свободное место на жестком диске: WIMBoot

Reading time12 min
Views73K
Сегодня стационарные компьютеры начинают медленно уходить на задний план. Их место прочно занимают ноутбуки, а затем идут и планшетные компьютеры. Сочетание мобильности, высокой производительности и высокой скорости получения информации – все это является несомненным плюсом планшетов. Однако, и своя ложка дегтя у планшетов есть: это малый размер жестких дисков. Если диск 16, 32 и даже 64 ГБ, вовсе не хочется разбрасываться ценным пространством на установочные файлы. С выходом Windows 8.1 Update появилось решение этой проблемы – WIMBoot – новый способ установки ОС, обеспечивающий большее свободное пространство для пользователя.


Читать дальше →
Total votes 36: ↑25 and ↓11+14
Comments19

Пакуем приложения ASP.NET Core с помощью Docker

Reading time11 min
Views116K

Приложения ASP.NET Core по-настоящему кросс-платформенны и могут запускаться в «никсах», а соответственно, и в Docker. Посмотрим, как их можно упаковать, чтобы развертывать на Linux и использовать в связке с Nginx. Подробности под катом!


Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments6

Сверхинтеллект: идея, не дающая покоя умным людям

Reading time28 min
Views45K


Расшифровка выступления на конференции Web Camp Zagreb Мачея Цегловского, американского веб-разработчика, предпринимателя, докладчика и социального критика польского происхождения.

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

Опасение было оправданным. Азот, из которого состоит большая часть атмосферы, энергетически нестабилен. Если столкнуть два атома достаточно сильно, они превратятся в атом магния, альфа-частицу и выпустят огромную энергию:

N14 + N14 ⇒ Mg24 + α + 17,7 МэВ

Жизненно важным вопросом было то, может ли эта реакция стать самоподдерживающейся. Температура внутри шара ядерного взрыва должна была превысить всё, что когда-то наблюдалось на Земле. Не получится ли, что мы бросим спичку в кучу сухих листьев?
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments381
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Software Architect
Lead
Web development
Vue.js
HTML
CSS
JavaScript
.NET Core
ASP.NET MVC
PostgreSQL
Linux