• Возможно ли логивать изменения файлов через sftp?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я видел пакет iwatch. Кажется пытался где-то его применить. Он слушает слишком много событий. Там буквально каждый чих в файловую систему будь то просмотр директорий или атрибутов вызывает шквал событий и их надо грамотно буферизировать и фильтровать.

    В идеале вы должны поставить свой ФТП-root под версионный контроль. Например под git. И делать чисто технический коммит на каждое событие изменения файла.

    Проблема в том что в такой много-пользовательской среде как ФТП трудно выделить атомарную часть изменения чтобы обозвать ее коммитом. Если 2 пользователя одрновременно пишут в 2 файла в ФТП - это нормальное действие с точки зрения файлового сервака. И в этот момент трудно принять решение где-же собсно
    был коммит. Мы полюбому будем фиксировать в коммитах недописанные тела файлов. Вот в чем проблемка.

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

    Проверьте делает ли ФТП временное расширение для файла во время записи или обновления. Это важно.
    Ответ написан
    2 комментария
  • Как очистить память Iphone перед продажей без возможности восстановления?

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

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Потому что вы вообще никак не отреагировали на те ответы, которые вам дали в прошлый раз на этот же самый вопрос.
    Вам написали, как правильно выполнять запросы. Вы это сделали?
    Вам написали, какие действия выполнять, если код не работает. Вы их выполнили?
    Вы так и планируете ходить на Хабр каждый раз, когда код не работает? Вот прямо серьёзно? Это, по-вашему, именно то, чем занимаются программисты?

    Пожалуйста, прочитайте ответы, которые вам давали на этот вопрос в прошлый раз и начните уже им следовать.
    Иначе программирование для вас так и останется игрой в прятки в темноте - "ой, что-то написала, не работает! Ой, что-то другое написала - работает!".

    К тому что написано в предыдущем ответе надо добавить только одно: перед
    new mysqli(...);
    надо всегда писать
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    чтобы база данных сама сообщала, почему не может выполнить запрос. Если дело именно в нём.
    Ответ написан
  • Как в exim сделать триггер на успешную отправку?

    @vitaly_il1
    DevOps Consulting
    На 100% быть уверенным что письмо доставлено, трудно.
    Легко отследить только ошибки типа "адрес не найден" и похожие. (Письмо может быть принято сервером и тихонько отправлено в спам.)
    Если хотите найти "проблемные" адреса из списка, советую искать в логах ошибки, собирать проблемные адреса и удалять из списка рассылки.
    А в целом очень советую забыть про локальный почтовый сервер и пользоваться Sendgrid и т.п. сервисами.
    Ответ написан
    3 комментария
  • Где научиться/почитать про общие темы backend?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Купи книжку Котерова РНР7.
    Зумеры от нее воют потому что (там нету видео, а объем текста больше полутора строчек они воспринимать не в состоянии) про собственно РНР там начинается примерно с середины. Как раз потому что сначала там даются именно базовые понятия, без которых нельзя освоить веб-программирование. В том числе что такое НТТР и как оно работает.
    Ответ написан
    1 комментарий
  • Разный хэш password_verify и password_hash?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не поверишь - в этом и есть весь смысл password_hash - чтобы для одного и того же пароля всегда генерировался разный хэш.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Очередной вопрос из серии "можно ли пить воду носом, потому что я залепил себе рот скотчем. отлепить скотч не предлагать".

    Распаковать архив и не маяться дурью
    Ответ написан
    2 комментария
  • Как придумать название игровой компании и саму же игру для начала?

    Adamos
    @Adamos
    Про это была серия "Силиконовой долины".
    Раз все равно занимаешься ерундой - можешь посмотреть.
    Ответ написан
    1 комментарий
  • Есть сервисы или библиотека для склонения слов?

    Adamos
    @Adamos
    Тег "морфология" указан, бросаем в Гугль "PHP морфология", среди первых же ссылкок - phpMorphy.
    Быстрее, чем вопрос на Тостере.
    Ответ написан
    4 комментария
  • Почему выдает "array" при использовании explode в foreach?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А что кроме массива вы ожидаете получить на выходе explode?
    Ответ написан
    24 комментария
  • Сколько одновременных транзакций можно выполнять к одним и тем же таблицам?

    petermzg
    @petermzg
    Самый лучший программист
    1. Допустимо ли оборачивать в транзакции SELECT запросы?
    - В режиме Read Committed запрос SELECT не будет видеть не закомиченные данные ваших вставок и если вы хотите видеть эти данные до комита, то нужно select вносить в транзакцию.

    2. Есть ли какое-то ограничение на количество запросов в транзакции?
    - Это зависит от размера лог файла для транзакции, глобальный параметр innodb_log_file_size

    3. Есть ли какое-то ограничение на количество потоков которые пытаются выполнить одновременно такой набор SQL инструкций?
    - Есть ограничение на кол-во открытых транзакций 128 * 1023.

    4. Насколько большое количество конкурентных транзакций влияют на производительность?
    - Чем больше работаете с БД тем больше на нее нагрузка. )))
    Ответ написан
    Комментировать
  • Почему так много нестабильных людей пытается стать программистами?

    daemonhk
    @daemonhk
    ПсиХоПат
    "Не мы такие - жизнь такая..." Представьте себе мир, где ценятся только понты и бабки, где с экранов ТВ говорят, что ты лошара голимая, если не купишь то и это, что тебе никто не даст, уважение можно купить. "Будь мужиком!", "Греби бабло!" и прочая хрень. А теперь представьте, что человек с детства впитывает всю эту парашу и приходит устраиваться на работу, начитавшись 100500 статей о том, как быть уверенным и проводить собеседования.

    Ну и еще юношеский максимализм, несчастливое детство, инфантилизм, дети без отцов/матерей/родителей, тараканы в голове и прочее.
    Ответ написан
    7 комментариев
  • Нужно ли делать кеширование запросов и как?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я думаю здесь подмена понятий. Автор пишет "кэширует ли БД запросы", а имеет в виду "может ли в принципе эта страшная и непонятная громадина которая называется базой данных в принципе хоть когда-нибудь рабтотать быстро?"
    Все, разумеется, кидаются отвечать на первый вопрос.
    А на самом деле надо отвечать на второй. Да, почти всегда БД работает гораздо быстрее чем ты можешь вообразить и ничего кэшировать не нужно. Если вдруг стало работать медленно... впрочем, об этом ниже.

    Нужно ли делать кеширование запросов
    Вот в такой формулировке, взятой с потолка, "а не закэшировать ли мне запросы к базе данных*" - Нет, не нужно.

    и как?
    Очень просто.
    Три простых шага:
    1. Понять, устраивает ли тебя производительность приложения. Если устраивает, то все оставить как есть.
    2. Если не устраивает, освоить профайлинг. Если это слово не упоминается в вопросе про производительность или кэширование, то вопрос можно сразу удалять. потому что он заведомо взят с потолка и не имеет смысла. По сути, профайлинг - это замер скорости выполнения отдельных участков кода для поиска узких мест - т.е. таких участков кода, которые тормозят всю программу. Это можно делать и вручную, и с помощью различных готовых инструментов. Только по результатам профайлинга, который показал конкретную причину тормозов, то самое узкое место (его еще называют bottleneck, "бутылочное горлышко"), можно приступать к оптимизации. Не кэшированию!
    3. Если профайлинг показал, что проблема в конкретном запросе к БД, приступаем к его оптимизации. Чаще всего достаточно добавить индекс или донастроить сервер.
    4. Только если все другие способы не помогли - занимаемся кэшированием. Но перед этим сначала решаем Вторую Важнейшую Проблему Информационных Технологий - инвалидации кэша. Поскольку закэшировать - это ерунда, каждый дурак сможет. Самая главная проблема не в том, как данные положить в кэш, а как и когда их оттуда удалять.
    Ответ написан
    Комментировать
  • Как оптимизировать скорость таблицы?

    TheRonCronix
    @TheRonCronix
    Замечательный пример того, как не нужно делать. Все можно и нужно выбрать одним запросом. Про индексы не говорю, для единичных выборок они нужны, для полной выборки - скорее нет.
    Как минимум стоит открыть клиент какой-нибудь и пописать там sql-запросы, делающие нужные вам выборки. Посмотреть планы выполнения, там уже решать, что требует оптимизации.
    Ответ написан
    Комментировать
  • Как реализовать автоподгрузку полей из mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Проще всего сразу выбирать и ФИО и почту, без всяких подгрузок

    Добавлю, что если и делать подгрузку, то тогда живой поиск по фамилии, и не загружать заранее вообще ничего.
    Ответ написан
  • Почему выводит из MySQL знаки вопроса?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Установите кодировку соединения тоже как utf-8: https://www.php.net/manual/ru/mysqli.set-charset.php
    Ответ написан
    1 комментарий
  • Как выполнит одним запросом несколько действий MYSQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вот ты и подрос, наконец, чтобы узнать главное правило программирования:

    Преждевременная оптимизация - корень всех зол.

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

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

    paran0id
    @paran0id
    Умный, но ленивый
    Нужно смотреть логи на сервере. 500 означает, что бэкэнд валится с ошибкой. Что за ошибка - смотрите в логах.
    Ответ написан
    2 комментария
  • Как это называется [в коде]?

    @green_goo
    Это называется говнокод. Извините, не удержался
    Ответ написан
    9 комментариев