Задать вопрос
  • Ошибка SqlDataReader?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Так вам же английским по белому пишет - не инициализировано свойство Connection.
    Где инициализация sqlConnection?
    Ответ написан
    3 комментария
  • Программа как сделать com file?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    ; устанавливаем сегмент стека
    mov ax, s_seg
    mov ss, ax
    ; устанавливаем сегмент данных
    mov ax, d_seg
    mov ds, ax


    пишет segment relocate

    Ну правильно пишет, вот же у тебя код хочет загрузить в ax то s_seg, то d_seg как константы, откуда он их возьмёт без релокаций? Если хочешь com-файл, то либо пиши вместо этого mov ax, cs ; mov ds, ax, либо вообще этот код выкинь, потому что com-файл и так стартует со всеми сегментами указывающими в одно и то же место.
    Ответ написан
    Комментировать
  • Как сделать сертификаты для поддоменов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если портятся сертификаты - лечить нужно причину порчи сертификатов, а не вот это вот все!
    Ответ написан
    Комментировать
  • Для чего на микрике мыши 3 контакта?

    Stalker_RED
    @Stalker_RED
    микрик для мыши распиновка
    bc6c5b.jpg
    Один нормально замкнутый, другой нормально разомкнутый, можно было и догадаться или прозвонить.
    Теперь ваша мышь ловит наводки на провод, либо же, даблклики были из-за излома в проводе, и перепайка микриков ничем не помогла (а может проблемы были и в микрике и проводе одновременно).
    Попробуйте отрезать несколько сантиметров провода, чаще всего он убивается в точке выхода из мыши. Жилы изламываются и начинают плохо контачить, изоляция изнашивается, вот это все.
    Ответ написан
  • Как лучше вносить изменения в стороннюю библиотеку С?

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

    В любой непонятной ситуации - читай ToS:


    Subject to the above license, You own all Assets You create with the Services, to the extent possible under current law. This excludes upscaling the images of others, which images remain owned by the original Asset creators. Midjourney makes no representations or warranties with respect to the current law that might apply to You. Please consult Your own lawyer if You want more information about the state of current law in Your jurisdiction. Your ownership of the Assets you created persists even if in subsequent months You downgrade or cancel Your membership. However, You do not own the Assets if You fall under the exceptions below.

    If You are an employee or owner of a company with more than $1,000,000 USD a year in gross revenue and You are using the Services on behalf of Your employer, You must purchase a “Pro” membership for every individual accessing the Services on Your behalf in order to own Assets You create. If You are not sure whether Your use qualifies as on behalf of Your employer, please assume it does.

    If You are not a Paid Member, You don’t own the Assets You create. Instead, Midjourney grants You a license to the Assets under the Creative Commons Noncommercial 4.0 Attribution International License (the “Asset License”).
    The full text is accessible as of the Effective Date here: https://creativecommons.org/licenses/by-nc/4.0/leg....

    В общем можно, но только если твой GPL-3 проект не коммерческий.
    + нужно соблюсти CC
    Ответ написан
    2 комментария
  • Как в архитектурах risc одинаковые виртуальные адреса разных контекстов задач различаются?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В risc вроде там куча csr регистров

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

    на разных компиляторах одна си операция ассемблируется то в комбинацию lui + addi, то в комбинацию auipc +addi

    Ты указал ARM в тегах, но у ARM нет инструкций lui и auipc. Такие инструкции есть у RISC-V.
    Если ты посмотришь в The RISC-V Instruction Set Manual, раздел 2.4 Integer Computational Instructions, то увидишь, что опкод lui загружает константу собранную из 20 битов непосредственного значения из инструкции и 12 нулевых младших битов в целевой регистр, а auipc прибавляет такую же точно константу к PC и загружает в целевой регистр результат сложения, и в этом вся разница между ними.

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

    lui используется для генерации констант, которые не зависят от того, где расположен код, а auipc для генерации констант, которые двигаются вместе с кодом. Т.е. Если ты хочешь вызвать функцию, которая находится дальше чем ±2К от точки вызова, ты можешь сгенерировать её адрес инструкцией auipc, и полученный код будет работать одинаково, независимо от того, по какому адресу он будет размещён. А если тебе надо поместить в регистр константу, например 0x12345678, то ты можешь это сделать парой инструкций lui rd, 0x12345 ; addi rd, rd, 0x678 и значение константы будет всегда одинаковым, вне зависимости от того, где будет этот код.

    Каким образом одинаковые адреса различаются. Или они просто не могут быть одинаковыми(типа ос позаботиться)?

    Если есть MMU и он используется ОС, то есть и виртуальные адреса и они могут быть одинаковыми у разных процессов. Если MMU нет или он не используется, то ОС размещает все процессы в одном адресном пространстве, нет смысла говорить отдельно о виртуальных адресах, поскольку они равны физическим, адреса выделяемые ОС разным процессам могут быть как одинаковыми (например несколько процессов запущенных из одного исполняемого образа могут использовать один и тот же код и константные данные), так и разными (например изменяемые данные разные у всех процессов, а стеки разные у всех потоков).

    Как они в tlb обрабатываются, если вдруг они реально могут быть одинаковыми, и там нету ни каких дополнительных индексов процесса)

    Выбери конкретную процессорную архитектуру -- обсудим. у многих RISC-архитектур есть ASID, который идентифицирует адресное пространство и записывается вместе с виртуальным адресом в TLB. Но в любом случае ASID -- это просто оптимизация для повышения производительности, когда он отсутствует или переполняется ОС должна сбрасывать содержимое TLB при переключении адресного пространства.

    У ARM есть регистры TTBR с примерно той же функцией, что и cr3 в x86.
    У RISC-V есть CSR satp, содержащий ASID и базовый адрес корневого каталога страничных таблиц. Об этом можно прочитать в разделе 4.1.12 Supervisor Address Translation and Protection (satp) Register спецификации The RISC-V Instruction Set Manual Volume II: Privi....
    Ответ написан
    Комментировать
  • Что нужно для авторизации через Google?

    "Sign in with google" реализуется при помощи OIDC:
    В документации есть ссылки и на стандарт, как это работает, и что примерно нужно сделать у себя в приложении, чтобы это заработало.
    https://developers.google.com/identity/openid-conn...

    Кстати, если ты такую кнопку добавляешь у себя в приложение на яблоке, то ты также будешь обязан сделать "Sign in with apple"
    https://developer.apple.com/sign-in-with-apple/get...

    Но на яблоке вроде для игр есть какой-то свой API, так что ты вполне можешь на Android использовать Google Play Games, а на яблоке - яблочное.
    Ответ написан
    3 комментария
  • While Do не работает?

    GavriKos
    @GavriKos Куратор тега Unity
    Ну так первая дистанция больше 300. false && true && true даст false. Цикл и прервется.

    P.S. за такие циклы в целом надо руки отрубать. Их время выполнения неизвестно от слова совсем. Могут вообще никогда не завершитсья
    Ответ написан
  • Как можно использовать Foreign Key?

    Очевидный пример:
    Допустим у тебя есть таблица с домашними животными и таблица с хозяевами домашних животных.

    Чтобы указать у животного, кто его владелец - ты заводишь колонку "идентификатор владельца".

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

    В случае попытки удалить запись о владельце, на которого кто-то ещё ссылается, или при попытке указать несуществующий ИД - СУБД выдаст ошибку, что было нарушено ограничение.
    Ответ написан
    4 комментария
  • Leaflet как отцентровать карту в зависимости от Маркеров нанесенных на карту?

    yous
    @yous Автор вопроса
    Отвечаю сам себе как обычно))

    var bounds = new L.LatLngBounds([
        [40.712, -74.227],
        [40.774, -74.125]
    ]);
        map.fitBounds(bounds);
    Ответ написан
    Комментировать
  • Как реализовать прикидывание сигнала/ключа из unity/unreal engine в другое приложение?

    shai_hulud
    @shai_hulud
    На одной машине можно создать именованный мьютекс. Один создал, другой его открыл. И через него сигнализировать.
    Есть и другие примитивы синхронизации, которые могут быть зашарены по имени.
    Ответ написан
    Комментировать
  • Как поставить точку в коде?

    @rPman
    везде одинаково:

    return - выход из функции/метода
    break - выход из switch для выбранных секций case
    goto - выход на метку (только в пределах метода), можно использовать как выход из многоуровневого цикла без определения переменных состояний, но вообще плохой тон
    Ответ написан
    2 комментария
  • Как шифровать текст в python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Был такой вредный стрик Керхгофс. И он как-то придумал сет законов касающихся инфо-безопасности. На основе их сегодня работает почти вся криптография. Вкратце основной момент - замена алгорима(ключа) шифрования в любой системе должна быть очень быстрой и легкой. И второй момент - злоумышленник обычно знает систему изнутри. Он знает исходный код. Возможно он - бывший сотрудник.

    Вот исходя из этих принципов и проектируются надежные и безопасные системы. А если автор надеется на то что непопулярный алгоритм шифрования его спасёт - то он сильно ошибается. На этом погорели многие самоуверенные архитекторы. Они тоже надеялись что на незнании можно делать секрет. В принципе вся военная секретная переписка до 20 го века базировалась на предположении что противник не знает. А современная - уже считает что это не главное. А главное - как быстро мы сможем заменить скомпрометированный ключ на новый. И эта замена как раз и есть замена алгоритма. Потому что ключ в крипторгафии и это и есть секретность. А сами алгоритмы вообще ни разу ни секретных. Это кстати - требование. Под сертификацию идут обычно публично известные алгоритмы и их обсуждают. Их анализируют. Их брутфорсят. И только благодаря этому процессу они и являются надежными.
    Ответ написан
    Комментировать
  • Как шифровать текст в python?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    способ расшифровки должен быть непопулярным.

    А вот это уже смешно. Чем тебя не устраивают популярные способы типа RSA?
    Ты, видимо, не слышал о термине Security through obscurity , на котором обожглись многие и ты хочешь повторить их путь
    Ответ написан
    10 комментариев
  • Должны ли все асинхронные методы вызываться с ключом async?

    petermzg
    @petermzg
    Самый лучший программист
    Calculate не является асинхронной функцией поэтому async не нужен. И очень плохо вызывать в асинхронном коде Thread.Sleep, для асинхронного кода есть Task.Delay.

    async преобразует код в конечный автомат (State Machine)
    Ответ написан
    3 комментария
  • Как узнавать время последнего изменения таблицы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос интересный. Я-бы спросил - какой смысл должно нести это время? Все простые варианты добавить к таблице счетчик времени - вызывают много вопросов. Начиная от того как быть с delete. И как быть MVCC. Можно просто рассмотреть парочку кейсов где 2 пользователя одновременно вставляют и удаляют строки и еще по разному коммитят и откатывают изменнеия и получается нехилое число парадоксов.

    Аналогия с файловой системой - неуменстна. Файлы - работают в режиме dirty mode. Тоесть сразу фиксируют результат опреации. А таблица в БД в этом смысле похожа на git-репозитарий со множеством бранчей. Тоесть мультиверсионная вселенная. И подытожить ее состояние в любой момент времени так дешево не получиться.

    Для нужд аудита изменений - самое простое создать поле last_update_timestamp в таблиах например. И туда добавлять время бизнес-операции.

    Еще для аудита практически во всех dbms есть опции. Для Oracle например есть audit table.
    Аудит обычно пишет имя пользователя и время действия и время таблицы над которой действие было.
    Для MSSQL тоже есть свой API.
    Ответ написан
    5 комментариев
  • Какой из вариантов ближе по написанию к коммерческому коду?

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

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

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

    petermzg
    @petermzg
    Самый лучший программист
    1. Пользователь ввел логин/пароль.
    2. Выдайте ему JWT, только в payload пропишите состояние "No2FA"
    3. Отправьте 6 цифр на почту, сохранив в базе значение.
    4. Отобразите форму получения кода.
    5. Пользователь вводит код, который вы отправляете на эндпоинт вместе с токеном.
    6. Проверили соответствие с БД.
    7. Сгенерили новый токен.

    Так же можно с Cookies и сохранением состояния сессии
    Ответ написан
    2 комментария
  • Почему не получается преобразовать __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 комментария