Задать вопрос
  • OpenCV. Почему отдельные кадры из видео весят больше чем видео?

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

    axifive
    @axifive
    Software Engineer
    backend или системное программирование.
    Но лучше просто добавить оперативки и уже выбирать направление по душе. Цена вопроса 1-3 тысячи за 4-8 гб модуль (DDR2 или DDR3, надо смотреть какую поддерживает материнская плата).
    Ответ написан
    2 комментария
  • Как ускорить запрос Select живом поиске?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если поисковый запрос начинается с символа %, то индекс толком не используется.
    Вам нужен либо fulltext index и соответствующий запрос, либо сторонний поисковый движок типа эластика или мантикоры

    Или хотя бы перенести сайт с того утюга, на котором он хостится сейчас, на нормальный сервер. Потому что 10 секунд на перебор трех сотен тысяч строк - это запредельные какие-то цифры.
    Ответ написан
    Комментировать
  • Как правильно выбрать фреймворк и яп для проекта, если ты заказчик?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никак. Выбор инструмента - это задача тимлида и/или техлида. Т.е. ведущего/главного разработчика, отвечающего за принятие ключевых технических решений. Ваша задача, как заказчика, четко оформить требования, ограничения и сформировать начальное ТЗ и описание, что вам требуется от проекта, прототипы интерфейса, например. Без вникания в технические детали. Т.е., "хочу чтобы были фичи такие-то и работил они так-то, ограничения такие-то, требования такие-то". Далее уже задача найти разработчика/команду с большим или достаточным для данного проекта опытом. Далее из начального ТЗ формируется полноценное техническое задание: описывается весь требуемый функционал, рисуется дизайн, прописываются требования, ограничения и прочие хотелки. И на основе ТЗ, тим/тех лид уже подбирает/подбирают наиболее оптимальные и конкретные инструменты и решения, основываясь на собственном опыте и знаниях для конкретно этой задачи. Например, если человек хорошо знает несколько разных инструментов и есть достаточный опыт их использования - он может реализовать проект используя любой из них как одинаково хорошо, так и одинаково плохо. У разных ЯП и фреймворков свои плюсы и минусы. Далее из ТЗ формируется более детальное ЧТЗ и происходит разработка проекта.

    Вот вы говорите:
    Нужно будет выполнять много запросов к БД

    Важная быстрая скорость работы нашего сайта

    Много/быстро это сколько? 100 запросов в час? 1000 в минуту? 1М в секунду? Загрузка страницы за 30/10/1с или даже 100мс? А к какой именно БД? Какая характеристика самих данных и какого типа запросы? На какое количество соединений? В каком регионе? Есть ли там тяжелые или еще какие-то вычисления? Медиа файлы - картинки, видео? Тут очень много нюансов. В идеале следует определиться с конкретными значениями/параметрами и их описать в ТЗ. Ну или определить примерное, а фактическое значение определить на стадии прототипа/MVP и/или провести какое-то исследование/тестирование. Можно потратить десяток лямов на написание крутого кода на го/расте/С++/ассемблере в течении года и все будет летать на простейшем сервере. А можно купить свой сервер за лям (ну, условно, конечно), нанять питонщика или PHP-ника за 300к и он за пару-тройку недель добьется такого же результата. Большинство веб-задач сегодня достаточно просто или с минимальными усилиями решаются абсолютным большинством решений для веба. Да, у всех решений есть свои плюсы и минусы.

    Безопасность от всяческих XSS и SQL атак.

    Вот с этим проще: использовать популярные OpenSource решения, регулярно проводить тесты, нанять отдельно опытного разработчика, красноглазика и пентестера - и тратить на них деньги, пока деньги не кончатся или не будет достигнут необходимый уровень безопасности. Безопасность противоположна удобству, защита отстает на шаг от атак. Риск есть всегда и надо просто быть готовым к последствиям и иметь запасной плат хотя бы в общих чертах.

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

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Я думаю, таких фреймворков не существует.
    Дело в том, что ваши требования совершенно уникальные

    1)Нужно будет выполнять много запросов к БД

    На всех остальных сайтах делается один-два запроса в час.

    2)Важная быстрая скорость работы нашего сайта

    Это очень редкое требование, обычно сайту достаточно возвращать ответ в течение получаса

    3)Безопасность от всяческих XSS и SQL атак.

    Это самое сложное. еще не написан фреймворк, который бы писал код за программиста, или хотя бы подчищал за ним баги и уязвимости
    Ответ написан
    Комментировать
  • Как быстро распарсить много json файлов на python?

    @rPman
    Если узкое место - разбор огромного json, то тебе нужен потоковый парсер, их огромное количество, гугл для питона выдает к пример ijson.

    Если этого будет мало, попробуй переписать это место на c/c++, там еще быстрее парсеры, например simdjson обещает гигабайты в секунду (и это реально так)

    Эти парсеры пробегают линейно по токенам, а ты в процессе принимаешь решение нужно ли пропустить данный токен (или целый подраздел) или обрабатывать далее, благодаря такому подходу в оперативной памяти не сохраняется ничего из входного json а потоковый подход позволяет даже распаралелить обработку (в отдельном потоке/процессе ты анализируешь json а в другом пишешь в базу данных)
    Ответ написан
    Комментировать
  • Как быстро распарсить много json файлов на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А почему ты решил что парсинг это узкое место? Ты пишешь информацию в базу. Тоесть у тебя конвейер операций.
    И я думаю что до того как начинать оптимизацию, надо собрать логи по таймингам. Сколько милисекунд занимет
    чистый парсинг и сколько запись в БД.

    Попробуй еще простой параллелизм. Разбей эти 8000 файлов на 2 фолдера по 4000.
    И запусти 2 python-процесса. Будет допустим не 5 часов а 3 часа. Уже лучше.
    Продолжнай дробить пока удельная скорость обработки не деградирует.
    Ответ написан
    2 комментария
  • Golang нужно делать реконнект к дб или поднимать новое соединение?

    Правильная практика — это использовать пул готовых установленных соединений к базе и раскидывать запросы между ними. Почти все библиотеки для работы с БД делают именно так.

    https://go.dev/doc/database/manage-connections
    Ответ написан
    2 комментария
  • Что быстрее SQL или Javascript?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В общем, чтобы не издеваться над девушкой, объясним на пальцах.

    Во-первых, заголовок у вопроса чудовищно некорректный. Это все равно что спросить, "что быстрее - пылесос или стиральная машина?"
    Во-вторых, ответ на вопрос "производить ли обработку данных в БД или же запросить все данные в клиентское приложение и обрабатывать там" совершенно очевиден: обработку данных следует производить в общем случае только в БД. Она для этого и придумана. Чтобы обрабатывать значительные объемы данных.

    Да, js тоже "может" обрабатывать большие объемы данных.
    Но чтобы значительный объем данных обработать, его сначала надо передать, полностью забив канал между сайтом и базой
    Чтобы значительный объем данных обработать, его надо сначала проиндексировать. Причем делать это каждый раз, а не использовать уже имеющийся набор индексов
    Чтобы значительный объем данных обработать, надо иметь значительный объем памяти или упасть из-за её недостатка
    Чтобы значительный объем данных обработать в многопоточном режиме (а сайт как раз является многопоточной системой), все вышеперечисленное надо умножить на количество посетителей сайта - при каждом запросе перегонять весь массив данных, выделять память, индексировать, считать. Если же вы оставляете все данные в памяти приложения, то их тогда надо как-то синхронизировать с БД. То есть вы себе собираете кучу проблем на пустом месте.

    Несомненно, из любого правила есть исключения. И бывают ситуации, когда приходится считать в приложении.
    Но на вопрос в общем виде ответ будет совершенно однозначный. Не "может так, может сяк", а только в БД.
    Ответ написан
    9 комментариев
  • Как из контейнера docker получить ip и порт, на котором хостится этот контейнер на хостинге?

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

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Любой ноут от 4г оперативки., но лучше 8 или 16, далее не принципиально, если не будете в 3дэ или в видеомонтаж порно, а то и другое вместе.
    И да, не ставьте кали, как минимум до тех пор, пока не научитесь в линукс хоть немного!
    Во всех других дистибутивах есть все тоже самое, что и в кали, а вот геморроя на порядок для новичка меньше.
    У меня нонче 8 гиг, и хватает и на 3дэ и на порно, и на программировать.
    Ответ написан
    Комментировать
  • Ноутбук для инфобеза?

    @ewgenc
    На что деньги есть, то и берите. Нет там каких-то требований к железу. Там больше про умение думать и анализировать.
    Ответ написан
    Комментировать
  • Ноутбук для инфобеза?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ноутбук береться под задачи. Опиши что ты будешь на нем делать. Инфобез - это очень широкое понятие и оно может быть связано просто с чтением почты и документов. Опиши короче свой рабочий день. И какие единицы софта будут нужны.
    Ответ написан
    7 комментариев
  • Можно ли в структуре указать тип данных отличный от того что лежит в базе данных?

    Хорошей практикой является принимать данные из БД в структуру, которая соответствует по типам тому, что лежит в БД.

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

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Вопрос задан час назад. Быстрее было запустить заново))
    По теме: продолжить нельзя, надо заново качать.
    Ответ написан
    Комментировать
  • Как прикрепить в вопрос объёмный код?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Не прикреплять объёмный код, всё равно никто не будет вычитывать, здесь не фриланс. Вместо этого стоит прикрепить минимальный воспроизводимый пример. Часто при попытке создания такового потребность в вопросе вообще отпадает.
    Ответ написан
    Комментировать
  • Как под капотом реализованы интерфейсы в go?

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

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Из всего изученного стало понятно, что процессы - это некие "контейнеры", содержащие id, статус, instruction pointer, значение регистров, открытые файлы и другие данные контекста.

    Вот уже по этому предложению видно, что понятно не стало. instruction pointer и значения регистров -- свои у каждого потока.

    какую роль в планировании играют процессы?

    Никакой.

    Для чего они нужны?

    Для учёта ресурсов и создания изолированных адресных пространств.

    Как планировщик ОС работает с процессами?

    Никак.

    Моя единственная догадка в том, что планировщик как бы "заглядывает" в каждый процесс и уже там работает с потоками.

    Не нужно ему никуда заглядывать. У него есть списки потоков находящихся в разных состояниях, а планирование заключается в перемещении потоков по этим спискам.
    Ответ написан
    9 комментариев
  • Можно ли учить Go первым языком?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Учить можно, а рассчитывать, что это облегчит вам вход - не стоит. Вакансий на Go сильно меньше, а требования к кандидатам выше.
    Ответ написан
    2 комментария
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю можно. Поищи такие компилляторы как Watcom C, Borland C.
    Они умеют генерить код для DOS. На ваткоме кажется была написана
    игра Doom for DOS.

    UPD +Линка www.openwatcom.org
    Ответ написан
    Комментировать