Задать вопрос
  • Как загнать в dictionary key как null?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Напиши обертку
    var dict = new Dictionary<MyNullableInt, string>();
    dict[null] = "hello, world!";
    
    Console.WriteLine(dict[null]); // Output: hello, world!
    
    
    struct MyNullableInt: IEquatable<MyNullableInt>, IEquatable<int?>
    {
        public int? Value { get; set; }
        public bool Equals(MyNullableInt other)
        {
            return other.Value == Value;
        }
    
        public bool Equals(int? other)
        {
            return other == Value;
        }
    
        public static implicit operator MyNullableInt(int? value)
        {
            return new MyNullableInt() {Value = value};
        }
    
        public static implicit operator int?(MyNullableInt value)
        {
            return value.Value;
        }
        
        public override bool Equals(object? obj)
        {
            if (obj is int value)
            {
                return value == Value;
            }
    
            if (obj is MyNullableInt mni)
            {
                return mni.Value == Value;
            }
    
            return false;
        }
    
        public override int GetHashCode()
        {
            return Value.GetHashCode();
        }
    }
    Ответ написан
    3 комментария
  • На сколько сложно создать офлайн генератор иконок?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Самостоятельно создать - крайне сложно.
    За деньги нанять - легко, но придется выложиться крупно.

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

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Язык - C++. Однажды участвовал и в команде все писали на питоне - не прошли по времени.
    Где и как - решай задачи с acmp
    Ответ написан
    Комментировать
  • Как исправить ошибку 403 при попытке доступа?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    403 ошибка означает ошибку авторизации.
    Короче говоря, нужно залогиниться и все пройдет. Как происходит логин в этом API это уже другой вопрос (имя/пароль, токен доступа и т.д.)
    Ответ написан
    Комментировать
  • Как реализовать функцию статистики просмотра страницы за некий период?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Важно, что бы это была статистика за день/месяц/год/всё время.
    Первое что нужно - определитесь с минимальной статистической единицей, если это день - значит храните сумму за день, табличка соответственно будет что-то типа:
    id, page_id, date, views;
    Соответственно если нужен меньший таймфрейм - дата будет уже дататайм. Далее простой джоин, груп с аггрегацией и sum()
    Ответ написан
    9 комментариев
  • Как правильно расшифровать данные из изображения в c#?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Нашел много недочетов, но главная ошибка здесь:
    char charToEncode = textToEncrypt[charIndex++];
    
                        byte[] colorBytes = new byte[] { originalColor.R, originalColor.G, originalColor.B };
                        for (int i = 0; i < 3; i++)
                        {
                            int bitIndex = (bitsPerChannel * i); 
                            if (bitIndex < 8)
                            {
                                colorBytes[i] = (byte)((colorBytes[i] & ~1) | ((charToEncode >> bitIndex) & 1));
                            }
                        }


    Я так полагаю, что символы сообщения кодируются в LSB, но проблема здесь в том, что кодируются только последние 3 бита - остальное (8 - 3 = 5 битов теряются). Т.е. сообщение восстановить никак

    + Сам цикл выглядит очень странно.
    Главный вопрос - зачем?
    Параметризовать алгоритм стеганографии подобным образом не очень оптимально, т.к. каждый создается с использованием тех или иных фич, который строго захардкожены и используют особенности конкретного формата. Цикл + проверка здесь только ухудшают понимание кода (ИМХО)
    Убери этот цикл, т.к. во-первых, станет понятнее, во-вторых, условие внутри при этой константе всегда выполняется.

    Теперь про декодирование:
    for (int i = 0; i < 3; i++)
                    {
                        int bitIndex = (bitsPerChannel * i);
                        if (bitIndex < 8)
                        {
                            charCode |= (byte)((encodedColor.ToArgb() >> bitIndex) & 1);
                            if (bitIndex <= 2)
                            {
                                charCode <<= bitsPerChannel;
                            }
                        }
                    }

    Вот этот участок тоже неправильно работает, т.к. ты кодируешь символы в LSB, а читаешь последние 3 бита - из них только 1 бит содержит данные.
    Ответ написан
    Комментировать
  • Как создать процедуру, которая будет возвращать что-то?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Процедуры, в отличие от функций, не возвращают значение; поэтому в CREATE PROCEDURE отсутствует предложение RETURNS. Однако процедуры могут выдавать данные в вызывающий код через выходные параметры.

    https://postgrespro.ru/docs/postgresql/16/xproc (имеются в виду SQL-процедуры)

    Для возврата значений из PL/pgSQL процедуры используются OUT и INOUT параметры.

    https://postgrespro.ru/docs/postgresql/16/plpgsql-... (пример имеется)
    Ответ написан
    Комментировать
  • Как создать процедуру, которая будет возвращать что-то?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вам нужно начать с туториала и примеров, а не с тупых статей в интернете и собственных догадок.
    Просто возьмите учебник и потратьте некоторое время на изучение самых базовых основ. Если вам лень этим заниматься. то почему вы думаете, что людям тут будет не лень сочинять вам индивидуальные экспресс-курсы по изучению основ баз данных?
    Ответ написан
    Комментировать
  • Зачем комментарии на сайте оборачивать в тег article?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега HTML
    его рекомендуют оборачивать тегом article
    Тут нужно дать ссылку на эту рекомендацию, чтобы мы могли её оценить не на уровне "Рабинович по телефону напел".

    его можно использовать в любом другом месте, а как использовать комментарий на другом сайте
    Когда говорят об использовании "в любом месте", подразумевают "любое место данного сайта". И в рамках сайта комментарий действительно может быть оторван от условного рецепта: например, в профиле пользователя может выводиться список всех его комментариев (как здесь) или в сайдбаре может выводиться список всех последних комментариев (как на vc.ru).

    На самом деле все эти семантические теги, введённые в HTML5, не оказывают абсолютно никакого влияния ни на что (за исключением небольшого количества функциональных тегов, которые упрощают доступность), так что вы можете не заморачиваться слишком сильно. Это не говоря про то, что семантика этих тегов жёстко привязана к конкретному сайту - то, что будет логично на одном, будет бредом на другом. Универсальных правил использования семантических тегов нет, есть рекомендации, которые вы вольны игнорировать.

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

    TLDR: Не хотите - не оборачивайте, не случится ровным счётом ничего. Это всего лишь рекомендация и примеры в них для семантических тегов иногда притянуты за уши, потому что эти теги в большинстве своём не решали какие-то реальные проблемы, а были введены для красоты, которая у каждого своя.
    Ответ написан
    7 комментариев
  • Автоматическая генерация классов на основе других классов?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Для C# это можно сделать 2 путями (без учета ручного создания):
    - Source Generators
    - Генерация IL кода (динамическая сборка)

    Лично я за 1 вариант, т.к. он будет быстрее в рантайме (все уже скомпилировано).
    Ответ написан
    2 комментария
  • Почему gRPC подменяет исключения?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    А откуда другой сервис знает, какие КЛАССЫ/ОБЪЕКТЫ есть в другом сервисе?
    Если нужно кидать такое-же исключение на сервисе клиенте, то нужно это исключение там и создать.

    А вообще, для своих типов исключений необходимо использовать GRPC_STATUS_UNKNOWN. В документации так и написано:
    Server threw an exception (or did something other than returning a status code to terminate the RPC)


    Решение только одно - в каждом сервисе писать свои обработчики таких исключений и свои классы исключений
    Ответ написан
    2 комментария
  • Какая формула xpath будет переходить с главной страницы по условию(названию анкора) и находить заданные данные?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    xpath сам никуда не переходит. Это инструмент поиска по нодам внутри уже полученного хтмл/хмл, а не инструмент запросов.
    Ответ написан
    Комментировать
  • Как максимально быстро кликнуть на элемент в браузере?

    kawabanga
    @kawabanga
    vadimeasy,
    КРЫСА она) Это ответ.
    Представь, что разница в 70 лидов стоят условные 1К за лид.
    За откат в 30-50% она может и начальника обработать и группу разработчиков.

    Т.е. на ее аккаунт может заявка сразу уходить, если она проходит по параметрам (Жирная заявка). А вы пытаетесь найти способ вытащить несуществующие лиды из системы. В этом и проблема.

    Вы можете даже проверить, если ваш скрипт работает, и в среднем будет у всех 30 лидов, а у вас допустим 45, а у этой коллеги так же 100 - это будет означать как минимум то, что ваш скрипт работает. И дело тут не в скорости скрипта.

    Ответ 2
    Появление кнопки - это следствие.
    Ищите событие, которое его запускает, там либо соединение с сокетом, и вам надо будет внедриться в функцию сокета, либо в ajax проверку. Так вы сможете ускорить получение ответа.
    +
    Пинг до сервера проверяйте. 20-30мс разницы - уже громадная.
    Ответ написан
    1 комментарий
  • Почему возникает ошибка Fatal error. System.Runtime.InteropServices.SEHException?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Проблема в том, что библиотека бросила исключение. В ней какая-то ошибка. Это не проблема сборки или компиляции - это проблема в логике. Что-то вы не то библиотеке передаете. И там, допустим, деление на ноль. Или обращение по нулевому указателю.

    Просите у пользователей все данные, чтобы воспроизвести проблему. Или может оно минидамп создает, тогда можно будет его в отладчике открыть.

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

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

    Попробуй для начала в тупую в бесконечном цикле пытаться находить эту кнопку при помощи
    document.querySelector()
    document.querySelectorAll()
    и нажимать, если нашлась.
    Ответ написан
    4 комментария
  • Как реализовать роутинг между элементами внутри модального окна?

    Erik_Mironov
    @Erik_Mironov
    Старые вопросы: *Dies from cringe*
    1. Роутинг внутри модалки: Можно использовать библиотеку react-router-dom даже внутри модального окна для обеспечения роутинга между различными экранами.

    Создайте отдельный <Switch> внутри модалки:
    <Modal>
        <Switch>
            <Route path="/modal/presets" component={Presets} />
            <Route path="/modal/edit/:id" component={EditPhrase} />
            <Route path="/modal/create" component={CreatePhrase} />
            <Route path="/modal/delete/:id" component={DeletePhrase} />
            {/* ... */}
        </Switch>
    </Modal>


    2. Компоненты экранов: Разделите разные экраны модалки на отдельные компоненты. Это позволит упростить их управление и сделать код более читаемым.

    3. Состояние: Вместо того чтобы использовать сложную систему контекстов, можно просто использовать локальное состояние (useState) или глобальное состояние (например, с помощью redux или mobx), в зависимости от ваших потребностей.

    4. Хуки: Избегайте избыточного использования useMemo, useCallback и прочих, если нет явных причин для оптимизации. Часто избыточное использование этих хуков только усложняет код и на самом деле может замедлить приложение.

    Псевдокод:

    Основной компонент модалки:
    function ModalComponent() {
        return (
            <Modal>
                <Switch>
                    <Route path="/modal/presets" component={Presets} />
                    <Route path="/modal/edit/:id" component={EditPhrase} />
                    <Route path="/modal/create" component={CreatePhrase} />
                    <Route path="/modal/delete/:id" component={DeletePhrase} />
                    {/* ... */}
                </Switch>
            </Modal>
        );
    }


    Компонент пресетов:
    function Presets() {
        const phrases = ... // получите фразы
    
        return (
            <div>
                {phrases.map(phrase => (
                    <div key={phrase.id}>
                        {phrase.text}
                        <Link to={`/modal/edit/${phrase.id}`}>Редактировать</Link>
                    </div>
                ))}
                <Link to="/modal/create">Создать новую фразу</Link>
            </div>
        );
    }


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

    Не пытаться устанавливать MySqlConnector.
    Это библиотека, которая предназначена для .NET, а не для нативных плюсов.

    Чтобы ей воспользоваться, тебе нужно сменить тип проекта на "C++/CLI ", но если тебе хочется C++/CLI, то лучше совсем переходи на C#.

    Если хочешь оставаться на C++, то тогда тебе следует поискать другие библиотеки для взаимодействия с mysql.

    PS: а если это новый проект, то лучше бери postgresql, а не mysql
    Ответ написан
    5 комментариев
  • Почему Version of PostgreSQL not supported, если версии компонентов последние?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    phpPgAdmin History
    ------------------
    Version 7.13.0
    --------------
    Released: November 7th, 2020
    Features:
    * Add support for Postgres 13
    * Add provisional support for Postgres 14
    Ответ написан
    1 комментарий
  • Как исправить ошибку при подключении библиотеки?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    but the server responded with a MIME type of "text/html".

    Сервер отдает html. Скорее всего 404. => неверный путь к файлу => Смотрите в консоли что запрашивается и что отдается.
    Ответ написан
    Комментировать
  • Как сделать фиксированную высоту сайта?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В таких вопросах хорошо показывать код, а не скриншоты, но в общем случае если нам нужно вписать что-то очень большое на фон и сделать так, чтобы оно вылезало за края экрана, но не вызывало скролла нигде, то этой большой штуке делается контейнер с overflow: hidden. Внутри контейнера она может вылезать куда угодно, это уже не будет влиять на размер страницы в целом.
    Ответ написан
    3 комментария