• Сайт с рингтонами, авторские права на рингтон?

    vabka
    @vabka
    Токсичный шарпист
    Если мне память не изменяет, в Молдове точно также следят за соблюдением авторских прав.

    Так что чем больше ты там напиратил, тем больше будет штраф и требование возместить ущерб от правообладателя.
    А так как Молдова - это ЕС, то всё будет серьёзнее, чем в России
    UPD: Молдова не член ЕС. Только кандидат.
    Ответ написан
    5 комментариев
  • Хочу сделать регистрацию по лицу, правильно ли я создал алгоритм решения?

    @rPman
    Как нарисовать сову - рисуем два кружочка, затем дорисовываем сову... это в двух словах то что ты описал.

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

    Кстати сами алгоритмы обработки фото там делятся на собственно детектирование лица и удаление шумов (чтобы работать только с лицом размером на все изображение) и алгоритм вычисления параметров по лицу.

    вот почитай к примеру

    p.s. распознавание по лицу это худшая форма авторизации, потому что это биометрия, а по просто фото она еще и легко подделывается (просто показав фото на смартфоне/планшетнике/листке бумаги)

    Если дополнить ее распознаванием речи и заставить к примеру пользователя делать какое то движение (на его выбор), то это просто увеличит стоимость атаки на этот способ авторизации, но не на столько значительно, как простое увеличение количества символов в простой парольной авторизации или введением двух факторной авторизации на основе аппаратного токена в виде карты например (или того же смартфона, но там безопасность просто перекладывается на него)
    Ответ написан
    3 комментария
  • Что делать при ошибке при миграции или запуске сервера при помощи команды 'python manage.py runserver'?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Если у вас где-то что-то не работает, вам надо где-то что-то исправить…

    В общем случае надо создать базу данных от суперпользователя, создать пользователя, дать ему права к базе данных и дать команду базе данных перечитать права пользователей (flush privileges).
    Всё это легко ищется в сети.
    Ответ написан
    Комментировать
  • Есть ли в РФ учебные заведения, которые выпускают сеньоров или мидлов?

    Adamos
    @Adamos
    Или выпускник ВУЗа это всегда человек которого нужно еще год обучать чтобы он стал джуном?

    Ничто не мешает студенту к моменту выпуска из вуза быть вполне состоявшимся джуном.
    Просто не надо надеяться, что за студента это сделает вуз.

    курсы и тд

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

    georgi1984
    @georgi1984
    Нравится JavaScript
    На слайдер добавляется событие. При срабатывании события меняются несколько css значений: z-index, размеры, координаты, blur.
    Ответ написан
    Комментировать
  • Возможно ли получить белый IP бесплатно?

    Noizefan
    @Noizefan
    Ответ написан
    Комментировать
  • Как найти 3 самых частых символа в строке?

    0xD34F
    @0xD34F
    from collections import Counter
    
    count = Counter(s)
    sorted_count = sorted(count.items(), key=lambda n: n[1], reverse=True)
    
    for n in sorted_count[:3]:
      print(f'"{n[0]}" - {n[1]}')
    Ответ написан
    1 комментарий
  • Онлайн-школа или личный ментор?

    xez
    @xez
    TL Junior Roo
    Тут дело такое:
    1. Хороший "личный ментор", скорее всего, вам не по карману. З.п. старшего java разработчика / тим лида сейчас от 300к. Т.е. ставка около 2тр/час. Какая у такого специалиста мотивация чтобы с вам возиться?
    2. Профессия разработчика подразумевает непрерывное постоянное самостоятельное обучение. Не умеете сами учиться? Не хватает мотивации? Эта профессия не для вас.
    Работа програмиста на 80% - это чтение кода, изучение технологий, ковыряние логов, отладка и т.д. Рутины будет много (как и в любой другой профессии) и эту рутину нужно любить чтобы не сгореть еще стажером.
    3. Курсы вам помогут системным подходом к обучению, но вся информация в них доступна бесплатно в интернете, а так же в книгах за сравнительно небольшой прайс.
    Ответ написан
    6 комментариев
  • Какие курсы наиболее эффективны Frontend?

    Adamos
    @Adamos
    Сертификат с курса - это не бумажка о повышении квалификации, это справка о том, что податель сего - лох и не умеет учиться самостоятельно.
    Ответ написан
    Комментировать
  • Чем заниматься после обучения по Python?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    А зачем вы это делаете?

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

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Ответ написан
    Комментировать
  • Почему boolean использует больше памяти чем byte?

    mayton2019
    @mayton2019
    Bigdata Engineer
    С точки зрения ассемблера - удобнее делать операции над целым числом (DWORD) 32bit. Он - же int.
    В масштабах современной памяти - безразлично выделять 1 байт или 4 байта. Все равно
    другие структуры больше захватят тысячекратно. А простота компилируемого кода - здесь важнее.

    Вот поэтому компилляторы и собирают boolean в int. А язык С++ позволяет проводить аналогии
    между int и boolean. В зависимости от контекста число может быть как числом так и логической
    величиной. (Тесная связь с ассемблером да).

    А если речь допустим идет о массиве boolean - тогда смысл в экономии есть. В Java например
    такой массив действительно будет использовать биты внутри байта.

    В базах данных например (Oracle) вообще нет булевого типа с точки зрения хранения. Там предлагают
    символьный тип 'Y' или 'N'. Это связано с дисковыми структурами хранения данных в datarow.

    Поэтому sizeof(булевый тип) будет всегда парадоксом в разных системах программирования и языках.
    Как компиллятору удобнее так и соберет.
    Ответ написан
    Комментировать
  • Как активировать Amazon account?

    @vitaly_il1
    DevOps Consulting
    Ответ написан
    Комментировать
  • Как через домен подключиться к Flask?

    includedlibrary
    @includedlibrary
    Либо через nginx проксировать с 80/443 на 5000, либо запускать flask от рута на 80/443 порту. Лучше проксировать, чтобы не запускать приложение от рута
    Ответ написан
    1 комментарий
  • Returning 'int (*)[(sizetype)(*sizeMas)]' from a function with incompatible return type 'int *' [-Wincompatible-pointer-types] в Си. Что делать?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    mas уже указатель. Массивы в C - указатели. Не надо & использовать где вы его возвращаете. Только в этом случае оно скомпилируется, но работать не будет, потому что mas - локальный массив. По выходу из функции это будет указатель на отчищенную память. Надл выделять массив через malloc.
    Ответ написан
    Комментировать
  • Какой хороший легкий клиент для Wireguard на Windows?

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

    @deliro
    sorted(sizes, key=["M", "L", "XL", "XXL"].index)
    Ответ написан
    3 комментария
  • Для чего нужен lock в python? Как работает данный пример кода?

    Vindicar
    @Vindicar
    RTFM!
    Это объясняется тем, что в базовом питоне потоки не вполне честные - они конкурируют за global interpreter lock, так что код выполняется всё равно поочерёдно. Так что многопоточность в питоне полезна с точки зрения распараллеливания, но не ускорения. ЕМНИП, есть реализации питона, в которых нет этой GIL problem.
    Но нужно иметь ввиду, что этот GIL блокирует только элементарные операции (как в твоём примере), тогда как явное использование lock может накрывать целые блоки кода, состоящие из нескольких операций с защищаемым ресурсом.

    Вот тебе пример:
    import threading
    import time
    
    class Data:
        def __init__(self):
            self.x: int = 0
            self.y: int = 0
    
    
    do_sleep = False
    run = True
    
    
    def reader(d: Data):
        while run:
            x, y = d.x, d.y
            # по идее это условие не должно выполниться никогда
            if (x != 0) != (y != 0):  
                print(f'Got x={x} and y={y}')
            else:
                print(f'OK {x}', end='\x08\x08\x08\x08')
    
    
    def writer(d: Data):
        while run:
            if d.x == 0:
                d.x = 1
                if do_sleep: pass
                d.y = 1
            else:
                d.x = 0
                if do_sleep: pass
                d.y = 0
    
    
    do_sleep = False
    instance = Data()
    reader_thread = threading.Thread(target=reader, args=(instance,), daemon=True)
    writer_thread = threading.Thread(target=writer, args=(instance,), daemon=True)
    reader_thread.start()
    writer_thread.start()
    try:
        input()
    finally:
        run = False
        reader_thread.join()
        writer_thread.join()


    На моей машине, если if do_sleep: pass закомментировать, то в консоли высвечивается только OK - иными словами, присваивание двух полей выполняется достаточно быстро, чтобы поток не успел переключиться в промежутке. Как следствие, reader() всегда видит либо x=0 y=0, либо x=1 y=1.
    Но если if do_sleep: pass оставить, то выполнение тела цикла замедляется достаточно, чтобы поток успел переключиться - и, как следствие, reader() начинает видеть структуру данных Data в неконсистентном состоянии, когда x=0 y=1 или когда x=1 y=0.
    И вот чтобы не гадать "успеет - не успеет", нужно в таких случаях защищать связные серии обращений к структуре с помощью мьютекса, ну или в питоновских терминах - Lock.
    Ответ написан
    Комментировать
  • Какой пет проект можно реализовать на Java?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Я не представляю как можно спрашиваьт у кого-то какой пет проект себе сделать.
    Все равно что спросиьт "каким хобби мне увлечься" и прослушать лекцию что ролики круче прыжков с парашютом, а настолки мастер оф гезеринг и Д&Д вообще разные вселенные.

    Придумайте себе тулзу/сайт/прогу, которая бы лично вам была интересна/полезна и развивайте ее.
    Когда-то таким пет-проектом был собственно линукс
    Ответ написан
    Комментировать
  • Почему пустой tuple занимает больше памяти, чем tuple с None?

    vabka
    @vabka
    Токсичный шарпист
    В случае b у тебя не tuple, а просто None.
    Чтобы получился tuple из одного элемента - нужно добавить запятую
    b = (None,)
    b.__sizeof__() # 32
    Ответ написан
    1 комментарий