• Как создать простую браузерную игру при помощи 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 комментария
  • Как правильно настроить dram + cpu?

    vaut
    @vaut
    Обычная настройка разгона:
    1. ставим желаемую частоту процессора и максимально приемлемое напряжение и сразу проверяем. Если тест стабильности не проходит, уменьшаем хотелки.
    2. понижаем напряжение с контролем стабильности.
    3. чуть чуть понижаем частоту и поднимаем напряжение, что бы не было сюрпризов.
    4. выставляем желаемую частоту памяти и максимально приемлемое напряжение, расслабляем тайминги от души. Понижаем частоту если не заводится.
    5. понижаем тайминги (не забываем про постоянные тесты)
    6. пытаемся понизить напряжение. Делаем небольшое повышение после нахождение минимума.

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

    Sanes
    @Sanes
    Не надо ничего выдумывать с виртуалками. LEMP прекрасно изолируется и конфигурируется на уровне пользователя и php-fpm pool. Если требуются какие-то дополнительные ограничения, то есть Cgroup и Disk Quota.
    Ответ написан
    Комментировать
  • Существует ли 100% свободный процессор?

    vabka
    @vabka
    Токсичный шарпист
    Очевидно из названия, что фонд свободного ПО занимается исключительно программным обеспечением, а не аппаратным.
    => По определению не может существовать процессора, который был бы одобрен фондом свободного ПО.

    Ну и кроме микрокода в процессорах есть ещё куча всего закрытого - такая уж это индустрия.

    100% свободный процессор

    Свободный от кого? Если процессор можно будет изготовить только на линиях конкретной фабрики - считается ли он свободным?

    Если документация и топология открытые, но ты никак не можешь изготовить свой процессор или хотябы проверить имеющийся у тебя на руках - это свободный процессор?

    Если у процессора полностью закрытая топология, но заявляется, что никакого изменяемого микрокода нет - это свободный процессор?

    Если топология открытая, но при этом все сторонние IP-блоки закрытые. Это свободный процессор?

    А так есть ARM архитектура, на которую можно купить лицензию (на архитектуру или даже на готовую реализацию ядер).

    Есть ещё совсем открытый RISC-V
    Ответ написан
    2 комментария
  • Как парсить приложение на андройд?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Да.
    Ответ написан
    1 комментарий
  • Как парсить приложение на андройд?

    Steel_Balls
    @Steel_Balls
    да, возможно. Но только на андроиде, а андроЙде нельзя
    Ответ написан
    Комментировать
  • Как сделать в MySQL изменение поля строки через время?

    Lastor
    @Lastor
    В чем сила, брат? В ньютонах.
    Вообще это очень нерационально гонять mysql почем зря каждую секунду.
    Более целесообразно при выборке вместо поля suc проверять разницу текущего времени с полем date.
    например
    select * from tableName where `date` > now() - interval 10 day

    А если suc принципиально нужен, то:
    select id, login, `date`, (`date` > now() - interval 10 day) as suc from tableName
    Ответ написан
    Комментировать
  • Возможно ли обучить ИИ определять данные анализов по фото?

    vabka
    @vabka
    Токсичный шарпист
    Тут больше задача на OCR и машинное зрение похожа.
    Нужно определить границы таблицы и распознать текст в ячейках.
    Можно попробовать Opencv + tesseract.

    Но скажу, что это сложнее, чем может показаться на первый взгляд (когда-то пробовали такой подход и часто либо границы криво распознавались, либо текст. Причём пробовали сканы, а не фотографии)
    Ответ написан
    1 комментарий
  • Как найти причину высокой нагрузки WordPress сайта на хостинг?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Простой ответ: что вы хотите - это вордпересс, цмс с изначально не оптимальной структурой, так как не возможно сделать и быстро и универсально, чем-то приходится жертвовать.

    Сложный ответ: Для того чтобы выявить проблему используют логирование и профилирование. В лог пишутся все запросы к бд или места где предполагается длительное выполнение кода (например запросы к апи или другим сайтам). Затем анализ, потом нахождение решения и фикс.
    Профилирование же состоит из комплекса действий по нахождению узких мест. В частности код условно делится на блоки, затем выполнение каждого блока замеряется и выясняется какой блок создает задержки. Далее соответственно данный блок дробим до тех пор пока не находим конкретное место проблемы. 80% вероятности что это будет какой-то запрос, с выборкой из нескольких таблиц и структурами по типу EAV, 18% что запрос к какому-то апи/сайту и 2% что тормозит именно криво написанный код (хотя это вордпресс, тут вероятности примерно равные). Что делать зависит от того что за проблема в конкретном случае. Иногда надо что-то закешировть, иногда править запрос, добавлять индексы, возможно что-то менять в структуре. Тут уже от ситуации...
    Ответ написан
    5 комментариев
  • Как исправить ошибку php Call to a member function bind_param() on boolean in?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Call to a member function bind_param() on boolean
    Где вызывается bind_param()?
    $stmt->bind_param("ssisss", $plaintiffs_json, $respondents_json, $type, $reason, $petition, $video);
    Где stmt получает значение?
    $stmt = $conn->prepare("INSERT INTO `cases`(`nickname`, `respondent`, `type`, `reason`, `petition`, `video`) VALUES (?, ?, ?, ?, ?, ?)");
    В каком случае prepare может вернуть значение типа boolean?
    mysqli_prepare() returns a statement object or false if an error occurred.
    Вывод - при вызове prepare возникает ошибка.
    Как найти ошибку? Либо проверить $conn->error после вызова prepare, либо, что правильнее, сразу настроить mysqli на выброс исключений при ошибке, добавив перед соединением с базой вызов
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    Ответ написан
    Комментировать