• В каких случаях многократный вызов одного скрипта с разными параметрами ускорит выполнение задачи, а в каких - нет?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если у вас задача потребляет CPU по максимуму, то да - распараллеливать её на большее количество процессов, чем имеется в наличии потоков - бессмысленно.
    Но обычно задача по добавлению записи в БД потребляет не слишком много поцессора. А если речь про "парсинг", где процессор 99% времени ждет пакет из сети, распараллеливать можно хоть на десятки процессов.
    Конкретное количество зависит от потребления процессора конкретной задачей.

    Количество потоков не всегда равно количеству ядер, умноженному на два. Надо смотреть на конкретный процессор. Тем более на VPS, где процессор тоже виртуальный.

    Если говорить про конкретный пример, то в идеале конечно надо написать нормальный код, который запишет в БД несчастные 3 тыщи товаров меньше чем за секунду. А заниматься параллелизмом уже когда счет пойдет на сотни тысяч. Тем более что цифра скорее всего взята с потолка. Я много повидал говнокода на своем веку, но такой, чтобы добавление одного товара занимало 30 секунд я даже вообразить себе не могу.

    Единственная загадка - при чем тут "web", если речь идет про CLI. И, если уж говорить про веб, то с какой радости он "однопоточный".
    Ответ написан
    Комментировать
  • Какую видеокарту сможет вытянуть 12600KF в современных и будущих играх?

    xez
    @xez
    TL Junior Roo
    Нет такого понятия "вытянуть видеокарту".
    Если процессорной производительности будет недостаточно, то простаивать будет и 4090 и 1030.

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

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Давайте отделим мух от котлет и пофилософствуем на тему трансцендентного понятия "вытянет"... :)

    1) Для начала поймем, что процессор и видеокарта выполняют разные операции. Процессор готовит материал, а карта визуализирует. Соответственно нагрузка на процессор растет с частотой кадров видеокарты, но рост этот недетерминирован, меняется от места в игре, от настроек графики, от игры к игре, от количества игроков и т.д.
    Оттуда мудрость - чем мощнее видеокарта тем выше вероятность, что процессор начнет упираться. Но когда это наступит и где? Кому ведомо?

    2) Далее надо отметить, что не все движки игр реально многоядерные. Есть такие ситуации, где задачи не делятся между ядрами. Ну не всегда 9 женщин могут выносить одного ребенка за 1 месяц.
    Оттуда мудрость - чем выше частота одного ядра, тем иногда это полезнее, чем количество ядер. И есть задачи, где i3 будет быстрее, чем i5 за ту же цену.

    3) Иногда процессор или видеокарту покупают по тем же причинам, по которым берут большие черные джипы (своего рода "членоудлиннитель").
    Оттуда мудрость - иногда надо брать 4090 и процессор 10400, не для того чтобы играть, а для того, чтобы ПОКАЗЫВАТЬ. Ибо денег на что-то одно, а чувство собственной важности лучше растет от указанной связки, чем от чего-то типа i9 13900k + GTX1050.

    4) Умудренные опытом люди, давно, успешно и много раз пережившие "апгрейдные лихорадки" - становятся меркантильны и прагматичны. Они даже не меряются ФПС (вот с i7 - их, допустим, всего 175, а с i9 - аж 184!). Они понимают, что ИХ глаза столько не видят. Они сидят на мониках 60-75 Гц и не парятся.
    И например их игровая прелесть, Хогвардс там какой, или Фаллаут очередной - прекрасно идут на 10-м поколении интел и старом RTX 2070 в FullHD и на 60 Гц, и далее нефиг тратить деньги.
    Оттуда мудрость - какая разница, что кого потянет, есть оптимальное соотношение "общая цена"/"производительность" под конкретную задачу. Какая разница, что длиннее в попугаях - 175 ФПС или 185, если на мониторе выставлено 75?
    Ответ написан
    2 комментария
  • Нужно ли делать условие перед вызовом метода для избежания выделения дополнительной памяти?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если говорить про конкретный пример, то он просто бессмысленный, даже с точки зрения житейской логики.
    Учитывая, что if ($isTestOrder) можно прочитать, как ЕСЛИ переменная не занимает памяти то проверка выглядит просто глупостью. "Если переменная не занимает памяти, то не передавать её. Так мы с экономим память!" Если переменная и так не занимает никакой памяти, то какого еще дополнительно выделения памяти она может потребовать?

    Если говорить про передачу параметров вообще, то оба неправы, но тимлид ближе к истине и надо всегда следовать его рекомендации не экономить на пустом месте. А экономить только адресно, когда экономия очевидна и востребована.

    В общем случае тут не будет никакой экономии, ни на спичках, ни без.

    При передаче параметра внутрь метода под него выделяется дополнительная память

    - это чушь и неправда.

    При передаче в функцию параметра, который в принципе может занимать хоть какую-то осмысленную память (то есть не числа, не булева значения, и не null), память под него НЕ выделяется.
    • Объекты изначально передаются по ссылке
    • Строки и массивы - с использованием механизма copy-on-write. Что означает, что память будет выделяться только если переданное значение будет изменено в процессе обработки. А если оно будет только считываться, то дополнительной памяти занимать не будет

    Для всех остальных типов, как было правильно сказано тимлидом - это будет экономия на спичках.
    Ответ написан
    6 комментариев
  • Как натянуть верстку на FTP?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    "...- Палубной команде - ставить трал!
    - Поставить можно клизму. Трал отдают... " (С) Ю. Иванов "История пропавшего корабля"

    Так вот, натянуть можно подружку. Или кепку на уши. А страницу загружают посредством FTP-клиента при наличии логина и пароля, который должен выдать провайдер.
    Ответ написан
    Комментировать
  • Как получить токен из заголовков ответа в js?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    1. no-cors на клиенте это не "отключение cors", иначе не было никакого смысла в cors, это метка "мне похрен на ответ, я просто отправляю". Соответственно с такой меткой ты не можешь читать ответ никак.
    2. Если при обычном запросе возникакет ошибка cors - значет сервер не посылает allow-* заголовков и cors не разрешён.
    3. Заголовок Set-Cookie ставит, очевидно, cookie. Напрямую его читать в любом случае нельзя.
    3.1. Но можно читать поставленную cookie
    3.1.1. Но читать её можно только на том домене доя которого она поставлена.
    3.1.2. Читать её можно только если она не (как в данном случае) HTTP-only.
    5. Возможно вам и не нужно ничего ни откуда доставать: HTTP-only куки передаются браузером в запросе самостоятельно, из скрипта к ним доступа нет. Однако он и не нужен. Отправляйте все запросы с credentials: "include" и значение автоматически будет присутствовать в заголовке Cookie..
    Ответ написан
    Комментировать
  • Как реализовать идею игрового устройства?

    @alexalexes
    1. Делаете рабочий прототип.
    2. Патентуете его.
    3. Создаете профиль проекта на площадки для краудфандинга для сбора средств.
    4. Если набирается средств хотя бы на десяток единиц продукции - делаете их и отправляете вложившимся в проект.
    5. Собираете статистику сбора средств, реализации прототипов, отзывов, пожеланий в документальном виде, и предлагаете крупной компании купить вас.
    Ответ написан
    2 комментария
  • Помoгите с выбором проца и видяхи для фото/видео/3D?

    @Zerg89
    т.к. красные не могут.

    А во что конкретно не могут по твоему мнению?
    Есть обратный принцип nvidea не может и есть обоснование во что оно не может например не может написать драйвера под линукс или хотябы дать сорсы драйверов под их разработку так как контракт с майками не позволяет
    Ответ написан
    1 комментарий
  • Как создать простую браузерную игру при помощи ChatGpt?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Как создать простую браузерную игру при помощи ChatGpt?

    Без максимально подробного технического задания, описывающего буквально каждый элемент, хотя-бы базовых знаний в области, желания хоть немного попытаться вникнуть в текст ошибки и, что самое важное, желания и умения пользоваться поисковиком - никак.
    Простыми словами: Если вы не умеете программировать, то не сможете получить готовый продукт на выходе. Но умея программировать, вы обойдетесь и без нейронки. Вот такой вот замкнутый круг.
    Ответ написан
    7 комментариев
  • Как создать простую браузерную игру при помощи ChatGpt?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. GPT пишет код очень не стабильно, делом случая он может и не плохое решение выдать и действительно с экономить время, а иногда это даже не решение (которое не работает), а то что в среде ИИ называют "галлюцинациями" то есть написать полный бред.

    2. GPT требует декомпозиции задачи на более маленькие и контроля со стороны понимающего человека, стабильно выдавать решения на данный момент он не может.

    3. Качество решений в различных областях сильно варьируется, в каких то он более стабилен, а в каких то его вообще нет смысла использовать.

    По итогу на сегодняшний момент, без человеческого контроля вы не можете рассчитывать на стабильный результат.
    Ответ написан
    3 комментария
  • Как вывести число записей добавленных в БД через PHP?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    С одной стороны мы все когда-то учились и делали глупости.
    С другой - ну очень тяжело поверить, что человек, учивший в школе математику, не в состоянии справиться с задачей "посчитать повторяющиеся события".
    Вот вы же сами говорите, что есть цикл
    Какая проблема завести переменную, и прибавлять к ней для начала хотя бы единичку внутри цикла, а потом вывести получившийся результат?
    Ответ написан
    2 комментария
  • Как выбрать ноутбук для фронтенд разработки?

    @historydev
    Редактирую файлы с непонятными расширениями
    Лучше возьми себе стационар и нормальных мониторов парочку. - глаза спасибо скажут.

    Так тем более фронт, верстать на одном монике, тем более таком мизерном как на маках, это что-то близкое к мазохизму.

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

    Покупая ябло-продукцию подписываешься на монополию - купи кабель, купи наушники, купи телефон, купи всё на что денег хватает или всё что мы тебе продать хотим.

    Так что подумай 10 раз, перед тем как под гнётом всеобщего "макбук зе бест для ворка" покупать, рассмотри альтернативы.

    После привязки к ябло-аккаунту, отвязаться будет сложнее - чем наркоману от дозы.
    Ответ написан
    3 комментария
  • Почему nginx устанавливается в etc, а не в bin?

    @pfg21
    ex-турист
    пакет стандартной версии nginx-core устанавливает испоняемый бинарь програмки в /usr/sbin/nginx
    и имеет в зависимостях пакет настроечных файлов nginx-common который распихивает кучу настроек по соответствующими путям.
    что еще непонятно ?? :)
    Ответ написан
    Комментировать
  • Как отлавливать все ошибки, чтобы приложение не останавливалось?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Добавить блоки try-catch в критичных местах - особенно на операциях ввода/вывода. Так же следует отловить конкретно эту ошибку и выяснить где именно она возникает. Есть возможность отлова глобальных ошибок:
    https://nodejs.org/api/process.html#event-uncaught...
    process.on('uncaughtException', (err, origin) => { ... });

    Плюс, есть такие полезные утилиты, как PM2 например, которые позволяют автоматически перезапускать приложение в случае падения.
    Ответ написан
    1 комментарий
  • Что быстрее SQL или Javascript?

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

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

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

    Несомненно, из любого правила есть исключения. И бывают ситуации, когда приходится считать в приложении.
    Но на вопрос в общем виде ответ будет совершенно однозначный. Не "может так, может сяк", а только в БД.
    Ответ написан
    9 комментариев
  • Почему при удалении куки возникает ошибка Warning: Cannot modify header information?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Чтобы решить эту проблему, надо научиться пользоваться интернетом.
    В частности, освоить такой сложный навык, как взять сообщение об ошибке, вставить в адресную строку своего браузера, и нажать enter
    И после этого с удивлением обнаружить, что объяснений этой ошибки существует несколько миллионов.
    Например https://ru.stackoverflow.com/questions/284578/

    И заодно не помешает научиться задавать вопросы. Чтобы не спрашивать про то, что вы и так знаете.
    Ответ написан
    4 комментария
  • Ноутбук для инфобеза?

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

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала что значит "атака"? Какую угрозу ты ожидаешь? Потому что ответы будут ОЧЕНЬ разные в зависимости от этого.

    IP бота можно будет попробовать узнать, если ты знаешь, что бот проходит по ссылкам, которые ты можешь ему отправить. Тогда, скинув боту ссылку на свой сайт, можно будет посмотреть, какие адреса заходили в этот момент.
    Если бот такого не делает, то скорее всего никак.

    Зафлудить бота запросами? С одного аккаунта не получится, а с многих - недёшево. Кому ты нужен за такие деньги?

    Потыкать команды бота на пример SQL-инъекции? Если бот вообще использует БД, достаточно использовать стандартные средства подстановки параметров в запросы, а не колхозить SQL чере зформатирование строк.

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

    Короче, ответь хотя бы для себя на вопросы:
    1. чего конкретно боишься?
    2. кому конкретно ты нужен?
    Ответ написан
    2 комментария
  • Как правильно хранить контент поста?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Хранить html код в столбце поста кажется нецелесообразным по ряду причин:
    Угу, ага...

    Лишняя трата памяти на хранение html тегов
    Ого, а лишние это сколько? Экономия на байтах чаще всего приводит к тратам на вычислительные мощности. Некоторые расчеты чуть ниже.
    Уменьшение производительности (?)
    Производительности чего?

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

    Использовать собственные минифицированные теги, благодаря которым определенный парсер будет воссоздавать нужные блоки с помощью компонентов (возможно динамичесих)
    Ага, переизобретаем BBCode, найс... Для понимания проблемы - такие коды придуманы для форумов, с целью ограничить использование хтмл в пользовательском вводе. При этом подходе он худо-бедно оправдан, хотя и требует постобработки при каждом выводе, а это использование регулярок, что как бы совсем не бесплатно. В вашем же случае, источник текста более-менее доверенный, и ограничение в тегах больше мешает чем помогает.
    Что касается экономии на "минифицированных" тегах, ну допустим сэкономите вы 100 байт на тегах, то есть на 1000 постов экономия будет.... ТА-ДАААМ! 0,1 мегабайта! А если экономия 1000 байт на пост, то целый МЕГАБАЙТ можно сэкономить! Похвальная рачительность.

    Хранить каждый элемент поста отдельно в бд со следующим содержанием (element_name, position, content, post_id), используя отношения к родительскому посту, соответственно сохранится структура и рендериться пост будет через соответствующие компоненты в нужном порядке (однако как будет именно рендериться в шаблоне поста пока неизвестно)
    Базовые элементы и так должны храниться отдельно, другой вопрос почему они у вас рендерятся в одном порядке, а в другом месте в другом порядке? Заголовок, короткое описание, текст, главное изображение - отдельные поля, оглавление по сути часть текста, зачем его выносить отдельно - загадка, это же такой же текст, котрый автор волен располагать . Вариант с внешней таблицей по сути приводит нас к выносу части данных в EAV(отличный пример универсализации в ущерб производительности), что как раз будет серьезно напрягать выборки бд, если понадобится делать какие-либо поисково-выборочные манипуляции по этим данным.
    Ответ написан
    6 комментариев
  • Как правильно покрыть WiFi сетью квадрат 5х5 км. на 100 000 человек?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Правильно - идти к профессионалам, которые будут гарантии связи по ТТХ давать.
    Они разворачивают сеть из специализированных точек доступа с mesh сетью и контроллерами.

    А вообще предполагаю, что вопрос отвечается простым гуглением типа "wifi для фестиваля"
    Ответ написан
    2 комментария