Как стать автором
Обновить
8
Карма
0
Рейтинг
Кирилл Белов @KirillBelovTest

Инженер по автоматизации тестирования

  • Подписчики 3
  • Подписки 2
  • Публикации
  • Комментарии

Об одной любопытной возможности IPFS

Децентрализованные сети Семантика *Исследования и прогнозы в IT Распределённые системы *Будущее здесь

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 3K
Комментарии 1

Как я сделал Discord бота для игровой гильдии с помощью .NET Core

Блог компании Dodo Engineering .NET *API *C# *
Tutorial

Всем привет! Недавно я написал Discord бота для World of Warcraft гильдии. Он регулярно забирает данные об игроках с серверов игры и пишет сообщения в Discord о том что к гильдии присоединился новый игрок или о том что гильдию покинул старый игрок. Между собой мы прозвали этого бота Батрак.

В этой статье я решил поделиться опытом и рассказать как сделать такой проект. По сути мы будем реализовывать микросервис на .NET Core: напишем логику, проведем интеграцию с api сторонних сервисов, покроем тестами, упакуем в Docker и разместим в Heroku. Кроме этого я покажу как реализовать continuous integration с помощью Github Actions.

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

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 12K
Комментарии 4

О классах Program и Startup — инициализация ASP.NET приложения. Часть I: Program и IHostBuilder

.NET *C# *

Не так давно на Хабре я увидел статью с многообещающим названием "Что из себя представляет класс Startup и Program.cs в ASP.NET Core". Меня всегда интересовало и интересует, что именно происходит под капотом той или иной библиотеки или фреймворка, с которыми мне доводится работать. И к веб-приложениям на ASP.NET Core это относится в полной мере. И я надеялся получить из этой статьи новую информацию о том, как работают упомянутые классы при запуске такого приложения. Та статья, к сожалению, меня разочаровала: в ней всего лишь в очередной раз был пересказан кусок руководства, никакой новой информации я оттуда не получил. И при чтении ее я подумал, что, наверное, есть и другие люди, которым, как и мне, интересно не просто знать, как применять тот или иной фреймворк (ASP.NET Core в данном случае), но и как он работает. А так как я по разным причинам последнее время довольно сильно углубился во внутреннее устройство ASP.NET Core, то я подумал, что теперь мне есть много что рассказать о нем из того, что выходит за рамки руководств. И вот потому я решил для начала написать статью про то, что действительно представляют из себя классы Startup и Program - так, чтобы рассказать не о том, как ими пользоваться, а о том, как работают эти классы, причем - в контексте работы всего веб-приложения на ASP.NET Core. Однако поскольку необъятное объять нельзя, то предмет этот статьи ограничен. Прежде всего, она ограничивается рассказом только про веб-приложения, созданные с использованием нового типа шаблона приложения - Generic Host. Во-вторых, статья будет посвящена только тому, как происходит инициализация веб-приложения, потому что основная роль рассматриваемых классов именно такова - инициализация и запуск размещенного приложения.

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

Итак, кому рассматриваемая тема, даже в столь ограниченном объеме, интересна - добро пожаловать под кат.

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

Запуск тестов Selenium в Jenkins

Блог компании RUVDS.com Тестирование IT-систем *Программирование *DevOps *
Перевод
Tutorial
В наши дни понятие «DevOps» у всех на слуху. Это — организационный подход, широко используемый для ускорения разработки и развёртывания приложений. Организации внедряют у себя практики DevOps, так как они обещают дать тем, кто их использует, всё лучшее, что существует в мире разработки ПО, причём — на всех этапах работы — от планирования и тестирования, до развёртывания и мониторинга проектов. В реализации практик DevOps важную роль играют CI/CD-инструменты вроде Jenkins. А интеграция Jenkins с Selenium значительно облегчает процесс автоматизации Selenium-тестов.



В этом материале я расскажу о том, что такое Jenkins и Selenium, и остановлюсь на методах их интеграции. Если у вас уже есть некоторый опыт работы с этими системами, но вы интересуетесь тем, как наладить их совместную работу, вы можете сразу же перейти к соответствующему разделу.
Читать дальше →
Всего голосов 45: ↑42 и ↓3 +39
Просмотры 7.1K
Комментарии 4

Мои machine learning тулы для инвестирования

Блог компании Open Data Science Data Mining *Машинное обучение *Венчурные инвестиции Искусственный интеллект

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

Читать далее
Всего голосов 55: ↑54 и ↓1 +53
Просмотры 25K
Комментарии 38

Монада «Maybe» через async/await в C# (без Task-oв!)

.NET *C# *Функциональное программирование *
Перевод


Обобщенные асинхронные типы возвращаемых значений — это новая возможность появившаяся в C# 7, которая позволяет использовать не только Task в качестве возвращаемого типа асинхронных (async/await) методов, но также и любые другие типы (классы или структуры), удовлетворяющие определенным требованиям.


В то же время async/await — это способ последовательно вызвать некий набор функций внутри некоторого контекста, что является сущностью шаблона проектирования Монада. Возникает вопрос, можем ли мы использовать async/await для написания кода, который будет вести себя так же, как если бы мы использовали монады? Оказывается, что да (с некоторыми оговорками). Например, приведенный ниже код компилируется и работает:


async Task Main()
{
  foreach (var s in new[] { "1,2", "3,7,1", null, "1" })
  {
      var res = await Sum(s).GetMaybeResult();
      Console.WriteLine(res.IsNothing ? "Nothing" : res.GetValue().ToString());
  }
  // 3, 11, Nothing, Nothing
}

async Maybe<int> Sum(string input)
{
    var args = await Split(input);//Нет проверки результата
    var result = 0;
    foreach (var arg in args)
        result += await Parse(arg);//Нет проверки результата
    return result;
}

Maybe<string[]> Split(string str)
{
  var parts = str?.Split(',').Where(s=>!string.IsNullOrWhiteSpace(s)).ToArray();
  return parts == null || parts.Length < 2 ? Maybe<string[]>.Nothing() : parts;
}

Maybe<int> Parse(string str)
    => int.TryParse(str, out var result) ? result : Maybe<int>.Nothing();

Далее я объясняю, как работает этот код ...

Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 11K
Комментарии 29

Фундаментальная теория тестирования

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


Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 118K
Комментарии 4

Смотрим любое кино мгновенно

Микроформаты *Децентрализованные сети Расширения для браузеров Управление медиа *

После ареста серверов Moonwalk жить стало в разы труднее. Лично я уже совсем отвык от торрентов. Нужно что-то качать, ждать, чем-то открывать, куда-то кликать, иногда еще и место на диске кончается. Как можно ждать час пока скачается фильм? За час можно жизнь прожить. Пришлось искать решение, которое позволит смотреть кино также просто, как и раньше. Норматив: от идеи посмотреть что-нибудь до начала просмотра - не более минуты.

Вы скажете: есть Popcorntime, не морочь нам голову. Все так, есть Popcorntime, идея классная, но реализация не совсем та, какую хотелось бы. Часто нет нужных дорожек, субтитров, все как-то непрозрачно работает. Вот бы можно было иметь интерфейс, который ищет необходимое кино по всем нужным трекерам и мгновенно его начинает крутить. Есть такой интерфейс.

Читать далее
Всего голосов 94: ↑80 и ↓14 +66
Просмотры 83K
Комментарии 266

О фейковых криптовалютах (Ethereum, Tron, Ripple и пр)

Платежные системы *Криптовалюты

К сожалению, концепция криптовалют, несмотря на своё изящество, не нашла понимания у основной массы пользователей. "Среднему пользователю" неважно, лежат ли его деньги в распределённом блокчейне или на каком-то конкретном сайте. Для него это всё равно "где-то в сети". Когда деньги на сайте - даже спокойнее, потому что понятно, кто за него отвечает, в случае чего можно поругаться или написать в соцсети о том, какие они негодяи, или даже подать в суд, а если деньги "потерялись" в блокчейне, то и пожаловаться некому. Пользователи, покупающие биткоины, не хранят приватные ключи у себя, а в основном делегируют это посторонним сайтам, потому для них разницы действительно нет. А даже если хранят у себя - сначала ведь этот ключ они где-то генерируют, и потом скачивают. Понятно, что это уже не полностью их ключ. В результате распространяются слухи о "взломе биткоина", когда деньги уходят хакерам, и подобные байки. С другой стороны, умные и авторитетные люди объясняют, что блокчейн и построенные на нём криптовалюты - это надёжно и правильно, и не верить им нет оснований.

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

Читать далее
Всего голосов 286: ↑261 и ↓25 +236
Просмотры 252K
Комментарии 529

Спросите Итана: пространство-время – реальная сущность или просто концепция?

Научно-популярное Физика
Перевод

Схема сильного искривления пространства-времени вблизи горизонта событий чёрной дыры. Чем ближе вы приближаетесь к массивному телу, тем сильнее искривляется пространство. В итоге вы оказываетесь в таком месте, откуда не может убежать даже свет: внутри горизонта событий.

Большинство людей, думая о Вселенной, представляют себе материальные объекты, находящиеся на огромных космических расстояниях друг от друга. Под действием собственной гравитации материя схлопывается, формируя такие космические структуры, как галактики. Газовые облака, сжимаясь, порождают звёзды и планеты. Звёзды испускают свет, сжигая топливо в реакциях ядерного синтеза. Этот свет проходит по всей Вселенной, подсвечивая всё, на что натолкнётся. Однако Вселенная – это не только объекты внутри неё. Есть ещё и ткань пространства-времени, играющая по своим правилам – по правилам общей теории относительности (ОТО). Ткань пространства-времени искривляется в присутствии материи и энергии, при этом само искривление ткани пространства-времени диктует материи и энергии, как им двигаться. Но что такое, конкретно, пространство-время – это нечто «реальное», или просто облегчающий подсчёты инструмент? Об этом нас спрашивает читатель:
Что именно представляет собой пространство-время? Это реальная штука типа атомов, или математический конструкт, используемый для описания того, как масса «порождает» гравитацию?


Отличный вопрос, а его тема достаточно сложна для размышлений. Более того, до появления Эйнштейна наше представление о Вселенной сильно отличалось от текущего. Давайте вернёмся в далёкое прошлое Вселенной, когда у нас ещё не было концепции пространства-времени, и будем двигаться вперёд, до сегодняшнего дня.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 11K
Комментарии 43

Вышел Windows Terminal Preview 1.6

Блог компании Microsoft Настройка Linux *Системное администрирование *.NET *Разработка под Windows *

Добро пожаловать на наш первый релиз Windows Terminal 2021 года! Этот релиз приносит новые функции для Windows Терминал Preview 1.6, а также перемещает Windows Терминал в версию 1.5, которая включает в себя функции из этой статьи. Вы можете загрузить обе версии из Microsoft Store или со страницы релизов GitHub. Ниже приведены некоторые из основных моментов в этом выпуске, однако мы рекомендуем изучить полные заметки о релизе, чтобы узнать все, что улучшилось с версией 1.6.

Читать далее
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 13K
Комментарии 19

В чём разница между узлом и элементом DOM?

Блог компании RUVDS.com Разработка веб-сайтов *HTML *
Перевод
Объектная модель документа (Document Object Model, DOM) — это интерфейс, который рассматривает HTML- или XML-документы в виде древовидных структур, каждый узел которых является объектом документа. DOM, кроме того, предоставляет набор методов для выполнения запросов к дереву документа, для изменения его структуры и для выполнения с ним некоторых других действий.



При работе с DOM, кроме того, используется термин «элемент». Элементы очень похожи на узлы, но, всё же, это — не одно и то же. В чём же разница?
Читать дальше →
Всего голосов 51: ↑47 и ↓4 +43
Просмотры 19K
Комментарии 7

Наследование в Nuget-пакетах

Блог компании Райффайзенбанк .NET *ООП *
image

Nuget-пакет — это не только архив с переиспользуемыми сборками, но и контент с target-скриптами, которые задают поведение MsBuild при сборке приложения. Это дает нам возможность рассматривать nuget-пакет в качестве самостоятельного объекта, у которого есть состояние и поведение.

А раз у нас есть объект, то что мешает попробовать посмотреть на работу с ним со стороны объектно-ориентированной парадигмы? Давайте попробуем применить для nuget-пакетов один из основных принципов ООП — наследование.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 3.2K
Комментарии 7

Selenium + AutoIT. Автоматизация тестирования Windows окон

Блог компании Digital Design Тестирование IT-систем *Тестирование веб-сервисов *
Tutorial
Меня зовут Иван Сидоренко, я инженер по тестированию в компании Digital Design.

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

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


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

Атрибуты C#: обо всех аспектах

.NET *C# *ООП *
Здравствуй, читатель. В этой статье описаны атрибуты со всех сторон — начиная от спецификации, смысла и определения атрибутов, создания собственных и работе с ними, заканчивая добавлением атрибутов на рантайме и наиболее полезными и интересными существующими атрибутами. Если вам интересна тема атрибутов в C#, то добро пожаловать под кат.

Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 20K
Комментарии 1

Парсинг telegram каналов для агрегатора контента на PHP

PHP *Развитие стартапа
Из песочницы
Tutorial
Привет, Хабр!

Несколько лет назад я начал разрабатывать свой агрегатор контента, что бы упростить свой серфинг в сети. Изначально я парсил только rss, vk и facebook, но в прошлом году решил сделать полный рефакторинг проекта: отказаться от парсинга на клиенте, сделать нормальный back-end, использовать базу данных для хранения данных и расширить список поддерживаемых ресурсов.

Помимо стандартного набора из rss, fb, vk, twitter, instagram, youtube я добавил поддержку произвольных открытых каналов из telegram.

image

Под катом пошаговая инструкция, как парсить любые каналы в telegram без регистрации и смс.
Читать дальше →
Всего голосов 21: ↑14 и ↓7 +7
Просмотры 55K
Комментарии 26

Вы безумны, остановитесь пока не поздно

Программирование *Учебный процесс в IT Карьера в IT-индустрии IT-компании
Из песочницы
image

Привет Хабр! Всего каких-то пару лет назад на страницах нашего любимого ресурса красовались вдохновляющие статьи успешного успеха, как вчерашний сантехник / таксист / сварщик / сутенёр успешно интегрировался в IT сообщество и начал зарабатывать 100500$ в секунду левой пяткой. Здорово, не правда ли? Но всё ли так радужно с этими историями с точки зрения действующих разработчиков? Прошу под кат.
Читать дальше →
Всего голосов 300: ↑269 и ↓31 +238
Просмотры 150K
Комментарии 893

Jupyter для .NET. «Как в питоне»

.NET *C# *Математика *F# *
Несколько месяцев назад Microsoft рассказали о Jupyter в .NET. Но активности по этому топику очень мало, а ведь тема очень интересная. Но что такое прикольное придумать? Я решил сделать удобный вывод класса Entity из библиотеки символьной алгебры:



Выглядит круче, чем в питоне. Делается просто, доставляет массу удовольствия. Приглашаю под кат!
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 7K
Комментарии 11

50 вопросов по Docker, которые задают на собеседованиях, и ответы на них

Блог компании Southbridge Карьера в IT-индустрии
Перевод


Docker, первый выпуск которого был еще в 2013 году, — весьма удобный инструмент для сборки пакетов, поставки и запуска приложений в «контейнерах». Большинство крупных компаний, например, Google, Amazon и VMware рассматривают Docker как зрелую технологию для контейнеров, поэтому сейчас самое время изучить этот инструмент и в результате продвинуться по карьерной лестнице. Хотите? В статье будут приведены вопросы по Docker, ответы на которые нужно знать, если вы идете на собеседование.

Читать дальше →
Всего голосов 24: ↑16 и ↓8 +8
Просмотры 30K
Комментарии 18

Нелинейный мир и инструменты для расчета сложных нелинейных задач методом конечных элементов

Блог компании Нанософт Анализ и проектирование систем *Работа с 3D-графикой *Алгоритмы *CAD/CAM *
Привет, Хабр! В названии этой статьи есть словосочетание «нелинейный мир»… Думаю, что большинство читателей поняли смысл этого словосочетания, но я всё же расшифрую его.

Реальные системы можно рассматривать как линейные только в ограниченном диапазоне нагрузок. Реальный же мир вокруг нас нелинеен (рис. 1). Нелинейность есть нарушение принципа суперпозиции в некотором явлении (механической системе): результат действия суммы факторов не равен сумме результатов от отдельных факторов. Однако по разным причинам, в том числе в связи с отсутствием необходимых знаний, навыков моделирования, необходимого программного обеспечения, инженеры зачастую решают задачи только в линейных постановках. Даже когда линейный подход дает очень большие погрешности. Точное же моделирование поведения системы часто требует проведения нелинейного анализа.


Рис. 1
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 3.3K
Комментарии 6

Информация

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