Задать вопрос
  • Как делаются отдельные страницы товаров на многостраничном сайте, где их много?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Можете посоветовать как к этому подойти? Может есть какие-то источники, которые я не смогла найти, где говорится, как это делать? Мне кажется, что это возможно, потому что Авито был до того как появился реакт, как-то же это сделали
    Почти любой современный сайт состоит из 2 основных частей: Фронтэнда и бэкэнда. Фронт - то что отображается в окне браузера, бэк - серверная часть, отвечающая за чтение, изменение и сохранение данных, которые можно вывести для клиента в любой удобной форме. По этому для реализации вашего проекта понадобятся знания не только верстки и js, нужно будет и разобраться с серверной частью, которая обычно состоит из движка на каком-то языке, подходящем для веб разработки (PHP, Pyton, Java, JS...) и базы данных, где будут храниться собственно данные о пользователях, объявлениях, просмотрах и т.д.

    Может есть какие-то источники, которые я не смогла найти, где говорится, как это делать?
    А искали?
    Ответ написан
    Комментировать
  • Как удалить по 2 переноса в строках текста на JS?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    https://regex101.com/ в руки и тестируйте свои познания в регулярках.
    Ответ написан
  • Как заставить работать HTML Drag and Drop API на мобильных устройствах?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как в ходе распознавание номеров, записывать данные в БД, при этом исключить дубли?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Проблема в основном в том что нейронка ошибается,.так как если механик станет напротив номера она напишет дубль этого автомобиля.
    Я так понимаю проблема в том что проходящий механик заставляет нейронку еще раз считывать номер машины и заново считать интервал простоя авто в боксе?

    Если да, то:
    (поля и таблицы приведены для примера, естественно в реале они у вас будут немного другие)
    1) Номера должны лежать в отдельной табличке, идентифицирующей авто (cars например). Поля - id | number | comments. Номер должен быть с индексом unique.
    2) Интервалы пишутся в другую табличку - intervals, где есть id | car_id | start_time | end_time
    3) При заезде на сервис номер распознается и запрашивается из базы, если не находится - создаем новый, запоминаем id. Записываем в intervals.start_time текущее время, в intervals.car_id запомненный id машины или id выбранный из базы машин. Пишем end_time по таймеру, последняя запись будет временем окончания стоянки.

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

    PS: Оказывается проблема в "дублях", которые артефакты распознавания. Ну и реальная проблема в том что интервал на 1 машину только один, и даже небольшой перерыв в записи тупо стирает старые данные. Решается банальной нормализацией, выносом интервалов в отдельную сущность и связи по ключам машина-интервал.
    Ответ написан
  • Какой метод локализации(перевода) сайта более эффектинвый (не фреймворк)?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    У вас есть по сути 2 варианта: извращаться с переводом "налету" (что дорого и относительно медленно), или сразу создать мультиязычное окружение на уровне кода. В первом случае на каждый запрос вы будете тратить время и деньги, но при этом в коде потребуются минимальные изменения.
    Во втором случае затраты будут лишь на перевод конкретного итема в момент добавления, и все остальные показы будут "бесплатны". Ну и один раз поработать с переводом интерфейса. Дополнительным плюсом будет то, что все свойства вбитые в интерфейсе уже будут переведены, и перевод понадобится только для пользовательских полей типа описания или комментариев.

    В качестве переводчика гораздо лучше подойдет АПИ чатГПТ или джемени, стоит не дорого, а переводит на порядок лучше онлайн переводчиков, так как хорошо учитывает контекст всего текста, а не предложений отдельно.

    Какие способы есть быстро и эффективно проштрудировать .php файлы на наличии в нем кириллицы и задать блокам-родителям уникальные идентификаторы(к примеру data-translate="a += 1")
    Думаю что вариант с маркировкой блоков заведомо кривой, я бы искал регуляркой по русским символам и в местах текста менял бы на что-то типа <?=_t('найденный текст');?>, ну и 'найденный текст' использовал бы в качестве ключа к переводу фразы в структуре переводов. И с бэкенда уже все приходило бы в нужном языке (что позволяет вообще практически не менять фронт). Это исходя из того что сайт самописный, на какой-нибудь ларе есть куча готовых мультиязычных решений.
    Ответ написан
  • Возможно ли используя js очистить кешированные данные загруженных документов?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Но не уверен, что этого достаточно.
    В большинстве случаев этого достаточно. Экзотические случаи требуют ресерча почему так происходит, которые упираются в какой-нибудь клоудфлейр/прокси с кэшем, и там уже другие танцы с бубном.
    Ответ написан
    Комментировать
  • Что почитать по программированию без кода?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Грокаем алгоритмы?
    Ответ написан
    1 комментарий
  • Можно ли использовать одинаковый url для мультиязычного сайта?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Сможет ли, будет ли индексировать один и тот же урл в разных версиях?
    Самостоятельно - нет, через сайтмап - да, но криво.
    Кроме того, гугль все прекрасно расписал и так, зачем эти размышления о вечном?
    Ответ написан
    Комментировать
  • Какую IDE выбрать для разработки приложений под Linux?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Несколько лет писал его под Windows (C# в MS Visual Studio) ... На что посоветуете перейти? Надежд на перенос кодовой базы не питаю, смирился с тем, что придется писать с нуля.
    а в чем проблема?
    https://code.visualstudio.com/docs/setup/linux
    Нормально ли писать на C# на Linux Manjaro?
    Ответ написан
    Комментировать
  • MySQL: как реализаовать поиска по нескольким вхождениям?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Но тут возникает проблема в формировании prepared statements в PHP (PDO).
    А в чем проблема?
    $sql = 'SELECT * 
    FROM articles 
    WHERE name LIKE ? 
    AND name LIKE ?';
    $prep = $dbh->prepare($sql);
    $ret = $prep->execute(['%' . 'опух' . '%', '%' . 'поч' . '%']);
    Ответ написан
    2 комментария
  • За что можно получить бан на хабр фрилансе?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как программировать на удаленном компьютере?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Как доп вариант - на гитхабе вроде есть онлайн вскод.
    Ответ написан
    Комментировать
  • Какие подводные при хранении токенов в memcached?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вы столкнулись с проблемой "бумажки на мониторе", то есть не озаботились безопасностью данных на должном уровне, и теперь пытаетесь вместо того чтобы более серьезно отнестись к общей безопасности, найти 1 "универсальное" решение, которого нет.

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

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
  • Как правильно организовать структуру базы данных интернет-магазина, если товары из разных источников?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    И вот здесь основные сомнения: сделать выборку из 15 000 строк быстрее, чем из 60 000 (и будет больше) с WHERE city='spb'. На старте хотелось бы сделать правильно, чтобы при последующем развитии не упереться и переписываться все заново.
    Современные бд вообще с такими объемами смешными справляются достаточно легко, скорость может проседать в районе миллиона записей (утрированно, но где-то близко к истине), и там уже надо думать как это хитро индексировать/шардировать или тюнить железо/софт (естественно и тестовая машина должна быть какой-то адекватной конфигурации). По этому такая экономия на спичках по итогу выйдет боком. Собственно вам ничего особенно не стоит создать фейкером 15/60К записей со связями и прогнать эксплэйн на запрос, посмотреть чего в индексах не хватает, как быстро идет выборка... И WHERE city='spb' скорее всего вам аукнется, нужно связывать со справочной таблицей городов и соединять по айди-сити_айди, или через пивот, если у товара может быть больше одного города.
    Ответ написан
    3 комментария
  • Как сделать пакетную обработку в laravel?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Ребят вы знаете, в чем проблема, и куда копать....
    Нет конечно... Берете код, бьете на блоки, расставляете метки времени, отчет по затраченному времени пишете в лог. Проблемные места смотрите и решаете можете ли уменьшить время исполнения. Вангую что самые тормоза у вас будут на выборке из бд или на запросах к апи. В случае бд - вывести запрос и сделать explain. По результату уже можно будет что-то советовать. В случае тормозов с апи - тут уже ничего в плане оптимизации сильно не придумаешь, но в любом случае задачи лучше будет скинуть в очередь и уже оттуда они будут выполняться, пока не закончится список. Кроме того, выборка по одной записи из бд в цикле - классическая ошибка, нужно объединить все запросы в один через join или in(), а дальше работать с полученным массивом.
    Ответ написан
  • Как автоматизировать прохождение змейки на веб сайт через autohotkey?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Selenium, puppeteer?
    Ответ написан
    Комментировать
  • Как выполнять отладку на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Правильный подход - установка xdebug и пошаговая отладка.

    Есть и более простые методы, например:
    Использовать var_dump()/print_r() в нужных местах, чаще всего этого достаточно для отладки небольших скриптов.
    Включение вывода ошибок в аутпут тоже помогает(либо в пхп.ини меняем соответствующие настройки, либо в коде в начале добавляем
    ini_set('error_reporting',E_ALL);  ini_set('display_errors', 1);

    ), хотя по умолчанию все пишется в лог ошибок и можно посмотреть их там (но опять же, для небольших скриптов это норм).
    Ответ написан
    Комментировать
  • Как рисовать Canvas в PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    если речь идет о svg(что за канвас вообще?), то в ридми все описано, естественно для рендера в свг нужно будет поменять рендерер бэкенд на соответствующий - SvgImageBackEnd
    Ответ написан
    Комментировать
  • Частично не приходят письма с сайта на gmail — странно или норма?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Гуглить сервисы проверки почты. От базового мэйлтестера до проверки на спам листы.
    Ответ написан
    Комментировать