Задать вопрос
  • Вылазиет ошибка не знаю как решить?

    Это значит, что у тебя нет модуля win32crypt
    Его нужно установить через pip
    Ответ написан
    Комментировать
  • Что это за скрипт?

    Буквально первая строчка в гугле

    Swap nodemon instead of node to run your code, and now your process will automatically restart when your code changes
    Ответ написан
  • Какие статьи почитать (или видео), чтобы разобраться полностью в теме про роутинг в .net?

    Ну варианта три:
    1. Конвенции
    2. Атрибуты
    3. MapGet / MapPost итд

    Это если не считать всякие сторонние роутеры типа F# Giraffe

    Атрибуты были и в .net framework.
    А от Convention based все уходят, тк:
    1. Не позволяет делать нормальный rest-style роутинг. Да и в принципе маршруты с ним получаются не очень красивые, и не очень предсказуемые.
    2. Легко может поломаться

    private static void MapEndpoint(

    Последнее - это частный случай 3го варианта. Ещё он есть в формате отдельной библиотеки - Carter
    Ответ написан
    2 комментария
  • Сортировка полей объекта?

    Можно указывать порядок свойств для сериализации при помощи атрибута JsonPropertyOrder.

    Ещё можно попробовать программно через https://learn.microsoft.com/en-us/dotnet/standard/...
    (вот примитивный пример, который не учитывает атрибуты)
    using System;
    using System.Text.Json;
    using System.Text.Json.Serialization;
    using System.Text.Json.Serialization.Metadata;
    
    var options = new JsonSerializerOptions
    {
        TypeInfoResolver = new DefaultJsonTypeInfoResolver
        {
            Modifiers = { AlphabeticalOrderModifier }
        },
        WriteIndented = true
    };
    
    var obj = new MyClassA { X = 42, B = new MyClassB { X = 69 } };
    var result = JsonSerializer.Serialize(obj, options);
    Console.WriteLine(result);
    
    static void AlphabeticalOrderModifier(JsonTypeInfo jsonTypeInfo)
    {
        if (jsonTypeInfo.Kind != JsonTypeInfoKind.Object) return;
        var properties = jsonTypeInfo.Type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty).OrderBy(x => x.Name);
        jsonTypeInfo.Properties.Clear();
        foreach (var property in properties)
        {
            var propertyInfo = jsonTypeInfo.CreateJsonPropertyInfo(property.PropertyType, property.Name);
            propertyInfo.Get = property.GetValue;
            propertyInfo.Set = property.SetValue;
            jsonTypeInfo.Properties.Add(propertyInfo);
    
        }
    }
    
    class MyClassA
    {
        public int X { get; set; }
        public MyClassB B { get; set; }
    }
    
    class MyClassB
    {
        public int X { get; set; }
    }


    Выводит такое (как раз всё в алфавитном порядке, не смотря на то, в каком порядке всё написано в классе):
    {
      "B": {
        "X": 69
      },
      "X": 42
    }
    Ответ написан
    8 комментариев
  • Как привести код в читаемый вид?

    Код у тебя обфусцирован.
    Можешь попробовать деобфусцировать при помощи каких-нибудь автоматических инструментов (гугли "deobfuscate JavaScript code")
    Возможно, придётся поиграться с настройками.
    Но не факт, что получится что-то очень читабельное.
    И абсолютно точно ты не получишь легкочитаемый исходный код - оригинальные названия переменных и функций ты точно не получишь
    Ответ написан
  • Как реализовывать коллизии в skia?

    skia отвечает только за отрисовку.
    Всё остальное ты должен реализовать сам.

    Как мысль: ты можешь запускать "симуляцию" движения этих фигур и периодически просить skia отрисовать кадр получившейся симуляции.
    Ответ написан
  • Random.Range(0, 2) не возвращает значение 2, что делать?

    Второй параметр Random.Range - это верхняя граница НЕ включительно.
    Так что тебе нужно просто передать туда 3, вместо 2, как сказал K0TlK
    Ответ написан
    Комментировать
  • На чем делать UI для Windows в 2022 году?

    MAUI - это масштабное обновления xamarin-а по сути. ИМХО без поддержки Linux его кроссплатформенность мало чего стоит.
    WPF - это нативная технология при этом с WPF тебе доступны всякие сторонние и родные контролы. В том числе самые новые от WinUI 3.
    UWP превратился в WinUI 3
    Avalonia - кроссплатформа. "Как WPF но лучше", но без поддержки контролов от WPF или WinUI, но есть много свободных вполне неплохих. Да и система стилей достаточно удобная

    Если тебе не нравится Winforms из-за внешнего вида стандартных контролов, то всегда можно использовать сторонние.

    На втором месте наверное AvaloniaUI смущает что на нем каких то больших проектов.

    Есть много разных проектов, в том числе крупных и коммерческих, и от именитых компаний.
    https://avaloniaui.net/Showcase

    Так как программа небольшая я склоняюсь все быстро сделать на Windows Forms, в 2022 году кто то стартует на нем новые проекты?

    Если ты делаешь что-то небольшое и чисто для себя, и ты не умеешь работать с XAML и нет времени на освоение - нет причин не использовать Winforms. Да, он имеет проблемы с производительностью, да он не очень красивый, да винформы не очень легко поддерживать. Но является ли это реальной проблемой для вашего проекта?

    В общем вот мой топ-чарт:
    1. Если дёшево и сердито - Winforms (остальное - если нужен нормальный дизайн)
    2. Если кроссплатформу - Avalonia
    3. Если нужно на телефоны - MAUI (хотя Avalonia уже можно заставить работать на Android)
    4. Если хочется в новый дизайн винды - WinUI 3
    Ответ написан
    6 комментариев
  • Чему изначально равен GET запрос?

    <form method ="GET">

    В чём смысл делать форму с GET? Это форма поиска?
    Пока мы не нажали на кнопку "отправить", чему равен каждый элемент
    глобального ассоциативного массива?

    Ничему не равен - его ещё просто не существует, тк скрипт запустится только тогда, когда этот GET запрос придёт на сервер. А запрос будет отправлен только после нажатия на кнопку.

    И грамотно ли я вывел значения GET запросов в цикле?

    Нет. Ты в цикле проходишься по обычному массиву, а синтаксис используешь такой, будто по ассоциативному.\
    А ещё у тебя отступов в коде нет, ни в html, ни в php - читать сложно.
    Правильнее будет так:
    $request = $_GET; 
           	   
    $keys = ["name1", "age1", "weight1"];
    
    foreach($keys as $key){
      if(isset($request[$key])) {
         echo $request[$key];
      }
    }

    Либо так:
    $request = $_GET; 
           	   
    foreach($request as $key=>$value){
         echo $key.'='.$value;
    }
    Ответ написан
    21 комментарий
  • Проектирование БД на sqlite3, как правильно спроектировать некоторые таблицы?

    Вопрос №1 нужно ли для каждой таблицы создавать дополнительные таблицы для связи многие ко многим. Потому что по сути над слябом/деталью может выполнятся несколько работ, каждая работа из таблицы works может быть выполнена над каждым слябом/деталью?

    Если по вашей предметной области такое возможно, то да.
    Если нет, то нет.

    Вопрос №2 могу ли я например сделать столбец id_slabs_works но он будет пустым например если столбец id_details_works будет заполнен и наоборот?

    В теории - конечно можешь.
    Но возникает встречный вопрос.
    Если слэб и деталь (кстати, в твоём случае это part, а не details) по факту одни и те же атрибуты, то может их имеет смысл обобщить и засунуть в одну таблицу?

    Вопрос №3 если мне нужно фиксировать когда сотрудник начал работу над деталью и когда закончил получается что нужно отдельная таблица?

    Ну у тебя есть некоторый заказ и N смен, во время которых у тебя этот заказ выполняется. Раз нужно эти смены фиксировать - значит нужна таблица для них.

    Поскольку если мы в таблице performance_work назначаем рабочим выполнение работ, получается что запись после уже внесения в таблицу нужно будет как бы перезаписывать , поскольку начало работы и ее окончание будут внесены позже чем назначение рабочему выполнение работ что как я понимаю не лучшее решение.

    Вполне нормальное решение.
    Рабочий начинает смену - в неё записывается время начала и статус "в работе".
    Рабочий завершает смену - в неё записывается время завершение и статус "завершена".

    Не думаю, что тебе следует заморачиваться с концепцией event sourcing.
    Ответ написан
    Комментировать
  • Как скопировать ascii?

    Шрифт должен быть обязательно моноширным, чтобы ширина пробела была такой же, как и у всех остальных знаков.
    У тебя он явно не такой.
    Ответ написан
    Комментировать
  • Какая распиновка внутренних шлейфов караоке?

    Если меня глаза не обманывают, то распиновка непосредственно на плате написана.
    А чтобы узнать, как подключить к колонкам - надо смотреть на то, откуда идут провода к аналоговому аудиовыходу.
    Ответ написан
    Комментировать
  • Как реализовать парадигму "Запрос — Ответ" с помощью вебсокета?

    1. Сообщение должно быть структурированным, а не сырой текст. Например в json
    2. У каждого сообщения (запроса) должен быть уникальный id.
    Тогда клиент сможет сохранить у себя сопоставление id -> callback
    3. Сервер, когда формирует ответ, помещает в него id запроса
    4. Клиент при получении очередного ответа ищет у себя коллбэк с этим id и вызывает его.

    Вообще для C# есть SignalR
    Ответ написан
    4 комментария
  • Как обновить Android Studio?

    Попробуйте обновиться через Jetbrains Toolbox.
    Ответ написан
    Комментировать
  • Как вывести ответ запроса Npgsql C#?

    Потому что у тебя первая колонка не строка.
    reader.GetInt64(0)
    или
    reader.GetFieldValue<long>(0)
    Ответ написан
    Комментировать
  • Какое должно быть время выполнение, чтобы его оптимизировать?

    Оптимизировать запрос есть смысл, когда он в имеющемся виде создаёт проблемы, либо потенциально может создать с ростом данных.

    При этом нужно руководствоваться не догадками, а фактами - статистикой, жалобами пользователей, тестами производительности.

    Например особо нет смысла оптимизировать запрос, который выполняется 5 секунд, но при этом вызывается всего 1 раз за какой-то многочасовой воркфлоу.
    Ответ написан
    Комментировать
  • Стоит ли делать проект специально для гитхаба?

    Довольно часто предлагают тестовое задание, на которое у меня нет времени.

    Ну в принципе если вам быстрее ждать чуда, где вам не зададут тестовое, чем выполнить его за вечер и пойти на собес - ваше право :)

    Разумно ли написать проект с нуля, скажем, интернет магазин, залить все это на гитхаб и давать ссылку работодателям каждый раз когда просят пройти тестовое задание?

    Такое возможно только если о вашем проекте работодатель узнает раньше, чем о вас (=> "проект специально для гитхаба" должен попасть в продакшен у потенциального работодателя) , и существование этого проекта будет само по себе говорить о вас, как о хорошем разработчике. Ибо никто не будет лазить в вашем коде.

    Тоесть времени вы на такой проект потратите гораздо больше, чем даже на десяток разных тестовых заданий.

    Тестовое задание существует ради того, чтобы работодатель мог быстро оценить ваш уровень.
    1. Оно небольшое, чтобы его выполнение и проверка не занимали много времени.
    2. Оно уже отработано внутри компании, и уже есть несколько эталонных вариантов и чеклист, по которым можно формально оценить.

    PS: ну и никто не запрещает просить деньги за выполнение тестового задания, как за обычную работу - это распространённая практика
    Ответ написан
    Комментировать
  • Как оформить подпрограмму?

    https://wiki.freepascal.org/Function
    В твоём случае можно что-то типа:
    program geron;
    
    function triangleArea(const a, b, c: real): real;
    var p: real;
    begin
     p:=(a+b+c)/2; {периметр}
     triangleArea:=sqrt(p*(p-a)*(p-b)*(p-c)); {площадь}
    end;
    
    var a, b, c, s1, s2: real;
    begin
     writeln('Стороны первого треугольника:');
     write('a='); readln(a);
     write('b='); readln(b);
     write('c='); readln(c);
     s1 := triangleArea(a, b, c);
    
     writeln('Стороны второго треугольника:');
     write('a='); readln(a);
     write('b='); readln(b);
     write('c='); readln(c);
     s2 := triangleArea(a, b, c);
     
     writeln('Сумма=', s1+s2:0:5); {5 знаков после запятой}
     writeln('Разность=', s1-s2:0:5);
    end.
    Ответ написан
    9 комментариев
  • Как сделать простой чат без бд?

    Простейший чат без БД делают, обычно, в браузере на вебсокетах.

    Посмотри любой пример из использования - там почти всегда даётся пример реализации чата
    Ответ написан
    Комментировать