Задать вопрос
  • Почему PHP выполняет математические операции неправильно?

    Vamp
    @Vamp
    Потому что типом данных double нет возможности представить число 0.58. Поэтому компьютер берёт наиболее близкое к 0.58 число, которое double может выразить.

    Если вам нужны точные вычисления, то следует воспользоваться специальными функциями:

    $format = bcdiv("580000000", "1000000000", 2); // "0.58"
    
    var_dump(bcmul($format, "100")); // string(2) "58"


    Существует даже специальный сайт, рассказывающий о данной особенности математики чисел с плавающей запятой: https://0.30000000000000004.com/
    Ответ написан
    Комментировать
  • Как обезопасить программу С# от взлома?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    //COPY01 EXEC PGM=IEBGENER
    Что за каша? Что такого ценного в "других программах" и от чего их надо защищать? Сама программа обычно является обьектом защиты только если это игра - то есть работа программы самой по себе (среди не-игр это редко). Обычно не-игра защищается тогда, когда она производит что-то ценное.

    Вопрос - что ценного в ваших программах? Кому они нужны, кто будет их ломать?
    Ответ написан
    Комментировать
  • Как автоматизировать процесс установки программ на 1000 компьютерв?

    @NortheR73
    системный инженер
    хых...
    управлять 1000 компов не в домене - оригинальный вы человек...
    тогда, например, установка софта с помощью PowerShell-скрипта...
    Ответ написан
    Комментировать
  • Может ли пользователь сменить переменную JS?

    @Zukomux
    Баланс всегда должен приходить с сервера. Даже если пользователь совершил какую-то операцию, после этого необходимо заново запросить баланс. И считать единственным источником истины только результат верного ответа. Несмотря на то, что на фронте можно нарисовать любые цифры, на сервере всего будет истинное значение
    Ответ написан
    Комментировать
  • Может ли пользователь сменить переменную JS?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    То, что нельзя доверять данным полученным с клиента - это общеизвестное правило.
    Ответ написан
    Комментировать
  • Spring или Asp.net core для будущей работы?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    сам тащусь от программирования

    Вот представьте вам говорят: бросай своё баловство это - иди в строительство / нефтянку / наркоторговлю / проституцию / пхп.
    Это стабильно, это надёжно, это приносит больше денег.
    И, допустим, это даже будет правда.

    Но я искренне не понимаю как это может хоть кого-то мотивировать.
    Занимайтесь тем что вам интересно. Тогда будет у вас и карьера и сытое будущее.
    Только так. Не наоборот.
    Сначала любимое дело - потом все вот это остальное.
    Ответ написан
    3 комментария
  • Почему в таблицу может не вставляться текст на узбекском языке?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос с подвохом.
    Я сейчас сообразил, что узбекский - это не китайский же. Либо латиница, либо кирилица.
    То есть проблема скорее всего не в кодировке.
    А, как выяснилось в комментариях - тупо в неправильном выполнении запроса, и инъекциях.
    то есть переменные надо не напрямую пихать в запрос, а через специальные маркеры, как написано здесь https://habr.com/ru/articles/662523/

    Если же говорить про кодировки, то
    у поля (или таблицы) должна стоять не "одинаковая" кодировка, а utf8mb4
    в РНР при соединении должна устанавливаться кодировка utf8mb4
    в заголовках веб-сервер должен отдавать кодировку utf-8
    если текст пишется прямо в РНР коде, то этот код тоже должен быть в кодировке utf-8
    Ответ написан
    2 комментария
  • Как написать на с++ метод и экспортировать его в c# заинлайнить, и можно ли _fastcall его сделать???

    Nipheris
    @Nipheris Куратор тега C++
    Экспортированная функция работает в 4 раза медленнее.

    Разумеется, у вас всё время уходит на накладные расходы на PInvoke. Это полное безумие - выносить сложение чисел вообще в функцию, а тем более ещё и делать вызовом между языками. А PInvoke - это вам не InternalCall

    ВОПРОС как сделать функцию sum в с++ что бы она работала так же быстро как и sum в c# коде? Как ее заинлайнить

    Методы Math реализованы в самом рантайме и вызываются без маршалинга с помощью InternalCall. Не думаю, что это возможно для вашей функции.

    К примеру, если хочу c# библиотеку сделать, то просто добавили ссылку и забыл о всем. А когда добавляю так же ссылку на dll от с++ проекта, то ноль реакции.

    Потому что dll которые получились из C# - это дотнетовские сборки, которые только прикидываются Portable Executable, а вот то, что компилится из C++ - это действительно Portable Executable, и ничего дотнетовского там нет (если конечно это обычный C++ DLL-проект, а не C++/CLI).

    Кстати еще вопрос, как библиотеку с++ подключать к проекту, почему DllImport не находит, если указать ссылку на проект,

    Вам нужно настроить копирование C++ DLL в выходную директорию проекта, рядом с вашей дотнет-сборкой, в которой находится DllImport
    Ответ написан
    Комментировать
  • Как определить размер функции в байтах Машиного кода?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Язык программирования тебе это не подскажет. Он не знает.
    Об этом может знать компилятор, но для компиляторов такой "функции" как get_machinecode_instruction_length нету. Компилятор может генерировать не прямой код трансляции команд С++ в машинный код. Он может оптимизировать вызовы под конкретный процессор/архитектуру, по опциям для оптимизации загрузки данных в память и так далее.
    Просто посмотреть машинные коды - нужно читать datashit конкретной архитектуры, они более-менее стабильные.
    Ответ написан
    Комментировать
  • Откуда stackoverflow при работе с stackalloc c#?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Похоже (явного указания в документации я не нашел), что память в стеке освобождается только при выходе из всего метода, но не из блока внутри него. Освобождение памяти в стеке, как известно - это сдвиг указателя стека обратно, и похоже, этого в конце блока не происходит - только в конце метода. Косвенное подтверждение - в документации по stackalloc явно написано избегать вызовов stackalloc в цикле, как это у вас сделано: "Avoid using stackalloc inside loops. Allocate the memory block outside a loop and reuse it inside the loop." ( https://learn.microsoft.com/en-us/dotnet/csharp/la... )
    Ответ написан
    Комментировать
  • Тип данных "WORD" история происхожения названия какова?

    aspect
    @aspect
    Сакральность? — Хм

    Вначале Бог создал бит и байт. И из них он создал слово.
    И было в слове два байта, и ничего больше не было.
    И отделил Бог единицу от нуля…
    Ответ написан
    Комментировать
  • Как решить проблему с уникальностью ключей?

    @12rbah
    По какой то причине данный код раз от раза при попытке добавления данных в БД выдаёт исключение о том, что был факт попытки добавления некорректного ("неуникального", если угодно) ключа.
    Скоре всего одно из значений это primary key или unique, поэтому и кидает ошибку.
    Также существует проблема что уже для добавленных данных подбирался id немного не по порядку:
    Это фича у постгреса такая, но в целом если подумать, то это не особо и нужно, чтобы id шли по порядку.
    Ответ написан
    2 комментария
  • Как работать с foreach так чтобы только первый приходил с active?

    @Shavadrius
    Можно решить несколькими способами.
    Например, добавить в передаваемую модель флаг "active" для слайдов:
    <div class="carousel-item @(slider.IsActive ? "active" : "")">

    Или добавить флаг-переключатель непосредственно в код представления:
    @ model HomeVM
    @ bool isFirstSlide = true;
    @ foreach (Slider slider in Model.Sliders) 
    { 
    <div class="carousel-item @(isFirstSlide ? "active" : "")">
    <div class="bg-img" 
    style="background-image: url('../src/img/products/@slider.Image')"></div> 
    </div> 
    isFirstSlide = false;
    }
    Ответ написан
    Комментировать
  • Почему WinForms все равно обращается к свойству, которое скрыто через new?

    Winforms тут непричём - это база C#.
    Читай как работает полиморфизм.

    Потому что new никак не влияет на виртуальные вызовы.
    Тебе нужно либо делать override, либо реализовывать интерфейс, чтобы всё работало.

    new - это то же самое, что если бы ты ничего вообще не приписывал к свойству. Это исключительно пометка, что ты намеренно скрываешь, а не переопределяешь.
    Ответ написан
    Комментировать
  • Как найти самую высокую точку в svg?

    neuotq
    @neuotq
    Прокрастинация
    Смотрите.
    viewBox="0 0 1000 100" - определяют вьюпорт пользователя, те как бы то окошко через которое мы смотрим когда видим картинку svg. Первые две цифры - это минимальные(верхний левый угол) x,y координаты, далее размер длинна вдоль x и y
    Следовательно, самая высокая точка, с тчк зрения этого окошка, будет та, у которой координаты по y будет 0.
    У вас там рисуется <polygon points="0,0 9.090909090909092,11 .... вот как видно первая точка имеет координаты по 0,0 - те по x - самая левая с нулевым отступом от лева, и по y- самая верхняя, с нулевым отступом от min y - верха окошка. Таким образом все у кого будет y - 0 (второе число в паре ч/з запятую) - будут на самом верху, относительно окна просмотра.
    Но координаты могут уходить и за окно просмотра: как в лево/вверх, тогда отрицательные будут, так и в право/низ - будут больше окно просмотра(в вашем случае больше 1000 и 100 для x и y соответвенно)
    Ответ написан
    Комментировать
  • Почему камера после старта поварачивается на 180 градусов?

    GavriKos
    @GavriKos Куратор тега Unity
    Нет, это явно баг юнити, пишите багрепорт вам за него дадут 100500 баксов.

    Конечно что то в вашем скрипте камеры! Сама по себе камера не ворочается
    Ответ написан
    1 комментарий
  • Как выполнить код после завершения метода?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    public async Task DoMagic()
        {
            // тут всяко разный код другой, например отправляется запрос на сервер и надо тут подождать ответ а после дать понять, что метод завершён
             var serverResponse = await DoSomethingAsync();
          //еще какой-то код
        }
    
        public async Task DoCode()// async void - это плохо.
        {
            // тут хочу запустить метод DoMagic() и только после его завершения, продолжить дальше 
           await DoMagic();
           // еще какой-то код.
        }
    Ответ написан
    Комментировать
  • Можно ли в microsoft identity изменить алгоритм хешированием паролей на MD5?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    Можно ли в microsoft identity изменить алгоритм хешированием паролей

    да

    Как сделать чтобы identity хешировал пароли по алгоритму MD5?

    Нестоит так делать. Потому что он устарел и давно не надёжный.

    По умолчанию при добавлении пользователя в базу, его пароль хешируется по какому-то своему алгоритму

    Вот тут реализация и подсказка как его поменять тыц
    Ответ написан
    Комментировать
  • Как сделать чтобы метод работал только при первом запуске?

    GavriKos
    @GavriKos Куратор тега Unity
    Дак проверяйте есть ли файлы и если нет - вызывайте сейв (или не вызывайте лоад)
    Ответ написан
    7 комментариев
  • Какой из вариантов ближе по написанию к коммерческому коду?

    GavriKos
    @GavriKos
    Ой, блин, вопрос холиварный шо писец. Что такое коммерческий код? Это как?

    Смотрите. Если рассуждать с т.з. красивости кода - то статики ужас кошмар и уволить.
    Но. Допустим стояла задача от бизнеса "сделать быстро, поддерживать не будем, модуль редкий" (дааа, конечно редко такие прогнозы сбываются, но допустим) - и такая архитектура со статиками (или какая другая) позволяет решить бизнес задачу со всеми вводным - значит это ВНЕЗАПНО коммерческий код.

    В общем чтобы сказать коммерческий ли код - нужно знать какие требования к нему предьявлены.
    Ответ написан