• Почему не утилизируются полностью все ядра процессора?

    sarapinit
    @sarapinit
    Shahelm, вероятно работа есть только для одного ядра. Если вы параллельно отправили кучу запросов в БД, то это не значит что она вам будет отвечать параллельно. Она поставит запросы в планировщик и будет их исполнять по мере сил. А если у неё одно ядро, то скорее всего вообще все будет последовательно исполняться. Вы можете вывести время начала операции и время окончания операции в консоль. Скорее всего у вас начало будет у всех разом а окончание будет по очереди.
    Если вам надо ускорить выгрузку из БД, то нужно измерять не загрузку CPU а время выполнения операции. И оптимизировать его, потому что в работе у вас задействуются CPU вашего компьютера, сеть, CPU базы данных. Вероятно, быстрее будет сделать один общий запрос в БД по всем Id сразу а потом разделить.
  • Распределённая система: как разрешить единственное подключение пользователя?

    sarapinit
    @sarapinit
    Можно рубить на уровне балансировщика, если он у вас один На основе чего сделан балансировщик и какая схема подключения?
  • Почему не утилизируются полностью все ядра процессора?

    sarapinit
    @sarapinit
    Shahelm, а что в случае вашей программы должно грузить ядра? Вы отправляете запрос, дальше идет работа на БД, пока это происходит CPU не загружен, чем по вашему он должен заниматься?
  • Какая база подойдет для high-load мессенджера?

    sarapinit
    @sarapinit
    А вы уже знаете, какие конкретно запросы у вас будут?
  • Изучение языка, как хобби?

    sarapinit
    @sarapinit
    urtmll, c# сложнее и потребует большего вложения на начальном этапе. Это язык общего назначения и его возможности достаточно широки: десктопные приложения, unity для игр, xamarin для мобилок, asp.net для веба, ML.net для машинного обучения и т.д. Но я бы сказал, что он скорее для командной разработки — много лишних церемоний. Для хобби я бы его не брал.
  • Как работают современные мессенджеры?

    sarapinit
    @sarapinit
    Stalker_RED, в телеге есть поиск по чату отдельно, есть поиск в конкретном чате. Возможно, индексы строятся 2мя разными способами: индекс по сообщениям конкретного пользователя и индекс по сообщениям конкретного чата. Хотя возможен и вариант с индексами только по чатам + с параллельным запросом по всем индексам всех чатов пользователя
  • Как работают современные мессенджеры?

    sarapinit
    @sarapinit
    jolKot, голосую за этот вариант) мне кажется он очень близок к правде. Распределение нагрузки решается шардингом — получается много небольших БД вместо одной огромной. Скорее всего каждое сообщение разбивается по словам/частям слов и сохраняется в поисковый индекс типа слово—message_id и такой индекс строится для каждого пользователя и тоже шардируется. При поиске сначала получаем идентификаторы подходящих сообщений из поискового индекса, потом выгружаем сообщения из БД с сообщениями.
  • Как лучше оформлять текcтовые ошибки для локализации ASP.NET CORE web api?

    sarapinit
    @sarapinit
    Жили в горах Мастер и ученик.

    Были они отшельниками. Однажды Мастер говорит ученику:
    – Сегодня мы пойдем к людям и будем отвечать на их вопросы.
    Вот спустились они с гор, вышли на дорогу, сели на обочине и стали ждать.. Скоро начали приходить люди и задавать Мастеру вопросы – о смысле жизни, о мироустройстве вселенной и т.д., но Мастер молчал. И вот когда стемнело и люди разошлись на дороге появился путник, он подошел к Мастеру и ученику и спросил:
    – Добрые люди, подскажите как мне дойти к «такому-то» селению?
    И вдруг Мастер заговорил, начал объяснять как пройти до селения, в итоге Мастер решил проводить путника и помочь ему нести сумки. Когда они помогли путнику, то стали возвращаться к себе в горы. Ученик долго шел и молчал, но потом не выдержав задал Мастеру вопрос:
    – Мастер, а почему когда сегодня к тебе приходили люди и задавали такие умные вопросы, ты молчал, а стоило подойти какому то путнику и спросить дорогу – ты вдруг заговорил, и мало того даже решил проводить его?
    И Мастер ответил:
    – Потому что за целый день это был единственный человек который знал чего он хотел
  • Чем стоит пользоваться для написания нейросети на C# (и, в частности, в unity)?

    sarapinit
    @sarapinit Куратор тега C#
    Дарья Сафонова, к сожалению, нет. Я бы для начала смотрел примеры использования, которые есть на github.
    https://github.com/accord-net/framework/tree/maste...
    Аккорд - это такая сборная солянка алгоритмов машинного обучения от разных людей, там нет какой-то единой линии партии.
    Если хотите хорошую доку, то берите ML.NET. Это фреймворк от Microsoft и они в него сейчас очень сильно вкладываются.
  • Не инициализурется переменная. Почему?

    sarapinit
    @sarapinit Куратор тега C#
    опечатка в "ConnectionStrings "
    уберите пробел
  • Стоит ли покупать онлайн курсы?

    sarapinit
    @sarapinit
    approximate solution, это вакансия на позицию «отдел разработки»)))
  • Стоит ли покупать онлайн курсы?

    sarapinit
    @sarapinit
    demshpw, в 1ю вакансию видимо написали вообще всё, что знали. Начать нужно с выявления слов, которые чаще всего встречаются в вакансиях из желаемой области. В вашем случае это будет что-то вроде:
    - linux
    - mysql
    - php
    - laravel или symphony (выберите одно)
    - html, css, js
    - jquery или React (лучше бы реакт конечно)
    - git

    Это навыки которые нужны фулстек разработчику. Для начала нужно в очень общем виде, для чего каждое из этих слов нужно. Далее возьмите какой-то сайт и попробуйте сделать его копию. (Например, сделайте копию Хабра). По пути у вас будут возникать вопросы для ответов на которые вам нужно будет углубить знания о какой-то из технологий.
  • Стоит ли покупать онлайн курсы?

    sarapinit
    @sarapinit
    demshpw, я понимаю. Что в описании желаемой вакансии? Скиньте пример.
  • Стоит ли покупать онлайн курсы?

    sarapinit
    @sarapinit
    demshpw, вы на какую позицию хотите устроиться работать?
  • Стоит ли покупать онлайн курсы?

    sarapinit
    @sarapinit
    demshpw, с другой стороны, в процессе обучения очень важно получать положительное подкрепление, которое будет тащить вас дальше. Если вы способны извлекать положительное подкрепление самостоятельно — прекрасно, можно самому искать всю инфу, учиться по книгам и статьям. Если у вас проблемы с этим, вы пробуете и у вас не выходит много раз подряд, то это способно отбить желание продолжать. Секрет скорее в этом: как построить свое обучение так, чтобы было что-то что на следующем шаге будет тянуть дальше. Это может быть личное осознание, что ты молодец. Или это может быть похвала со стороны наставника. Тут зависит от характера, что вас больше мотивирует.
  • Стоит ли покупать онлайн курсы?

    sarapinit
    @sarapinit
    demshpw, я к тому что в процессе обучения уже должен какой-то продукт получаться. Это очень частая ошибка: подменять достижение цели сбором информации. База безусловно нужна, я предлагаю вам изучать её в процессе. Например вы делаете сайт, встречаете какую-то проблему, ищете, а как вообще люди делают, углубляетесь в проблему ровно на сколько нужно. Периодически проводя обзор своих знаний и переосмысление.

    Чтобы не получилась ситуация когда вы хотите, например, сделать ремонт. И начинаете с подробного изучения всех инструментов и стройматериалов.
  • Стоит ли покупать онлайн курсы?

    sarapinit
    @sarapinit
    demshpw, эффективность курса тоже под вопросом. Смысл в том что в работе вам придется постоянно заниматься поиском информации и критической оценкой этой информации. Проходя курс вы получите иллюзию безопасности. И можете так год просидеть, думая что становитесь программистом. Также не все что вы прочитаете и узнаете, вам пригодиться, в любом случае часть времени впустую уйдет, можете даже не переживать об этом. Я бы поставил целью не прохождение курса, а качественное выполнение тестового задания на джуниора в интересную вам компанию. Это ближе к реальности и это поможет сформировать учебную программу для себя.
  • Как правильно в EF core (code first) организовать работу с колонками таблицы составного типа?

    sarapinit
    @sarapinit Куратор тега C#
    Вам нужно использовать HasComputedColumnSql для описания вашего объекта.
    Для SqlServer будет как-то так:
    .HasComputedColumnSql("json_value(json_data, '$.age') persisted");

    Для PostgreSQL как-то так:
    .HasComputedColumnSql("generated always as (json_data->> 'age') stored");

    (Для Postgres могу напутать с синтаксисом, но общая идея сохраняется)

    И потом накидываете индекс на это поле как на обычное поле через .HasIndex()

    https://www.learnentityframeworkcore.com/configura...
    https://olontsev.ru/2016/05/sql-server-2016-json-p...
    https://rob.conery.io/2019/10/24/virtual-computed-...

    PS.
    stored поддерживается в PostgreSQL начиная с 12 версии, если у вас меньше то видимо не выйдет. Но вообще в PostgreSQL есть возможность создать индекс на поле jsonb. Правда я не уверен что он будет работать если сделать jsonb индекс + вычисляемое поле без опции stored.
  • Как правильно в EF core (code first) организовать работу с колонками таблицы составного типа?

    sarapinit
    @sarapinit Куратор тега C#
    Sergey, поиск и сортировка возможны с использованием вычисляемых свойств. Делаете вычисляемое свойство через jsonpath (персистентное) и на него накидываете индекс.