• Почему функция is_palindrome не видит метода .lower()?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    исходное слово тоже к нижнему регистру привести надо, а вообще не надо приводить к нижнему иначе логика неправильная - регистр тоже надо учитывать
    Ответ написан
    Комментировать
  • Как быстро освоить c#, если я работаю на c++?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Пролистываешь метанит параллельно повторяешь примеры.
    Это за 1-2 дня можно сделать.
    Синтаксис довольно простой и немного похож на C++, поэтому изучится легко. Дальше уже идешь в проект и изучаешь какие библиотеки/фичи платформы там используются - их много поэтому лучше не распыляться на них во время обучения
    Ответ написан
    Комментировать
  • Как разместить N файлов по папкам?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    1. Сортируешь все файлы по размеру
    2. Берешь самый большой файл и помещаешь в первую папку
    3. Дальше каждый файл по убыванию размера:
    1. Находишь папку с наименьшим оставшимся размером, который позволяет добавить туда файл
    2. Если таких нет - создаешь новую папку и кладешь туда
    Ответ написан
    7 комментариев
  • Как защитить данные от повреждения при INSERT?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Уровни безопасности:
    1. Бизнес-логика - триггеры, ограничения
    2. Операции обновления - транзакции
    3. Хранение записей - репликация, RAID массивы, бэкапы
    4. Загрузка - проверка файловой системы при старте ОС, фс с возможностью восстановления

    Самый надежный способ
    Использовать PostgreSQL
    Ответ написан
    Комментировать
  • Linux cервер не видит потоки процессора?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Человек тут тоже с такой проблемой столкнулся.
    Он включил Hyper-threading в BIOS и выполнил update -initramfs -u -k all
    Ответ написан
    Комментировать
  • Как правильно реализовать взаимодействия с сервером авторизации на стороне c#?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    В OAuth используюся jwt токены преимущественно - про то чтобы передавать в куках не слышал/не реализовывал.
    Так как используется OAuth 2.0 , то все зависит от роли бэка на шарпе:
    - Если это просто API без вьюшек (HTTP), то тут лучше пользователя заставить самому предоставлять JWT и валидировать его на своей стороне
    - Если это веб-приложение, то нужно использовать Authorization Code flow

    В обоих случаях, когда токен протухнет тебе передаст сервер с успешным ответов в поле expires_in.
    Вот тут про OAuth flow - https://kinde.com/guides/authentication/protocols/...
    А вот тут что поддерживает Spring Boot OAuth - https://docs.spring.io/spring-security-oauth2-boot...
    Ответ написан
    Комментировать
  • Как ограничить кол-во символов после точки при вводе данных в С++?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если нужно округление до определенного кол-ва знаков после запятой, то вот это может помочь:
    unsigned int powers[] = {1, 10, 100, 1000, 10000, 100000};
    
    double round_precision(double number, unsigned int precision) {
      unsigned int coef = powers[precision];
      long temp = number < 0 ? -number * coef : number * coef;
      return (double)temp / coef;
    }


    Также есть вариант записывать число в std::stringstream с нужной точностью, а потом десериализовывать, но т.к. это затратно для этого случая не описал.
    Ответ написан
    Комментировать
  • Как правильно мержить в main из dev, если там есть незаконченные фичи?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Решение более правильное - не делать так. Мержить надо когда все работает, а если есть неработающий функционал, то:
    - Либо комментировать функциональность которая еще не работает
    - Либо сделать эту функциональность доступной через фича-флаги. Эти флаги соответственно никто не должен выставлять
    - Либо мержить только работающие ветки, а та, в которой не работает/не закончена - в нее мержить уже готовую мастер ветку

    Мержить через cherry-pick - такое себе: одна ошибка и ты ошибся (фатально)
    Ответ написан
    Комментировать
  • Как настроить caprover и docker?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Но, теперь он ругается что у меня закрыт 80 порт, хотя это не так, порты открыл.

    Попробуй убрать пробрасывание портов у nginx.
    Судя по всему Caprover подключается к 80 и 443 портам, которые заняты
    Ответ написан
  • Как сделать алгоритм фокусировки?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Нашел этот ответ на SO - https://stackoverflow.com/a/28722407
    В кратце, нужно сравнить 2 изображения - с применой фокусировкой и без. Фокусировка реализуется через применения оператора Лапласа
    cv::Laplacian(src_gray, dst, CV_64F);
    
    cv::Scalar mu, sigma;
    cv::meanStdDev(dst, mu, sigma);
    
    double focusMeasure = sigma.val[0] * sigma.val[0];


    Для оптимизации предлагаю следующие варианты:
    1. Всегда фокусироваться
    2. Через определенные промежутки времени (либо кол-во кадров, не суть), брать сампл изображения и для него вычислять размытость - если изображение размыто, то дальше применяем фокусировку

    P.S. под фокусировкой я понял резкость/размытость изображения
    Ответ написан
    1 комментарий
  • Как сделать преобразование переменной в С++?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если вопрос в том - как возвращать ошибку в качестве ответа, то есть решения:
    - Создать специальный класс Result, который будет содержать либо ответ, либо строку ошибки
    - Возвращать double.NaN - маркер ошибки
    - Кидать исключение

    UPD: если функция возвращает double, а ты хочешь передать std::string, то ничего не получится - типизация строгая
    Ответ написан
    1 комментарий
  • Почему нельзя инициализировать динамический массив в списке инициализации конструктора класса?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Список инициализации выставляет значения в том порядке, в котором объявлены поля.
    Просто поменяй местами аллокацию массивов и полей размеров (в списке инициализации)
    Ответ написан
    1 комментарий
  • Генетический алгоритм в pygame?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Судя по описанию - это можно реализовать и без генетических алгоритмов/глубокого обучения и т.д.
    Алгоритм прост:
    1. На каждой итерации находишь расстояние до всех доступных противников
    2. Рассчитываешь "опасность" исходя из его класса/расстояния/скорости/жизни и тому подобное. Самое простое - атакуй ближайшего к себе
    3. На каждой итерации рассчитывай эти веса и выбирай того, у которого этот вес больше
    Ответ написан
    Комментировать
  • Как реализовать функцию статистики просмотра страницы за некий период?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Тут подходит какая-нибудь аналитическая СУБД. Например, ClickHouse практически для этого и создавался (Click Stream + Ware House).
    Хранить можно следующим образом:
    1. Есть общая таблица по посещениям/визитами с примерно такой структурой [page_id, visit_date] (больше и не надо)
    2. Для хранения статистики создаешь материализованные представления для дня/недели/года

    У них есть тестовые данные для плейграунда сбора аналитики по посещениям/хитам - https://clickhouse-docs.vercel.app/docs/en/getting...
    Ответ написан
    3 комментария
  • Какие есть песочницы (fiddle) для NoSQL баз данных?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Redis - https://try.redis.io/
    MongoDB - https://www.humongous.io/app/playground/mongodb/new
    ClickHouse - https://play.clickhouse.com/play?user=play
    Neo4j - https://console.neo4j.org/
    ElasticSearch - https://www.elastic.co/demos

    Дополнительно - устанавливаешь докер, качаешь нужный образ, находишь сиды различных БД и играешься
    Ответ написан
    Комментировать
  • Есть ли какой-нибудь способ конвертировать массив или коллекцию List в synchronizedCollection?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    SynchronizedCollection<T> - это легаси из .NET фреймворка, в современном рантмайме ты его не найдешь.
    Могу предложить использовать:
    - BlockingCollection<T>
    - Channel<T>

    Если есть возможность, то конвертируй задачу на Scatter/Gather манеру и необходимость в этих структурах данных отпадет.
    Ответ написан
    Комментировать
  • Как исправить ошибку при сборке докера:: database "db" does not exist?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Потому что базы данных db не существует. По умолчанию создается бд postgres.
    Тут 3 решения:
    - Создать БД db при старте приложения
    - Использовать скрипт инициализации - все *.sql файлы внутри директории /docker-entrypoint-initdb.d/ выполняются при инициализации БД
    - Указывать название БД по умолчанию через переменную окружения POSTGRES_DB: 'db'
    Ответ написан
  • Как настроить контейнер для подключения к Postgres "connect ECONNREFUSED 127.0.0.1:5432"?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Укажи хост postgres при подключении внутри докер-композа. Ты пытаешься к локалхосту подключиться, а бд у тебя на другом хосте
    Ответ написан
    4 комментария
  • Как вообще нужно входить в IT сферу?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Стоит ли верить тем самым "Топ языков" или нет?

    Нет.
    Если молоток стоит на 1 месте среди инструментов, то это не значит, что он подходит для починки двигателя автомобиля.
    Стоит ли уходить после 9 класса или нет?
    Какие вообще предметы нужно мне сдавать на ОГЭ, чтобы стать разработчиком игр и войти в IT сферу?

    Если ты собрался стать разработчиком игр, то 11 классов - обязательно. Потом в ВУЗ на высшую математику.
    Разработка игр (я имею ввиду всякие серьезные AAA проекты) это по большей части высшая математика: физ. движок, столкновения, рей-трейсинг, теория вероятностей + надо самому быть немного математиком, чтобы быть программистом
    Колледж это лофа, лучше самообучение?

    ВУЗ + самообучение
    ВУЗ - сложные темы по матану, опыт от преподавателей (практикующих), единомышленники/друзья, практика в компаниях
    Самообучение - никто не становится гением без мотивации и постоянных тренировок
    И что же по поводу книг?

    Читай.
    Единственное что могу сказать - практикуйся больше, чем читай. Без практики книги ты не поймешь.
    Так если я изучу C# и C++, смогу ли я делать десктопные, веб и мобильные проги?


    Короткий ответ - да
    Длинный - разработка приложений это навык и опыт. С опытом сможешь делать одно и то же на любом яп

    Вывод по всему лонгриду: доучивайся до 11 класса, иди в ВУЗ и параллельно со всем этим учи программирование. К моменту поступления уже будешь знать чего ожидать и куда копать. Эта нора глубока
    Ответ написан
    4 комментария
  • Почему потоки накапливаются и не уничтожаются?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Смотреть в сторону разницы: Process.GetCurrentProcess().Threads.Count и ThreadPool.ThreadCount
    Скорее всего какой-то сервис создает множество потоков (ручных) и держит ссылки на них, т.к. поток это объект ядра и он должен быть уничтожен когда на него перестают ссылаться, либо это просто поток, который не завершатся (while (true) какой-нибудь)
    Ответ написан
    2 комментария