Задать вопрос
  • Как правильно хранить контент поста?

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

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

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

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

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

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    О, тут на самом деле есть куча факторов: как правильно уже сказали - есть оборудование провайдера со своими ограничениями. Есть ограничения у вышестоящего провайдера или провайдеров, сети и линий связи. Есть маркетинг провайдера: вам могут выдать тариф 1Гбит, но по факту это будет остаток от гигабитной лини, что приходит на весь ваш дом (у меня был такой случай - через пару месяцев "обещаний" обновить оборудование ушел обратно на старого провайдера, который не зажилил поставить второй коммутатор на дом только для меня одного). Так что гигабит в ДС и на дальнем востоке - это два разных гигабита. 30-40 мегабайт скорости в торрентах на гигабитном тарифе - очень даже неплохо на самом деле.
    Ответ написан
    2 комментария
  • Как сделать чат-бот на основе ИИ, обученный на собственной базе знаний?

    @vitaly_il1
    DevOps Consulting
    Согласен с Максимом - заставить это заработать в принципе несложно. Нюансы могут быть при тонкой настройке.
    Я не спец в AI, а DevOps. Но недавно заказчик попросил поднять приватный "ChatGPT" с его страшно секретными документами. Я использовал клон https://github.com/imartinez/privateGPT. Работает в целом.

    Что искать в гугле для загрузки доеументов в chatgpt - например "chatgpt my documents" .
    Ответ написан
    Комментировать
  • Является ли кнопкой оверлей модалки, при нажатии на которую модалка закрывается?

    delphinpro
    @delphinpro
    frontend developer
    Нет. Для закрытия окна должна быть нормальная кнопка. Закрытие окна по клику вне его проще всего сделать кликом по оверлею, однако это не делает оверлей кнопкой.
    Ответ написан
    6 комментариев
  • Какой внешний SSD выбрать?

    @kalapanga
    Вы не написали сколько оперативки в ноуте и какой проц. Понятно, что ssd в любом случае быстрее чем hdd, и от замены хуже точно не будет. Но очень вероятно, что избавившись от одного бутылочного горлышка, Вы сразу упрётесь в другое. И общий прирост производительности окажется незначительным (меньше, чем ожидаете).
    Возможно, стоит рассмотреть вариант терпеть дальше, а деньги отложить в фонд нового ноутбука.
    Но если уж добавлять ssd, то именно как написали в ответах.
    Ответ написан
    Комментировать
  • PHP не видит name из html. Что делать?

    flapflapjack
    @flapflapjack
    на треть я прав
    Сделайте
    <?php 
    
    include("..\DBconnect\Connect.php");
    echo "<pre>";
    var_dump($_POST);
    $login = $_POST['login'];
    $password =  $_POST['password'];
    
    echo $login;
    ?>


    Если ничего не покажет, то у вас косяк в DBconnect\Connect.php
    Ответ написан
    4 комментария
  • Как восстановить файлы после reset --hard?

    delphinpro
    @delphinpro
    frontend developer
    git reset --hard HEAD~1
    Это вы выполняли на своем компьютере?
    Данная команда полностью очищает рабочий каталог. А в данном случае еще и последний коммит.
    потом вы принудительно закинули эти изменения на гитхаб
    git push --force
    Теперь ваших файлов нет ни локально, ни на гитхабе.

    Мораль: Не нужно тупо копировать команды из интернета. Нужно понимать, что они делают =)
    Ответ написан
    7 комментариев
  • Отслеживание действий процессов в отношении других процессов в Windows?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    может есть какие-то утилиты

    Конечно есть :)

    Kaspersky Antivirus
    Dr.Web
    Malwarebytes (я предпочитаю вот этот)

    или практика по данному вопросу

    И практика есть - и ею поделится любой ИБ-шник :)

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

    Словом примерно то же самое, чего придерживаемся в личной жизни :)
    Ответ написан
    1 комментарий
  • Как грамотно сделать обработку ислючений в php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Структура проекта какая-то странная, в нем, судя по всему, контроллером называется роутер, но на этом я останавливаться не буду, обработка исключений от этого не зависит.

    Основных правил при обработке исключений три:
    1. Не использовать исключения там, где они не нужны. Например, при проверке пользовательских данных.
    Собственно, эмпирическое правило звучит так: функция должна бросать исключение, если она не может выполнить ту работу, для которой она предназначена.

    Отсюда сразу становится понятно, что для функции, которая должна проверять введенные данные, наличие ошибок в них не является исключительной ситуацией. А совершенно штатной. И обеспечивается штатными же средствами. По результатам проверки пользователю просто отправляется ответ, что данные неверны, безо всяких исключений. В нормальной структуре проекта этим занимается контроллер.

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

    2. Системные ошибки обрабатывает глобальный обработчик исключений, логируя саму ошибку, а на клиент отправляя статус 500 и какое-нибудь абстрактное сообщение о проблеме на сервере. Это самое важное в системных исключениях - текст ошибки никогда, не при каких обстоятельствах не уходит наружу.

    Пример такого исключения - когда запрос в БД порождает ошибку.

    3. Пользовательские исключения, там где они нужны, обычно обрабатываются по месту, но есть нюансы.
    Собственно, под обработкой исключений часто понимают два разных действия:
    - собственно обработку, когда программа совершает какие-то действия, чтобы нивелировать негативный эффект. Например, если не удалось подключение к какому-то сервису, то либо попробовать подключиться к другому, либо просто подождать и попробовать снова.
    - простое информирование пользователя

    Для информирования можно действительно ловить исключение через try..catch и писать какое-то свое сообщение.
    Но можно и автоматизировать этот процесс, вот две статьи, которые показывают примеры, как это можно сделать:
    https://angelovdejan.me/2022/11/24/centralized-exc...
    https://habr.com/ru/articles/688202/
    Ответ написан
    Комментировать
  • Как называется такая практика и является ли она приемлемой?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Является ли нормальной практикой для девелопера создать ветку feature1 от не последнего коммита мастера, то бишь не от "g"

    Да. В частности это стандартная практика разработчиков ядра linux: фичи должны расти от релизов или релиз-кандидатов, а не от каких-то случайных коммитов.

    и потом смерджить feature1 с коммитом X2 затирая изменения f и g?

    Из вопроса непонятно, это требование -- затирать, или это побочный эффект которого хочется избежать?
    Если делать обычный git merge, то никакого затирания не будет. Будут конфликты, если изменения касаются одних и тех же мест, иначе будет объединение изменений ветки и мастера.
    Чтобы затирать изменения можно делать git merge --strategy=ours -- в результате мёржа изменения сделанные в ветке которая мёржится будут потеряны.
    Ответ написан
  • Как узнать длительность mp3- файла без чтения всего содержимого файла в Node.js?

    Stalker_RED
    @Stalker_RED
    В некоторых записях ОПЦИОНАЛЬНО может быть длительность в id3 тегах. И вы сами можете туда дописать, если у вас эти файлы не на один раз.

    Для записей с фиксированный битрейтом можно кол-во фреймов перемножить на битрейт.

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

    Это физика - невозможно мгновенно отвести тепло с процессора на кулер, тк у кулера есть масса и некоторая собственная теплоёмкость/теплопроводность.
    Невозможно вентилятор мгновенно разогнать до более высоких оборотов, тк у него есть масса и + воздух сопротивляется.

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

    @dronmaxman
    VoIP Administrator
    https://play.google.com/store/apps/details?id=de.d...
    + USB modem

    Так же существую bluetooth модемы.
    Ответ написан
    Комментировать
  • Как посмотреть что лежит в переменной?

    Stalker_RED
    @Stalker_RED
    Можно сделать так
    $dump = var_export($val, true);
    error_log($dump, 3, '/path/to/myLog.txt');

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

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    Wordpress
    Ответ написан
    Комментировать
  • Как сделать такой слайдер?

    @mikilikala
    На фронте
    Ответ написан
    Комментировать
  • Не включается ноутбук после замены проессора, в чем причина?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    Наверное не подходит.
    Но какой ответ вы ожидаете? Даже модель ноутбука не приведена, чтобы можно было за вас поискать в интернете информацию о совместимости.

    Но для начала, согласно официальной документации, эти два процессора вообще имеют разные сокеты.
    Celeron B820 - FCPGA988
    I3-2330M - FCBGA1023 или PPGA988

    Поэтому даже не очень понятно, как новый процессор можно было вставить
    Ответ написан
    8 комментариев
  • Как можно улучшить производительность ноутбука Lenovo B50-45?

    Alex_Geer
    @Alex_Geer
    System Engineer
    Что бы улучшить производительность ноутбука Lenovo B50-45 требуется 2 простых действия:
    1. Выкинуть ноутбук Lenovo B50-45
    2. Купить новый производительный ноутбук
    Ответ написан
    Комментировать