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

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

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

Три способа отладки T-SQL кода

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

Написание нового кода = ошибки. С этим всё просто.

Избавится от ошибок – вот это сложная задача.

Программисты привыкли, что в их средствах разработки есть встроенные инструменты, показывающие, какая строка кода сейчас работает, отображают текущее содержимое переменных, выводят сообщения о процессе выполнения и т.д. Какое-то время в SQL Server Management Studio тоже был отладчик кода, но, начиная с версии SSMS v18, он был удален. Хотя даже когда отладчик был, я не фанател от него: SQL Server буквально мог прекратить обработку других запросов, пока выполнял ваш запрос. Это была катастрофа, особенно когда ваш запрос блокировал других пользователей, и всё это происходило на рабочей базе.

Мне бы хотелось, чтобы у нас был простой способ отладки T-SQL на рабочей базе без блокировок, но отладка T-SQL отличается от отладки в C#. Так что если ваш T-SQL код делает не то, что вы ожидали, вот несколько хороших способов для его отладки.

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

Из оператора в Data-инженеры: выверка данных через шаблоны Excel

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

Всем привет! Меня зовут Ксения, в 2019 году я пришла в СИГМУ оператором по оцифровке ГИС-планшетов с местоположением кабельных линий. В этом материале хочу поделиться своим опытом работы в шаблоне Excel, который помог мне стать экспертом по выверке данных.

Сам шаблон и пошаговые инструкции ниже.

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

Как, почему и когда следует использовать одно-табличный дизайн в DynamoDB

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

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

Однако разработка структуры данных с помощью DynamoDB вызывает трудности у тех, кто привык к реляционным базам данных, которые доминировали в течение последних нескольких десятилетий. Существует несколько особенностей в создании структуры данных с помощью DynamoDB, но самая значимая - это рекомендация от AWS использовать одну таблицу для всех ваших записей.

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

[Паттерны API] Асинхронность и управление временем

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

Это глава 19 моей книги «API». v2 будет содержать три новых раздела: «Паттерны API», «HTTP API и REST», «SDK и UI‑библиотеки». Если эта работа была для вас полезна, пожалуйста, оцените книгу на GitHub, Amazon или GoodReads. English version on Substack.

Продолжим рассматривать предыдущий пример. Пусть на старте приложение получает какое-то состояние системы, возможно, не самое актуальное. От чего ещё зависит вероятность коллизий и как мы можем её снизить?

Напомним, что вероятность эта равна она равна отношению периода времени, требуемого для получения актуального состояния к типичному периоду времени, за который пользователь перезапускает приложение и повторяет заказ. Повлиять на знаменатель этой дроби мы практически не можем (если только не будем преднамеренно вносить задержку инициализации API, что мы всё же считаем крайней мерой). Обратимся теперь к числителю.

Наш сценарий использования, напомним, выглядит так:

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

Как багхантеру искать XSS-уязвимости через наложение парсеров: исследование Positive Technologies

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

Привет, Хабр! Меня зовут Игорь Сак-Саковский, и я уже семь лет занимаюсь безопасностью веб-приложений в команде PT SWARM в компании Positive Technologies. В этой статье расскажу о моем недавнем исследовании, которое вошло в топ-10 методов веб-хакинга 2021 года по версии PortSwigger.

При общении в сети мы постоянно используем смайлики и выделяем текст в сообщениях. В Телеграме, Википедии, на GitHub и форумах это реализовано при помощи BBCode, MediaWiki и других языков разметки, использующих парсеры. Парсеры находят в сообщениях специальный код, тег или символ и преобразуют его в красивый текст с помощью HTML. А как известно, везде, где есть HTML, могут быть и XSS-атаки.

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

В статье вас ждет:

• вводная теория о том, что такое XSS и чем он опасен;

• советы, как искать XSS при отправке красивых сообщений;

• способы тестирования сообщений: перечислю уже известные техники, а еще поделюсь свежей идеей;

• список уязвимостей, которые я обнаружил в продуктах известных вендоров в процессе исследований, и чем они грозили;

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

Welcome под кат!
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

Как подружить DDD и Entity Framework Core?

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

Привет, Хабравчане! Меня зовут Валентин, я backend‑разработчик в компании Bimeister.
Уже почти как год вместе с командой разрабатываем новый продукт с применением Domain‑driven design подхода. Как же так получилось?

Так вот, разработка начиналась совершенно с нуля и это была хорошая возможность применить данный подход и попробовать его на практике. В момент начала разработки, перед нашей командой сразу встал вопрос: «А как же хранить аггрегаты, сущности, value‑object'ы в базе данных с использованием EF Core? ». Если вы только начинаете применять DDD и перед вами и вашей командой встала такая же проблема, то эта статья поможет вам приблизиться к ее решению, да пребудет с вами сила Эванса!

Вошли и вышли, приключение на 20 минут
Всего голосов 15: ↑14 и ↓1+13
Комментарии8

Экспресс-анализ данных на Python

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

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

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

Гайд для новичков по установке Kubernetes

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

© кадр из к/ф «Пираты Карибского моря»

С чего начинается практическое освоение любой системы? Правильно, с установки. Данный гайд является компиляцией из народной мудрости, официальной документации, а также собственного опыта и призван помочь новичкам разобраться с тем, как же все таки устанавливать Kubernetes.

Мы потренируемся ставить как вырожденный кластер «все-в-одном», состоящий только из одного узла, так и настоящий высокодоступный (high available) кластер с полным резервированием. В процессе работы мы рассмотрим применение различных контейнерных движков (Container Runtimes): cri-o, containerd, связки Docker + cri-dockerd plugin. Кроме этого, потренируемся настраивать отказоустойчивый балансировщик нагрузки на базе keepalived и haproxy.

Весь процесс установки будет детальным образом прокомментирован и разложен по шагам, а в реперных точках мы будем делать снимки состояния виртуальных машин (snapshots), что позволит рассмотреть различные варианты установки без необходимости делать одну и ту же работу по несколько раз.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+24
Комментарии13

Пришло время пересмотреть структуру проектов на .NET

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

C релизом .net 6 у нас появился новый упрощенный подход для быстрого создания сервисов  Minimal APIs. Эта статья появилась потому, что с новым подходом появились новые вопросы, связанные с организацией кода внутри проекта.

Это — немного вольный перевод статьи "Maybe it's time to rethink our project structure with .NET 6" от Tim Deschryver про подход к созданию сервисов с помощью Minimal APIs, который может помочь нам сделать архитектуру приложения более чистой, простой и легкой в поддержке и развитии.

Читать далее
Всего голосов 14: ↑11 и ↓3+10
Комментарии24

Работа с Azure Monitor Activity Logs

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

Привет Хабр сегодня мы поработаем с Azure Monitor Activity Logs в три простых шага: логгинг, мониторинг и алертинг.

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

ETL процесс для миграции процедур с mssql на postgreSQL. Часть 1. Введение

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

Хочется поделиться опытом преображения одного представления кода в другой с помощью ETL процесса и графовой базы данных на актуальном в наши дни примере.

Вкратце есть база на mssql сервере есть хранимые процедуры. Есть база на postgres. Есть ETL процесс на Apache Air Flow. Запускаем процесс, по окончании в базе postgres появляются процедуры и данные.

Скажу сразу данный подход не является полным автоматом, который перенесет любую mssql базу на postgres. Это попытка систематизировать подобный переход, разбить переход на управляемые небольшие части, которые типизируются и над которыми выполняются преобразования с возможностью контроля результата.

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

Визуализация архитектуры модели PyTorch

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

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

В этом посте вы узнаете:

Как сохранить модель PyTorch в формате обмена

Как использовать Netron для создания графического представления.

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

Технический долг. Как не обанкротиться

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

Привет, Хабр! Хотел бы поделиться с вами своим анализом работы с техническим долгом.

Как появился этот долг? Мы его взяли что бы поставить заказчику функционал раньше, чем мы бы смогли, если бы не «заняли». Так же как бизнесмен берет кредит для своей бизнес идеи.

? Экстремальное программирование — это пример разработки с кредитом

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

C# и обработка медиафайлов средствами FFmpeg, Pandoc и ImageMagick

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

Приветствую читатели, в этой статье я бы хотел рассказать о написанной мной OpenSource библиотеке MediaFileProcessor под платформу .NET (.netstandart 2.0).

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

Пишем Телеграм бота на Python c использованием API ChatGPT

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

Данная статья является вольным переводом статьи на medium.com, плюсом от себя реализация API ChatGPT в Телеграм боте.

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

Готовый/работающий телеграм бот ChatGPT доступен тут.

На вопрос "Кто ты?" сама нейросеть отвечает примерно следующее "Я - ChatGPT, крупнейшая языковая модель, созданная OpenAI. Я разработана для обработки естественного языка и могу помочь вам ответить на вопросы, обсудить темы или предоставить информацию на различные темы".

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

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

Читать далее
Всего голосов 9: ↑3 и ↓6-3
Комментарии7

Пять примечательных функций Postman, которые мы используем в тестировании банковских систем

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

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

В этом посте я пробегусь по пяти функциям и приемам для Postman, которые мы используем для тестирования систем, связанных с банковскими операциями в сегменте C2B – теми самыми, которые весь мир ежедневно проводит через всевозможные кассовые аппараты, банкоматы, терминалы и QR-коды.

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

Удаленный доступ к IP камерам, теперь на Python

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

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

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

Простейшая нейросеть: еще раз и подробнее

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

Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли вообще справляются при минимальных помехах. Нейросети же уже сейчас решают многие задачи (включая эту) намного лучше людей. Их способность обучаться на примерах и выдавать верный результат поистине очаровывает, однако за ней лежит простая математика. Рассмотрим это на примере простого перцептрона.
Данная статья представляет собой пересказ-конспект первой части книги Тарика Рашида "Создай свою нейросеть" для тех, кто начал изучать тему, не понял отдельные детали или с трудом охватывает общую картину.

Читать далее
Всего голосов 84: ↑83 и ↓1+95
Комментарии27

Полное руководство по модулю asyncio в Python. Часть 8

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

Перед вами восьмая часть (1234567) перевода руководства по модулю asyncio в Python. Здесь вы найдёте разделы исходного материала с 20 по 22.

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

Что такое свой NAS и как его начать делать?

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

Современный и доступный NAS - понятие довольно растяжимое. Для чего он нужен - для дома или офиса, его размеры, мобильность, стоимость, программное обеспечение, все эти и другие вопросы так или иначе определяют конкретную модель и сферу применения. Рассмотрим то, что будет интересно всем - это системы хранения для дома или малых рабочих групп. Причем существуют не только ограничения по стоимости и локальной доступности, но также и простое желание собрать что-то своими руками. Мы постарались разобраться в ситуации, проанализировать существующие решения и, возможно, предложить свой вариант развития, который будет интересен и тем, кто хочет купить готовое решение, и тем, кто смотрит на NAS как на потенциальное устройство для самостоятельной сборки от железа до софта.

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

Информация

В рейтинге
Не участвует
Откуда
Newmarket, Ontario, Канада
Дата рождения
Зарегистрирован
Активность