• PHP-клиент для Websocket(socket.io) по wss (SSl от letsencrypt)?

    Acuna
    @Acuna
    Заполнил свой профиль
    Лучше всего обращаться к документации, у PHP есть отличный ресурс php.net чем он может по праву гордиться, тут первый же коммент предлагает пример с SSL.
    Ответ написан
    Комментировать
  • Микросервисная архитектура: насколько микро? и почему не возникает проблем с долгим ожиданием?

    Acuna
    @Acuna
    Заполнил свой профиль
    Как же это не тормозит, на любой современный крупный ресурс зайдите, любой кабинет любого банка или мобильного оператора грузится несколько минут (те самые заглушки во всех местах, на месте которых должны быть какие-либо данные), постоянно в плеймаркете юзеры пишут мол что там может так долго грузиться, а все уже, переписали в свое время на микросервисы, ибо модно-молодежно, не переписывать же обратно.
    Ответ написан
    Комментировать
  • Как подключить javafx в IntelliJ IDEA?

    Acuna
    @Acuna
    Заполнил свой профиль
    Есть один нюанс, на который большинство не обращает внимание: на странице скачивания Idea она сообщает что бесплатная версия не поддерживает JavaFX, хотя проект при этом создать позволяет. Я пока не смог их подружить вручную, хотя наверное это и невозможно, иначе зачем им ее блочить тогда.
    Ответ написан
    Комментировать
  • Есть ли в этом коде устаревший синтаксис или что-то еще Php?

    Acuna
    @Acuna
    Заполнил свой профиль
    Коду лет 15, если не больше (серьезно), старое тут все, хоть работать и должно вроде, но я не уверен что такое старое стартанет на настолько новом PHP, обязательно что-то да упадет. В самом начале в index.php добавьте

    error_reporting (E_ALL);

    ini_set ('display_errors', true);
    ini_set ('display_startup_errors', true);
    ini_set ('html_errors', true);
    ini_set ('error_reporting', E_ALL);

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

    Acuna
    @Acuna
    Заполнил свой профиль
    Я пользуюсь PHPMailer, она умеет получать почту с Гугла по IMAP и POP3, html тоже возвращает, но насчет сортировки не знаю, ибо на сервере мне это не нужно. Только стесняюсь спросить, вам на сервере нужно письма сортировать, или на десктопе? Если последнее - то очень рекомендую почтовый клиент The Bat!, я им как раз и пользуюсь для автоматической сортировки всех новых и старых писем по папкам, настроил кучу правил для каждого ящика в зависимости от того, что мне нужно.
    Ответ написан
  • Bluetooth на ухе - это вредно?

    Acuna
    @Acuna
    Заполнил свой профиль
    Я провел исследование намного быстрее и проще: от часа разговора по телефону у меня болит висок (именно по ощущениям как-будто бы туда кулаком зарядили), от гарнитуры - нет. Вот и все.
    Ответ написан
    Комментировать
  • Как создать свою доменную зону?

    Acuna
    @Acuna
    Заполнил свой профиль
    Очень давно, еще при царе Горохе, может лет 20 назад, Гугл подавал заявку в ICANN на регистрацию зоны .google, но им отказали, а вы хотите сами зарегать) Но как вариант - можно с девушкой какой-нибудь познакомиться, которая там работает, может и получится по знакомству, но тоже шансы нулю равны конечно :/ Но у Яндекса получилось, но я не знаю как...
    Ответ написан
  • Как создать домен не вводя паспортные данные?

    Acuna
    @Acuna
    Заполнил свой профиль
    Так ведь не пользоваться рашкинскими регистраторами (просто о них забыть, ибо зачем, проблемы будут обязательно, это просто вопрос времени, плюс с вероятностью 90% снимут с делегирования даже без решения органов если вдруг ресурс кому-то будет мешать) и пользовать услугу Private Person, стоит копейки, для зоны .com точно имеется, а зарубежным регистраторам (тебе нужен регистратор, а не хостинг, не путай. Некоторые хостинги являются регистраторами, но только если очень крупные как GoDaddy) вообще все-равно до твоих паспортных данных, ибо в любой цивилизованной стране опасность представляют только террористы, а не народ. Но я думаю это ты и без меня понимаешь. Надеюсь.
    Ответ написан
  • Почему очень быстрый сайт имеет плохую оценку PageSpeed?

    Acuna
    @Acuna
    Заполнил свой профиль
    Не знаю откуда у вас там берутся картинки, может CDN какая доставляет на лету, но грузятся они очень долго. Вы пытались обдурить Гугл, выкидывая юзеру чистый HTML, а потом уже картинки, но это читерство, ибо перед загрузкой картинок возникает секундная задержка, а это визуальная задержка в глазах юзера. Надо смотреть почему CDN так долго их отдает, может перед ней прокси медленный стоит, либо нужно смотреть какой регион выбран у бакета если это Amazon S3, и т. д. В общем сюда копать надо. Либо локально хранить пикчи, у вас же три картинки на сайте, зачем их брать откуда-то?
    Ответ написан
    Комментировать
  • Есть ли данные о эффективности Agail?

    Acuna
    @Acuna
    Заполнил свой профиль
    Во-первых, поправочка: "agile", не "agail", произносится как "эджаил", только так, разумеется никакой не "агиле" и т. д. Во-вторых, может вопрос Хабром и навеян, но была как раз статья недавно, не знаю конечно читали ли или нет, но там просто размазали его по асфальту, очень рекомендую почитать если это еще не было сделано, прежде чем решите внедрять: https://habr.com/ru/post/489538
    Ответ написан
    Комментировать
  • Замена плагину query_response_time в MySQL?

    Acuna
    @Acuna
    Заполнил свой профиль
    Вместо этого они расширили Performance_Schema и теперь нужно вручную брать данные из нее и слать значения куда надо, тут хорошая статья.
    Ответ написан
    Комментировать
  • Есть ли инструмент, с помощью которого можно выкачать всё о себе из vk.com?

    Acuna
    @Acuna
    Заполнил свой профиль
    Полгода назад ВК выкатил официальный инструмент для этого: https://vk.com/data_protection?section=rules&scrol... Сам проверял, выдает действительно все, вплодь до лички, комментов, фоток (даже из закрытых альбомов) и истории посещений, процесс подготовки занимает дня три, иногда больше.
    Ответ написан
    Комментировать
  • Зачем нужны абстрактные классы и интерфейсы в php?

    Acuna
    @Acuna
    Заполнил свой профиль
    Если совсем на пальцах для гарантированного понимания на наглядном примере: мы проектируем класс для работы с БД. Он должен работать с разными типами БД (MySQL, PostgreSQL, и т. д.). Каждый тип, с которым он может работать, мы реализовываем в виде отдельного класса (что в дальнейшем позволит просто добавлять к нашему проекту новые классы, не переписывая основной класс). Благодаря этому можно создавать другие классы на основе нашего абстрактного основного класса, не боясь, что необходимые для работы методы не будут определены (так как абстрактные методы обязаны быть переопределены при расширении функционала этого класса базовым абстрактным классом), что позволит предотвратить ситуации когда либо сам разраб забыл переопределить нужный для работы нашего расширения метод, либо другие программеры забыли/забили на это при создании своих расширений для этого класса, а тут компилятор скажет, мол, ты расширяешь свой класс базовым классом, это хорошо и правильно, но переопредели плиз эти абстрактные методы, ибо в них вообще вся суть расширения. Надеюсь хотя-бы это объяснение прольет свет. Штука крайне удобная, одна из самых удобных и нужных вещей в PHP и вообще во всех нормальных языках.
    Ответ написан
    Комментировать
  • Как полностью выключить вывод ошибок в PHP?

    Acuna
    @Acuna
    Заполнил свой профиль
    Я бы не рекомендовал затыкать вывод ошибок полностью, это bad practice. Пишу на PHP уже лет 10, и только недавно установил уровень E_ALL, исправление всех ошибок заняло где-то неделю, но сейчас я нарадоваться не могу, ибо ругается даже на отсутствие ключей в массиве (ибо в большинстве случаев если обращаются к какому-либо ключу, он должен быть в массиве, а его отсутствие - следствие какой-то проблемы). Об отсутствии какой-либо переменной я и вовсе не говорю. Для юзера достаточно просто подавить вывод ошибок (ибо сайт не будет работать только при E_FATAL и E_COMPILE, когда вообще не получается получить байткод), а для разрабов ошибки можно писать хоть в текстовый файл, используя собственный обработчик set_error_handler ().
    Ответ написан
    Комментировать
  • Что если несколько пользователей одновременно обратятся к скрипту?

    Acuna
    @Acuna
    Заполнил свой профиль
    Так ведь скрипт - это тот же index.php, то есть сам сайт по сути) Если уж совсем на пальцах, то сервер - это папка, где хранятся файлы, а браузер просматривает эти файлы (это и есть HTTP), что произойдет если миллион человек запросят файл index.php? Сервер им его отдаст, ибо это просто его просмотр. Это не многозадачность, это просто обращение к файлу. Другой вопрос если этот скрипт что-то пишет в другой текстовый файл (не в БД, БД это как раз многозадачность), то там будут возникать блокировки и вообще что угодно, вплоть до его повреждения. Но это уже из другой области вопрос, а вы про HTTP спрашиваете.
    Ответ написан
    Комментировать
  • Стоит ли принимать приглашение на работу?

    Acuna
    @Acuna
    Заполнил свой профиль
    Я так скажу: вам кажется просто что вы еще не нагулялись, такие перспективы в жизни открываются, а тут галера в МинОбороны пожизненно, поэтому если есть возможность полоботрясницать - полоботрясничайте пока, работать всегда можно пойти, с таким стеком технологий оторвут с руками в любом возрасте.
    Ответ написан
    Комментировать
  • Можно ли заменять в SQL запросе ' на "?

    Acuna
    @Acuna
    Заполнил свой профиль
    В плане самого вопроса - можно, почему нет, у меня все работает годами без проблем, другой вопрос что на определенном этапе проект разрастется до того, что нужно будет переходить на PostgreSQL, там западло и начнется, так как она принимает только одиночные кавычки, так что лучше изначально использовать одиночные.
    Ответ написан
    Комментировать
  • Как учиться по API (android)?

    Acuna
    @Acuna
    Заполнил свой профиль
    Теория без практики мертва, как известно, поэтому нужно кодить, иначе не научиться. У Андройда реально хреновые доки, я туда за все время лазил пару раз от силы, так что идеальный вариант - искать ответы на SO, там всегда выкладывается код для решения той или иной задачи. Но у него есть и минус: большое количество индусов с соответствующим качеством кода, поэтому чтобы начать активно им пользоваться - к этому времени уже нужно хоть как-то разбираться хотя-бы в логике языка, чтобы уже на лету переписывать код из индусского в нормальный сразу в момент добавления его в проект, чтобы потом не тратить время на рефакторинг. Еще можно брать исходники опенсорсных проектов, но новичку в чужом лапшекоде разбираться весьма трудно, а уж искать решения и подавно.
    Ответ написан
    Комментировать
  • Почему в js и в php по-разному сравнивают переменные?

    Acuna
    @Acuna
    Заполнил свой профиль
    На самом деле все на удивление просто:

    1) Из-за динамической типизации и логичного кода PHP отлично заходит у новичков со всеми вытекающими, а так как они самоучки, очевидно они скорее всего никогда не слышали о том, что нужно сравнивать переменные строго, плюс PHP не ругается, поэтому зачем писать ===, когда можно написать просто ==?
    2) Из-за той же динамической типизации PHP особо не важно что и с чем сравнивать, он все приводит на лету к чему надо, ибо если бы этого не происходило, то все бы падало на каждом шагу, ибо С (на чем он написан) - параноик на типы данных, поэтому === - это по сути просто заглушка.
    Ответ написан
    Комментировать
  • Зачем прописывать методы в Interface когда можно так же в классе?

    Acuna
    @Acuna
    Заполнил свой профиль
    Интерфейсами очень хорошо реализовывать какие-либо слушатели или коллбеки для использования их значений извне.

    Например:

    public class MyClass {
      
      private String mess = "";
      private MyListener listener;
      
      public MyClass () {
        
        mess = "Успешно";
        
      }
      
      public void addListener (MyListener listener) {
        this.listener = listener;
      }
      
      public void connect () {
        
        listener.onSuccess (mess); // Какое-либо действие в случае успеха, например, подключение к серверу
        
      }
      
    }
    
    interface MyListener {
      
      void onSuccess (String mess);
      void onError (int code);
      
    }

    Теперь его можно вызвать следующим образом:

    MyClass myClass = new MyClass ();
    
    myClass.addListener (MyListener () {
      
      @Override
      public void onSuccess (String var1) {
         System.out.println (var1); // var1 имеет значение "Значение", которое мы получили в конструкторе класса MyClass. А тут с ней можно делать что угодно, например, слать HTTP-запросом куда-либо дальше.
      }
      
    });
    
    myClass.connect ();

    Просто и наглядно. Еще удобно их пользовать для описания методов каком-либо классе, чтобы другим программерам было удобнее копаться в чужом коде.
    Ответ написан
    Комментировать