Задать вопрос
  • Как программировать на удаленном компьютере?

    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 направленные антенны и забыть.
    Ответ написан
  • Как эффективно перейти на c++ при опыте работе с php?

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

    так это...
    Сейчас хочу попробовать реализовать научный проект.
    Собсно практика - лучший учитель, садитесь и пишите. Если базу уже знаете реализация не станет проблемой. По ходу решения текущих задач проекта познакомитесь со всеми нужными изменениями и практиками, сегодня на любой чих есть дока, туториал, видео и чатжпт. Двух зайцев двумя плюсами, так сказать...
    Ответ написан
    Комментировать
  • Как добавить html код для каждой страницы с определенным url?

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

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

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Как визуально показать эту иерархию?
    Цифрами? Буллет с цифрой внутри - 1,2,3... можно добавить стрелочки, что усилит ощущение связанности.
    Ответ написан
    Комментировать
  • Как заполнять поля на html-странице из функции на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мне нужна функция на php, которую можно вызывать и при загрузке страницы, и в том числе в фоновом режиме, которая заполняла бы поля на странице.
    Странице чего? Вашего сайта или чужого? И что значит "в фоновом режиме"?

    Щелчок на кнопке - вызов php-функции - заполнение полей на странице без перезагрузки.
    Аякс. опять же, зависит от того чей сервер. Естественно на фронте код будет на яваскрипте, так что чистым пхп не обойдешься.

    Возможно ли такое? (Пока на WordPress) Спасибо.
    Возможно, но есть условия. Часть из них перечислил выше, остальные зависят от ваших умений.
    Ответ написан
    Комментировать
  • Как правильно интегрировать админку в Laravel?

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