• Как вернуть старый интерфейс Google Chrome?

    @HTTP404 Автор вопроса
    Сам спросил, сам отвечу. Нужно в chrome://flags кроме Chrome Refresh отключить ещё Customize Chrome Side Panel.
    65fb2e5b5bd4e968824282.png
    Ответ написан
    3 комментария
  • Выводит полностью код php что делать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вангую шорттеги...
    Ответ написан
    2 комментария
  • Как сделать анимацию кардиограммы?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Вообще рисование линий обычно делается через изменение свойств stroke-dasharray и stroke-dashoffset у кривых в SVG. Это самый простой способ в рамках фронтенда, хотя и изначально эти вещи были для другого придуманы. Но в случае с ЭКГ нужна постоянная скорость рисования по горизонтали. Поэтому можно взять прямоугольную маску в рамках той же SVG, и двигать ее в сторону:

    Ответ написан
    6 комментариев
  • Как мониторить работу скрипта PHP?

    Vamp
    @Vamp
    Начните с настройки директив slowlog в конфиге fpm.

    request_slowlog_timeout mixed
    The timeout for serving a single request after which a PHP backtrace will be dumped to the 'slowlog' file. A value of '0' means 'Off'. Available units: s(econds)(default), m(inutes), h(ours), or d(ays). Default value: 0.

    slowlog string
    The log file for slow requests. Default value: #INSTALL_PREFIX#/log/php-fpm.log.slow.

    Как только какой-либо скрипт работает дольше request_slowlog_timeout, снимается стек трейс данного скрипта и записывается в текстовый файл по пути, указанному в slowlog. Если тормозит какое-то конкретное место, то в стек трейсе будет видно какое. Например, если тормозит база, то в slow логе в топе стек трейса будет, например, вызов PDOStatement::execute.
    Ответ написан
    Комментировать
  • Как перехватить любое исключение в php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    В старых версиях PHP деление на ноль никакое не исключение, а обычная ошибка.
    О чем ясно написано в выводимом сообщении: Warning: Division by zero in ...

    Чтобы перехватывать ошибки, их надо конвертировать в исключения. В простейшем варианте
    set_error_handler(function ($level, $message, $file = '', $line = 0)
    {
        throw new ErrorException($message, 0, $level, $file, $line);
    });

    После установки такого обработчика все ошибки будут автоматически конвертироваться в исключения, и соответственно могут быть пойманы через try..catch:

    Fatal error: Uncaught ErrorException: Division by zero
    Ответ написан
    1 комментарий
  • Не работает запрос "RESET QUERY CACHE;" Как сделать очистку кэша в Mysql 8?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    The query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0.

    https://dev.mysql.com/doc/refman/5.7/en/query-cach...
    Сложно очистить то, чего вообще нет.
    Ответ написан
    1 комментарий
  • Phpmailer-это старье?

    @LaraLover
    Не забывайте что PHP - вообще умирает. А вообще используется и вы используйте. И если хорошо знаете не популярные ( умирающие ) фреймворк, которые полностью покрывают вашу задачу- используйте.
    Можете конечно одеть свитшот, налить себе смузи и уехать на гироскутере в даль, учить node.js
    Ответ написан
    Комментировать
  • Чем преобразовать текст в речь (бесплатные проекты, сервисы)?

    Как на счет SpeechSynthesisUtterance в JS ?

    let synth = window.speechSynthesis;
    
        document.onclick = function(){
          let speech = new SpeechSynthesisUtterance();
          speech.lang = 'ru-RU'; // язык
          speech.rate = 1.5; // скорость
          speech.text = 'Текст для озвучки';
          synth.speak(speech);
        }
    Ответ написан
    1 комментарий
  • В чём смысл finally?

    E1ON
    @E1ON
    Programming, Gamedev, VR
    Finally гарантирует выполнение кода, независимо от того, была ошибка или нет.
    А что будет, если код, обрабатывающий исключение, сам вбросит исключение?

    try
    {
      throw new ArgumentException();
    }
    catch(Exception)
    {
          // any new exception thrown here
    } 
    CodeCleanup();


    В данном случае выполнение логики прервется, соответственно, метод CodeCleanup не будет выполнен.

    Подобное может случиться, например при вызовах методов, которые выполняют определенные сетевые операции, которые отваливаются по Timeout-у. В таком случае обычно делают N-ое кол-во повторных вызовов того же метода, чтобы исключить проблемы, связанные с настабильностью сети.

    Finally решает эту проблему.
    Ответ написан
    2 комментария
  • Генератор логотипов для сайта бесплатный?

    VladimirARS
    @VladimirARS
    Ответ написан
    Комментировать
  • Как разделить доли в ИТ-стартапе?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Есть разные схемы - статей достаточно в интернете.
    Например captable.

    олжны ли мы распределить все 100% или нужно распределить 40-50%, а остальное выделить на опционы для будущих сотрудников и инвесторов?


    Можете и так и так. Разделяйте все 100%, как надо будет выделять новые доли, размывайте свои pro rata

    Нужно ли ставить ограничения на выход из проекта

    Ограничения вы вряд ли поставите, но можете обговорить условия выхода. В самом простом виде для этого есть клифф и вестинг на долю. + отказ от всяких прав на интеллектуальную собственность
    Ответ написан
    Комментировать
  • Как определить дату регистрации профиля ВКонтакте?

    @prineside
    Спам-бот
    vk.com/foaf.php?id=25573397 , где GET[id] - ID страницы пользователя на vk.com

    Возвращает XML. Тех. поддержка сказала, что фича не официальная - значит, может и отпасть. Но стоит уже довольно долго и все эти сайтики с информацией о дате регистрации страниц, скорее всего, к ней подвязаны.

    ID страницы можно узнать через API или с помощью тестовой формы на странице документации методов API (это если пользователь изменил свой адрес страницы и тем самым скрыл ID в адресной строке).

    Как парсить - отдельная тема, скажу только, что дата регистрации лежит в rdf:RDF -> foaf:Person -> ya:created.

    Информация о FOAF: https://ru.wikipedia.org/wiki/FOAF

    Кстати, по той же ссылке можно получить еще некоторую интересную информацию, например, дату последнего изменения страницы.
    Ответ написан
    Комментировать
  • Где взять стильную 3д карту?

    freeExec
    @freeExec
    Участник OpenStreetMap
    3D есть у MapBox, ну а стильность задизайните сами на свой вкус и тараканы.
    https://docs.mapbox.com/mapbox-gl-js/example/3d-bu...
    Ответ написан
    Комментировать
  • Как настроить Nginx config на Open server?

    SimBioT19
    @SimBioT19
    {{ user.about }}
    Конфиги Nginx в OSpanel (OpenServer) настраиваются для каждого домена отдельно.
    В папку с доменом поместите файл с конфигами, имеющий название версии Nginx, например, Nginx-1.8_vhost.conf или Nginx-1.10_vhost.

    Внутренности моего конфига для root в /public:
    server {
        listen         %ip%:%httpport%;
        listen         %ip%:%httpsport% ssl;
        server_name    %host% %aliases%;
        
        ssl_certificate               "%sprogdir%/userdata/config/server.crt";
        ssl_certificate_key           "%sprogdir%/userdata/config/server.key";
        
        #add_header Strict-Transport-Security "max-age=94608000; includeSubDomains; preload";
        
        # if ($request_method !~* ^(GET|HEAD|POST)$ ){return 403;}
        location ~ /\. {deny all;}
    
        location / {
            root       "%hostdir%/public";
            index      index.php index.html index.htm;
            try_files $uri $uri/ /index.php?_url=$uri&$args;
        }
    
        location ~ \.php$ {
            root                               "%hostdir%/public";
            try_files $uri $uri/ /index.php?_url=$uri&$args;
            # if (!-e $document_root$document_uri){return 404;}
            fastcgi_pass                       backend;
            fastcgi_index                      index.php;
            fastcgi_buffers                    4 64k;
            fastcgi_connect_timeout            1s;
            fastcgi_ignore_client_abort        off;
            fastcgi_next_upstream              timeout;
            fastcgi_read_timeout               5m;
            fastcgi_send_timeout               5m;
            fastcgi_param    CONTENT_TYPE      $content_type;
            fastcgi_param    CONTENT_LENGTH    $content_length;
            fastcgi_param    DOCUMENT_URI      $document_uri;
            fastcgi_param    DOCUMENT_ROOT     $document_root;
            fastcgi_param    GATEWAY_INTERFACE CGI/1.1;
            fastcgi_param    HTTPS             $https;
            fastcgi_param    QUERY_STRING      $query_string;
            fastcgi_param    REQUEST_METHOD    $request_method;
            fastcgi_param    REQUEST_URI       $request_uri;
            fastcgi_param    REMOTE_ADDR       $remote_addr;
            fastcgi_param    REMOTE_PORT       $remote_port;
            fastcgi_param    SERVER_ADDR       $server_addr;
            fastcgi_param    SERVER_PORT       $server_port;
            fastcgi_param    SERVER_NAME       $host;
            fastcgi_param    SERVER_PROTOCOL   $server_protocol;
            fastcgi_param    SERVER_SOFTWARE   nginx;
            fastcgi_param    SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            fastcgi_param    SCRIPT_NAME       $fastcgi_script_name;
            fastcgi_param    TMP               "%sprogdir%/userdata/temp";
            fastcgi_param    TMPDIR            "%sprogdir%/userdata/temp";
            fastcgi_param    TEMP              "%sprogdir%/userdata/temp";
        }
    
    
        location /openserver/ {
            root     "%sprogdir%/modules/system/html";
            index    index.php;
            %allow%allow    all;
            allow    127.0.0.0/8;
            allow    ::1/128;
            allow    %ips%;
            deny     all;
            location /openserver/server-status {
                stub_status on;
            }
            location ~ ^/openserver/.*\.php$ {
                root                               "%sprogdir%/modules/system/html";
                fastcgi_pass                       backend;
                fastcgi_index                      index.php;
                fastcgi_buffers                    4 64k;
                fastcgi_connect_timeout            1s;
                fastcgi_ignore_client_abort        off;
                fastcgi_next_upstream              timeout;
                fastcgi_read_timeout               5m;
                fastcgi_send_timeout               5m;
                fastcgi_param    CONTENT_TYPE      $content_type;
                fastcgi_param    CONTENT_LENGTH    $content_length;
                fastcgi_param    DOCUMENT_URI      $document_uri;
                fastcgi_param    DOCUMENT_ROOT     $document_root;
                fastcgi_param    GATEWAY_INTERFACE CGI/1.1;
                fastcgi_param    HTTPS             $https;
                fastcgi_param    QUERY_STRING      $query_string;
                fastcgi_param    REQUEST_METHOD    $request_method;
                fastcgi_param    REQUEST_URI       $request_uri;
                fastcgi_param    REMOTE_ADDR       $remote_addr;
                fastcgi_param    REMOTE_PORT       $remote_port;
                fastcgi_param    SERVER_ADDR       $server_addr;
                fastcgi_param    SERVER_PORT       $server_port;
                fastcgi_param    SERVER_NAME       $host;
                fastcgi_param    SERVER_PROTOCOL   $server_protocol;
                fastcgi_param    SERVER_SOFTWARE   nginx;
                fastcgi_param    SCRIPT_FILENAME   $document_root$fastcgi_script_name;
                fastcgi_param    SCRIPT_NAME       $fastcgi_script_name;
                fastcgi_param    TMP               "%sprogdir%/userdata/temp";
                fastcgi_param    TMPDIR            "%sprogdir%/userdata/temp";
                fastcgi_param    TEMP              "%sprogdir%/userdata/temp";
            }
        }
    
    }


    Не забудьте перезагрузить openserver
    Ответ написан
    1 комментарий
  • По вашему опыту - поможет ли от выгорания смена работы?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Ипотеку возьмите, помогает.
    Ответ написан
    Комментировать
  • Почему не краснеет тег?

    xEpozZ
    @xEpozZ
    Веб-разработчик
    Пишите в Notepad++ поддержку
    Ответ написан
    1 комментарий
  • Полнотекстовый поиск MySql или Sphinx?

    @abroabr
    Полнотекстовый поиск устроен достаточно примитивно.
    У всех. Разница только в нюансах.

    1. Делится текст на отдельные слова, отбрасываются короткие и служебные слова.
    2. Прогоняются слова через стемминг (отсекаются окончания) snowball.tartarus.org/algorithms/russian/stemmer.html
    3. По словам строится индекс что-то типа такого roaringbitmap.org

    Все - MySQL, PostgreSQL, SphinxSeach, ManticoreSearch, ElasticSearch - работают по такому алгоритму, когда речь идет о полнотекстовом поиске.

    Качество поиска упирается в основном в п. 1 и 2. Плюс ручная заточка (дополнительный словарь и пр.)
    Скорость поиска упирается в п. 3.

    Есть небольшие отличия. Например, ElasticSearch умеет работать с индексом, который хранится на кластере из нескольких серверов. Таким образом, он не ограничен в размере индекса так жестко как SphixSearch (где принципиально, чтобы данные располагались на одном сервере).

    С другой стороны - SphinxSearch и его форк ManticoreSearch - чрезвычайно заточены на скорость. В частности, в них принята парадигма - игнорировать ошибки при построении индекса настолько настолько это возможно. Все ради скорости.

    MySQL и PostgreSQL - не имеют никаких преимуществ ни по скорости (как Sphinx/Manticore) ни по объему индекса (как ElasticSearch). Их преимущества - простота использования, если у вас данные изначально хранятся в реляционной СУБД.

    Нет, выхлопа по скорости при переходе на MySQL c Sphinx вы не получите. Sphinx быстрее. От заточен именно на скорость.

    Другое дело, что, возможно, вам не понадобится столь высокая заточенность на скорость у Sphinx. Возможно, удобство хранения в реляционной СУБД MySQL перевесит.

    И да, непонятно зачем вам MongoDB. SphinxSearch уже давно может хранить и сами данные, а не только сам поисковый индекс. Дополнительное обращение к MongoDB после того как документ уже найден в SphinxSearch - снижает производительность. Возможно, MongoDB удобна для каких-то видов работ, например, для инициации построения полнотекстового индекса. Но собственно в процессе полнотекстового поиска - она лишнее звено.
    Ответ написан
    Комментировать
  • Почему не работает скрытие диалога?

    RAX7
    @RAX7
    Опечатка onlick -> onclick
    ... ну или попробуй лизнуть кнопку
    Ответ написан
    2 комментария