Задать вопрос
  • Возможно ли используя 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
    Гуглить сервисы проверки почты. От базового мэйлтестера до проверки на спам листы.
    Ответ написан
    Комментировать
  • Скрипт для передачи данных, в поисках простого решения. кто может помочь?

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

    и чтобы то что передалось с сайта в txt файл через к примеру час автоматически удалилось
    Автоматически это как? Любая "автоматически" работающая программа имеет какой-то код, определяющий что и когда делать. Вариантов что вы там задумали миллиард, как определитесь с конкретным стеком/алгоритмом - перейдете к этому вопросу.

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    пытаюсь запустить через ide phpstorm
    Не очень понятно - через консоль? Так это не через пхпсторм, а через консоль. Вангую что пхп.ини для консольного вызова (aka CLI) вы не меняли, соответственно и работать нифига не будет.
    Ответ написан
  • Как декомпозировать задачи, с которыми ты впервые сталкиваешься?

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

    Как пекарю познать коленвал?

    Как пекарю познать коленвал? Я пекарь по профессии, но к сожалению в моем селе нет автомастерской, а мне нужно заменить коленвал на Тойоте Тундра. Сам коленвал мне прислали, нужен примерный план действий по замене.

    Заменить коленвал в двигателе автомобиля — задача непростая, особенно 
    для человека без опыта в механике. Однако с вниманием, терпением и пошаговым подходом это возможно. 
    Вот примерный план действий:
    
    ---
    
    ### **Подготовка**
    1. **Инструменты и материалы:**
       - Набор ключей и трещоток.
       - Динамометрический ключ.
       - Домкрат и стойки для подъема машины.
       - Съемник для шкивов.
       - Герметик для двигателя.
       - Масло для двигателя и охлаждающая жидкость.
       - Тряпки, емкости для слива жидкости.
       - Руководство по ремонту для вашего двигателя (очень важно для точности).
    
    2. **Создайте рабочее пространство:**
       - Работайте на ровной поверхности с достаточным освещением.
       - Обеспечьте стабильность автомобиля, установив его на стойки.
    
    3. **Слейте жидкости:**
       - Слейте масло и охлаждающую жидкость в заранее подготовленные емкости.
    
    ---
    
    ### **Снятие двигателя**
    1. **Демонтаж вспомогательных элементов:**
       - Снимите аккумулятор.
       - Отсоедините радиатор и трубки охлаждения.
       - Снимите все ремни привода и шкивы.
    
    2. **Демонтаж двигателя:**
       - Отсоедините все крепления двигателя (подушки двигателя, болты к трансмиссии и т.д.).
       - Используйте подъемник двигателя (или лебедку), чтобы извлечь его из автомобиля.
    
    ---
    
    ### **Разборка двигателя**
    1. **Снимите крышку картера:**
       - Выкрутите болты и аккуратно снимите картер, соблюдая осторожность, чтобы не повредить прокладку.
    
    2. **Снимите шатунно-поршневую группу:**
       - Отметьте каждую деталь, чтобы установить их на место позже.
       - Выкрутите болты шатунов, освободите поршни и выдавите их вверх через цилиндры.
    
    3. **Снимите старый коленвал:**
       - Открутите крышки коренных подшипников.
       - Осторожно извлеките коленвал, записывая порядок установки крышек.
    
    ---
    
    ### **Установка нового коленвала**
    1. **Очистите все поверхности:**
       - Убедитесь, что поверхности чисты и обезжирены.
    
    2. **Проверьте зазоры:**
       - Сравните размеры нового коленвала и вкладышей с заводскими рекомендациями.
    
    3. **Установите новый коленвал:**
       - Уложите коленвал на место и закрепите крышки коренных подшипников в правильном порядке.
       - Затяните болты с использованием динамометрического ключа по рекомендациям.
    
    4. **Установите шатунно-поршневую группу:**
       - Убедитесь, что поршни установлены правильно.
    
    5. **Закройте картер:**
       - Используйте новую прокладку и герметик.
    
    ---
    
    ### **Сборка и установка двигателя**
    1. **Установите двигатель обратно:**
       - Подключите все крепления, трубки и провода.
    
    2. **Заполните жидкости:**
       - Залейте свежее масло и охлаждающую жидкость.
    
    3. **Проверьте:**
       - Убедитесь, что все подключено и закреплено.
    
    4. **Первый запуск:**
       - Прокрутите двигатель без зажигания для циркуляции масла.
       - Запустите двигатель и проверьте на утечки.
    
    ---
    
    ### **Рекомендации**
    - Если у вас нет опыта работы с автомобилями, найдите онлайн-ресурсы 
    с пошаговыми видео (например, на YouTube).
    - Всегда соблюдайте рекомендации по моменту затяжки болтов.
    - Если что-то пойдет не так, обратитесь за помощью к опытному механику, 
    даже если это потребуется поездка в соседний город.
    
    Если будут вопросы по конкретным шагам — пишите, я помогу!
    Ответ написан
    Комментировать
  • Как правильно использовать составные первичные ключи в таблицах?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    0)
    Staff, Services и промежуточная таблица StaffServices
    https://brainstation.io/learn/sql/naming-conventions , https://www.sqlshack.com/learn-sql-naming-conventions/

    1)
    Насколько правильным и общепринятым является использование составных первичных ключей в таких случаях?
    В общем случае это неверный подход, отдельный id для каждой сущности, включая пивоты, является хорошим тоном.

    2)
    Какие могут быть плюсы и минусы данного подхода?
    Да нет тут плюсов. Уникальность записи через 2 значения даже из приложения юзать неудобно, особенно когда работаешь с фреймворками, которые соблюдают какой-никакой конвеншн.

    3)
    Есть ли альтернативы, которые стоит рассмотреть в подобных ситуациях?
    Нормальный первичный ключ через автоинкремент и уник на составной.

    4)
    Как это влияет на производительность базы данных и целостность данных?
    Зависит. Если внешние ключи настроены правильно, то консистентность бд будет гарантироваться правилами ключей (в рамках их описания конечно), отсюда все вытекающие, которые сильно зависят от остального построения связей. Производительность будет сильно зависеть от конкретной насторйки бд, машины/образа, но в основном от количества записей, так то движку фиолетово какие индексы использовать, главное чтобы они были.

    5)
    Какие best practices существуют для таких случаев?
    Собсно выше основное описал.

    6)
    Буду рад услышать ваши мнения и советы!
    Велком.
    Ответ написан
    4 комментария
  • Как организовать wifi сеть на 300 метров?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Хорошая антенна на открытом пространстве 500+ метров легко покрывает (по опыту эксплуатации, полтора километра не предел), проблема чаще всего не в силе сигнала, а в том что между точками есть препятствия, включая мелкие объекты, вплоть до листвы деревьев. Если задача сводится к связи 2 конечных точек между которыми нет препятствий, проще всего взять 2 направленные антенны и забыть.
    Ответ написан