Задать вопрос
  • Почему не получается преобразовать __int128 в BigInteger в своей функции?

    1. Ты берёшь указатель на переменную на стеке, которая после выхода из него уже не факт, что будет иметь то значение, которое тебе нужно.
    2. Тебе нужно выделить память заранее (или в куче) и в эту область памяти уже записывать результат.
    3. Лучше, чтобы память для результата выделялась на стороне C#, чтобы не было проблем с освобождением памяти.
    4. Сишный int не всегда равен шарповому int.
    5. В .NET уже есть структура для Int128, так что тебе не нужно байты перекладывать.

    6.
    public BigInteger (ReadOnlySpan<byte> value, bool isUnsigned = false, bool isBigEndian = false);
    принимает байты от длинного целого. Так что у тебя твой ToBigInteger работает неправильно, если ты в него подаёшь указатель, на __int128

    ptr_fact должно выглядеть как-то так:
    void ptr_fact(int32_t n, __int128* result)
    {
        *result = fact(n);
    }

    [DllImport("Test")] static extern void ptr_fact(int n, out Int128 result);


    Но смысла использовать ptr_fact я не вижу, тк обычный fact ты тоже легко можешь вызывать
    Ответ написан
    3 комментария
  • Как сделать округленную форму без кнопок закрыть, свернуть, развернуть?

    Adler_lug
    @Adler_lug
    Так что ли? Если да, то буквально первая ссылка в гугле.
    spoiler
    public partial class Form1 : Form
        {
                [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
                private static extern IntPtr CreateRoundRectRgn
                (
                    int nLeftRect,     // x-coordinate of upper-left corner
                    int nTopRect,      // y-coordinate of upper-left corner
                    int nRightRect,    // x-coordinate of lower-right corner
                    int nBottomRect,   // y-coordinate of lower-right corner
                    int nWidthEllipse, // width of ellipse
                    int nHeightEllipse // height of ellipse
                );
                public Form1()
            {
                InitializeComponent();
                this.FormBorderStyle = FormBorderStyle.None;
                Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 20, 20));
            }
        }
    Ответ написан
    2 комментария
  • Почему не работает System.Management?

    При вписывании using System.Management;
    Ничего и не должно происходить.

    Опишите подробнее, чего вы ожидали, и что на самом деле получили (ошибку например)

    (вот только не кидайте мне ссылку на stuckoverflow, я ж не даун, мне тот способ не помог)

    Какой "тот"?
    Ответ написан
    Комментировать
  • Действительно ли back-end разработка более консервативна, чем front-end?

    hrls
    @hrls
    Половина ответа в вопросе, но дьявол в мелочах.
    Действительно, для относительно продуктивной backend-разработки практически на любом языке программирования необходимо знать несколько базовых фреймворков и тулов, которые решают большинство задач. Это скелет ~90% приложений сложнее hello world. Хотя и этот скелет меняется и развивается, пусть и не так быстро как хотелось бы, как разнообразные отростки (не консервативность, но более долгий жизненный цикл). Суммарный вес технологий и инструментов не меньше, и уж точно не менее динамично изменяющийся, чем у frontend-разработчиков.
    Далее личный опыт на примере Java.
    Лет 7-8 тому достаточно было знать Spring, Struts, Hibernate да Apache Commons в довесок для разработки большинства решений. Ну и J2EE-стек для задач Enterprise-уровня.
    В году 2014 Spring, Hibernate все также в арсенале программиста, но появилась куча абсолютно новых вещей вроде AMPQ, Hadoop, Netty, Scala с функциональной парадигмой, мультиязычные окружения с Clojure/Groovy/JRuby; стали чаще встречаться альтернативные реализации популярных библиотек (например Guice / Guava); старые технологии вроде J2EE стали использоваться несколько реже. А одних только Key-Value хранилищ, кэшей и прочих NoSQL как грязи. Изменился даже сам подход к построению приложений – мало кто в 2005 слышал про asynchronous event-driven модели и отталкивался при проектировании от REST-стиля (собственно, там и корни frontend-девелопера как отдельной специализации). Про эволюцию систем сборок, VCS, бенчмарков и прочих "микро"-элементов можно расписывать не одну простыню.
    И да простят меня frontend-товарищи за, возможно, чванливый тон, но раскурить тонкости работы async IO в зависимости от ОС-специфики вроде epoll/kqueue или учитывать CAP-теорему при построении middleware-кэша это уровнем сложности повыше, чем новый CSS-препроцессор и CoffeeScript c очередным MVC / MVVM-фреймворком. Некоторые задачи, вроде синхронизации потоков, так и вообще лежат большей частью в области математики.
    Уверен, что и в frontend-разработке существуют задачи сложнее и интереснее поехавшей на пиксель верстки и обновления полей после парсинга JSON, но ИМХО backend-разработка ближе к системному программированию старой школы, в то время как frontend суть прикладное программирование с примесями дизайна.
    Frontend-инструментов больше, backend-инструменты сложнее.
    Ответ написан
    4 комментария
  • Как лучше сделать перемещение объекта (Forms, c#)?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    1. Массив 7х7, для каждого, ходим помечая посещенные клетки, проверяем перед ходом, выход за пределы или занятость, и меняем направление
    2. делаем одномерный массив координат спирали, и проходим по ней, сразу зная какие будут координаты.
    Ответ написан
    Комментировать
  • Это можно считать микросервисной архитектурой?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Это не микросервисы. Это всего лишь динамическая загрузка кода в контекст одного-единственного приложения. Если в подгруженной библиотеке случится какая-то фатальная ошибка (типа разыменовывания нулевого указателя), то вся программа благополучно помрёт. А в микросервисах падение одного микросервиса не мешает другим продолжить работать (и их специально пишут и организовывают так, чтобы подобное падение не приводило к остановке всего сервиса).

    Микросервисы - это не про распилить приложение хоть как-нибудь на несколько файлов. Это про разделение функций, резервирование, масштабирование и отказоустойчивость. А также про непрерывную разработку и раскатку.
    Ответ написан
    4 комментария
  • Как организовать изолированную среду выполнения собранного dotnet приложения?

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

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

    Никакие софтовые решения (обфускация, контейнеры, шифрованные виртуалки, передача критичного исполняемого кода по сети) не спасут от тех людей, которые хотят с вами конкурировать или осознанно хотят нарушить соглашения.
    Ответ написан
    4 комментария
  • Чем C# .net mvc лучше чем любой ЦМС типа Wordpress?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    1. MVC можно реализовать и на c# и на php. Это просто архитектурный паттерн.
    2. Сравнивать язык и CMS некорректно. Используя язык, Вы сами разрабатываете инфраструктуру своего приложения, а используя CMS — Вы принимаете её такой, какая она есть. Грубо говоря, если Вам нужно поклеить обои в квадратном доме, Вы клеите и сдаете заказчику готовый дом. Быстрее? Определенно. А если заказчик захотел треугольный дом? Придется ломать стены и строить заново. Быстрее это чем построить дом самостоятельно с нуля? Уже вопрос.
    Ответ написан
    Комментировать
  • Стоит ли использовать Blazor?

    profesor08
    @profesor08
    Неужели единственный плюс Blazor это c#?

    В точку.

    Далее по старой информации(если не ошибаюсь технология Wasm тогда толко развивалось) производительность blazor может быть лучше чем в React.js только в Firefox.

    Срочным делом надо разобраться и понять что такое WebAssembly и какие там ограничения. Приготовься в большому огорчению.
    Ответ написан
    Комментировать
  • Стоит ли использовать Blazor?

    @caballero
    Программист
    Blazor позволяет не разделять сайт на две части фронтенд и бекенд чтобы потом соединять это через API - то есть выполнять лишнюю дурную работу

    сайт пишется как класческий сайт но работает как SPA
    с учетом что core.net ща кросплатформенный - у остальных технологий преимуществ немного.
    просто blazor еще новая необкатаная технология но перспективы неплохие
    Ответ написан
    2 комментария
  • Какие есть атрибуты и теги в html, что могут исполнить js?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Если атрибут у элемента начинается с букв on... то там может быть JavaScript.

    Например:
    https://spravka.seodon.ru/html/sobytiya/onload.php

    Но это не обязательно onload, может быть и onhover или любое другое событие.
    Ответ написан
    Комментировать
  • Пример использования связного списка?

    Artem_zin
    @Artem_zin
    Я в общем-то спорить не хочу, вы скорее всего LinkedList просто «алгоритмически» не взлюбили и троллите его :)

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

    Но все же, для списка слушателей я использую именно LinkedList т.к. все что я перечислил выше + он ожидаемо ведет себя во всех ситуациях при данном использовании и не создаст мне неожиданных проседаний производительности (маааленьких, но все же), как тот же ArrayList если я просто хочу добавить/удалить слушателя не парясь заранее об их количестве.

    Вам понравится подход к отделению LinkedList в C# от просто списков, там он не реализует IList и случайно применить его не выйдет, только если как коллекцию и то вряд ли, там ArrayList называется List и большинство даже не в курсе про LinkedList.

    В статье снизу список с результатами среднего времени по операциям:
    (наносекунды, меньше лучше)

    ArrayList add:    13265642
    LinkedList add:    9550057
    
    ArrayList get:       1543352
    LinkedList get:     85085551
    
    ArrayList remove:    199961301
    LinkedList remove:    85768810
    


    Вот. Просто такое ощущение, что вы задали вопрос чтобы убедится в правоте своего мнения и других слушать не хотите :)
    Ответ написан
    7 комментариев
  • Как вырезать область изображения под контуром, Алгоритм?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    FillPolygon работает через обход в ширину.

    Сначала одним циклом покрасьте все точки контура.
    Потом берите любую точку внутри полигона, красьте ее и кладите в очередь. Пока очередь не пуста берете точку оттуда, берете 4 или 8 ее соседей и если они не покрашены еще - красите их и кладете в очередь.

    Может быть сложность с выбором самой первой точки внутри полигона. Но тут можно аккуратно пройтись вдоль полигона против часовой стрелки и взять первую непокрашенную точку слева относительно обхода. Тут можно для каждой точки найти вектора на двух соседей по контуру, потом перебрать 4-8 соседних пиксилей и взять тот непокрашенный, вектор на который лежит между двумя векторами вдоль контура.
    Ответ написан
    Комментировать
  • Разумно ли использовать DependencyInjection в JavaFX?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Да, разумно.
    Я даже скажу так, есть готовая либа на Spring со всеми возможностями спринга для JavaFX.
    https://habr.com/ru/post/478402/
    сама либа - https://github.com/rgielen/javafx-weaver
    Ответ написан
    1 комментарий
  • Vue.js router Как настроить маршрутизатор на asp.net 6?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    сравните со своим файлом.
    https://github.com/SoftwareAteliers/asp-net-core-v...

    плюс еще одно соображение, на проде веб мордой будет nginx, вы пробовали такой режим?
    Ответ написан
    8 комментариев
  • Как в laravel выбрать базу?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Единственный вариант, как я вижу — менять на лету ключ database в конфиге подключения. Пахнет костылями.
    Ответ написан
    1 комментарий
  • Как указать виртуальной среде свой интерпретатор?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Вы, похоже, не понимаете принципа и назначения виртуального окружения.
    Оно нужно для изолированной работы с набором библиотек. То есть - проект запущенный в ВО не может работать с библиотеками извне, а проекты запущенные без него или в другом ВО не имеют доступа к либам в текущем ВО
    Ответ написан
    Комментировать
  • Как указать виртуальной среде свой интерпретатор?

    iggor-markin
    @iggor-markin
    Python Developer
    Виртуальное окружение для того и нужно, чтобы не засорять системный питон. Зайди в стандартный интерпретатор, сделай файл зависимостей:
    pip freeze > requirements.txt

    Потом перенеси его в виртуальное окружение и установи там все свои библиотеки:
    pip install -r requirements.txt
    Ответ написан
    1 комментарий
  • Как хранить строку в виде байтов?

    @Akela_wolf
    Extreme Programmer
    Что-то я не понимаю чего вы хотите добиться. То что вы говорить - низкоуровневое программирование, для этого вам не нужен C#. Берите C/C++ и наслаждайтесь прямой работой с памятью.

    Вообще со строками есть два подхода. Первый использовал Pascal: в нулевом байте строки хранится её длина. Так как паскаль использовал однобайтную кодировку (ANSI), то этого было достаточно для хранения строк длиной до 255 байт. Вы, в принципе, можете использовать и 2 и 4 байта. И это неплохо работало.
    Второй подход - это подход из C++, когда строка заканчивается символом '\0' (zero-terminated string). Тут тоже есть свои тонкости, в основном связанные с тем, что при определении длины строки нужно помнить что '\0' не входит в её длину. Еще есть потенциальная ошибка, связанная с выходом за пределы строки и повреждением следующих за ней блоков памяти.

    Выбирайте - какой подход вам больше нравится.
    Ответ написан
    2 комментария