• Как обновлять данные через webSocket?

    @Vitsliputsli
    tommy-vercetti, для WebSocket много решений, одно из неплохих Ratchet, асинхронность через ReactPHP. Он не плох, но я не говорю что PHP лучшее решение. В PHP IO блокирующий, хотя по-факту это не имеет большого значения при нормальной работе, когда есть ws- сервер и есть воркеры обслуживающие задачи, а при таком подходе отдельный сервис можно на чем угодно написать, и по-моему Go отличный вариант (ведь все что нужно это держать ws-сервер и обмениваться сообщениями с брокером, и чуть логики на аутентификацию, в Go это не сложно сделать). Можно еще заморочиться с потоками, но это будет сложнее и проблематичнее. У PHP есть ограничение на кол-во подключений в сокетах, но когда у тебя больше 1000 подключений, уже стоит думать о масштабировании.
    Т.е. неидеально, но вполне нормально.
  • Не корректная работа функции сравнения строк?

    @Vitsliputsli
    Artem Kirsov, empty реализует простой код: !isset($var) || $var == false. Т.е. во второй части используется динамическое преобразование типов, либо нужно хорошо знать все нюансы динамического преобразования в PHP, либо пользоваться более очевидными конструкциями.
    Используйте явное объявление типов, приводите типы к нужным вам вручную, иначе вам придется просчитывать все возможные варианты для всех типов, а если сюда добавляется еще и динамическое преобразование, то шансы совершить ошибку очень большие.
    К примеру, если сделать так:
    function checkFailureMasterSumm(int $masterSumm, int $controlSumm): bool
    {
        return ($masterSumm !== $controlSumm);
    }

    то очевидно, что приходит на вход функции, и что будет на выходе. "master_failure_summ" пусть напишет то, что занимается выводом, а эта функция просто сравнивает суммы master и control. Если под Summ понимается не вычисляемое значение или требуется значения больше чем int - то принимайте на вход строки.
  • В mysql для быстрого поиска по дате лучше использовать timestamp как int или как date (datetime)?

    @Vitsliputsli
    FanatPHP, индекс может быть огромным, собственно этот случай и интересен, когда оптимизируем выборки по большой таблице. Держать его весь в памяти постоянно тяжко, разве нет? Но надо это поизучать.
  • В mysql для быстрого поиска по дате лучше использовать timestamp как int или как date (datetime)?

    @Vitsliputsli
    Как обычно на тостере, "чушь" и аргументы не обязательны.
    Поправьте меня, если я не прав, но поиск по индексу будет выглядеть примерно так: идем по бинарному дереву, читаем с диска в память, читаем процессором из памяти, выполняем сравнение. Чтение с диска выполняется не по байтам, поэтому прочитать 5 байт или 512 разницы нет. Чтение процессором будет работать примерно также, страница памяти и смещение, тут больше вопрос к выравниванию, но о нем речи не идет, поэтому разницы так же нет, если конечно сравниваемое не превышает размеров регистра. Ну и процессору без разницы сравнивать 4 байта или 5. Т.е. фактически разницы не будет.
    Но это поиск, при сортировке казалось бы должно быть иначе, т.к. в совокупности индекс с datetime будет занимать больше места на диске. Но даже в этом случае, разница несущественна, т.к. индекс datetime будет больше индекса по timestamp примерно на 5%, что в работе не даст существенного выигрыша.
  • Как обновлять данные через webSocket?

    @Vitsliputsli
    Slava Rozhnev,
    NodeJS создает процесс который поддерживает постояннное соединение по WebSocket в отличие от РНР который расчитан на то чтобы получить запрос ветнуть ответ и умереть.
    Конечно в РНР уже напридумывали всяких костылей для сокетов, но это не является нативным поведением в отличии от ноды

    Вот так задаешь вопрос, думаешь что-то интересное узнать, ну или как минимум услышать что-то старое... получаешь какую-то дичь. Уж простите, но вы чушь пишите.
    Демоны на php прекрасно работают и широко применяются, в том числе в highload - это факт. Работа с WebSocket в принципе подразумевает постоянное поддержание соединения, это не http, поэтому не понятно о чем вы пишите. В PHP есть решения для WebSocket, которые нормально работают. Что такое "нативное поведение для сокетов" вообще неизвестно и тем более что за костыли в PHP для этого, можете рассказать что конкретно имеете ввиду?
  • Как сделать статическим готовый php скрипт?

    @Vitsliputsli
    Владимир Брумер, под словом крон (cron) всегда понимают unix-демон, выполняющий задания по времени, а не идиотизм wp-cron. Идиотизм потому, что нельзя использовать устоявшееся слово cron (время) для системы, которая работает не по времени, а по событиям. Не представляю зачем wp так сделал.
  • Как обновлять данные через webSocket?

    @Vitsliputsli
    Slava Rozhnev, чем NodeJS идеальнее PHP в этом случае?
  • Кушает ли ссылка на переменную память?

    @Vitsliputsli
    Больше похоже на корявый перевод:
    в оригинале:
    In PHP, an object variable doesn't contain the object itself as value.

    т.е. "В PHP переменная с объектом не содержит сам объект как значение".
  • Как взять и удалить первую строку из файла?

    @Vitsliputsli
    Возможно вы файлом решаете задачу, которую нужно решать чем-то иным.
  • Возможно ли изучение Typescript как самостоятельного языка программирования?

    @Vitsliputsli
    RaulDuke, тот диалог не совсем про ваш вопрос, я говорил больше о фундаментальном понимании языка. Да, вы можете изучать ts как отдельный язык, но это не значит, что js выкинули и забыли, под капотом js и разумеется функции js никуда не исчезли и вы их можете изучать по js-учебнику, если вы про это. Но функции и операторы - это мелочи, их и изучать не нужно, просто находить нужные по мере необходимости (тут по принципу все сделано до нас, либо во встроенных функциях, либо во внешних, либо в готовом ПО). А вот типы, ООП, все самое интересное, это все свое в ts. Но это лишь мой субъективный взгляд, возможно у кого-то найдутся аргументы против.
  • Возможно ли изучение Typescript как самостоятельного языка программирования?

    @Vitsliputsli
    Иван Шумов,
    процессор вообще ничего кроме байт-кода обрабатывать не умеет, но сам по себе байт-код ничего осмысленно оне производит) Но в отличии от TS, другие языки компилируются или интерпретируются в него. TS же преобразуется в JS.

    Прочитайте что такое байт-код, вы похоже не в курсе что это. Поэтому весь этот комментарий бессмысленен.

    Ну и так еще, для размышлений, проблема в том, что вы говорите языки программирования, а подразумеваете интерпретаторы и компиляторы.
    Представьте такую картину, весь мир отказывается от запуска на беке PHP и переходит на nodejs. PHP перестает поддерживаться и его интерпретаторы полностью исчезают, везде nodejs. Для поддержки старого софта на PHP делают компиляторы php в js, продолжают поддерживать код на php, но компилят его в js.
    По вашей логике в этот момент php перестает быть языком. Но не кажется ли вам это странным вчера еще был языком, а сегодня нет?
  • Возможно ли изучение Typescript как самостоятельного языка программирования?

    @Vitsliputsli
    Иван Шумов,

    Напомню что такое язык программирования, на всякий случай:
    A programming language is a formal language comprising a set of instructions that produce various kinds of output.

    Язы́к программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением

    И поскольку инструкции в TS есть 2х типов:
    - наследованные от JS (исполняемые в рантайме JS)
    - собственные (не исполняемые в рантайме, а компилируемые в JS и уже новые инструкции исполняются в рантайме JS)

    То TS не является языком программирования.

    Ну да, действительно. Java и PHP компилятся в байт-код и в рантайме исполняется именно он, следовательно не являются языками программирования. Ах, да, Си, C++ компилятся в машинный код и в рантайме исполняется именно он, следовательно по такой логике тоже не являются языками программирования.
    Т.е. приведенное определение говорит совсем о другом, а не то что пытаетесь в него впихнуть. Оно говорит о записи действий, которые будут выполнены исполнителем, и ни слова не говорит в каком виде исполнитель принимает эти команды и как они будут преобразовываться по пути к нему. А на первом месте стоит это: "набор лексических, синтаксических и семантических правил", о чем я и писал выше.
  • Возможно ли изучение Typescript как самостоятельного языка программирования?

    @Vitsliputsli
    Иван Шумов, TS во многом совпадает с JS, поэтому изучая одно изучаешь другое.

    отдельным языков TS не является по тому что не имеет собственной языковой структуры, своего синтаксиса

    Это как "самостоятельная реализация" из прошлых комментов, звучит красиво, но что это конкретно значит в вашем понимании?

    Ок, давайте назовем это препроцессор. Во многих языках трансляция и компиляция называется препроцессинг. Многие языки имеют множество стадий, прежде чем будет получен машинный код, и это все дико интересно, но мы про языки программирования, а не про эти этапы говорим. А в языках важно как они реализуют методологии и парадигмы (ООП, функциональное, процедурное, обобщенное программирование), как работают с типами, что проверяется на этапе компиляции, а что в рантайме, и прочие вещи, которые характеризуют сам язык. Именно это формирует ядро языка и позволяет ему быть тем или иным языком, а синтаксис, который вы так упорно упоминаете, всего лишь "обертка", и она зачастую очень схожа в языках определенных групп. Именно по этой причине, TypeScript - это язык программирования, а то что он компилируется в js - это лишь следствие монополии js.
    С точки зрения системного администратора, компилится в js - значит js, я это могу понять, но с точки зрения программиста все выглядит не так, и этот нюанс компиляция в js, не выглядит для него столь важным.

    Забавно видеть, как вы кидаетесь к новым аргументам, даже не пытаясь отстоять заявленные ранее. У вас что, всегда так получалось убеждать других? Говорить много красивых слов и вам поверят?
  • Возможно ли изучение Typescript как самостоятельного языка программирования?

    @Vitsliputsli
    Иван Шумов, и? Там же, самая первая фраза которую вы проигнорировали в "What is TypeScript?":
    TypeScript is an open-source language

    Так что вы не "один читаете первоисточники", а подстраиваете их под себя.
    И да, все что там указано верно, но не отменяет что это язык программирования. В языках программирования действительно существуют различные "обертки", например фреймворки, специализирующие язык на определенных вещах. Но, здесь, идет смена самого языкового подхода, того, что зашивается в ядро языка. И эти изменения не синтаксический сахар, как вам показалось, а принципиально другой подход.
    Я правильно понимаю, что вы признаете что ваши аргументы из первого комментария ошибочны, раз бросились искать новые?
  • Возможно ли изучение Typescript как самостоятельного языка программирования?

    @Vitsliputsli
    Иван Шумов,
    это не наследие, а язык. TS это только обертка и самостоятельной реализации не имеет. Просто добавляет несколько синтаксических конструкций. Встает вопрос - можно ли выучить десяток синтаксических конструкций, которые ДОБАВЛЯЮТ возможностей ИСХОДНОМУ языку, НЕ ЗАМЕНЯЯ его?)

    TS - не обертка, а самостоятельный язык, со статическими явными типами, нормальными классами, контролем за этими типами компилятором, а не в рантайме, и еще много с чем, а не с десятком синтаксических сахаров. Что подразумевается под "самостоятельной реализаций" вообще неизвестно, но могу заметить, что ни один язык программирования не исполняется процессором (хотя это вообще не важно).
    Поэтому на ваш вопрос можно ответить так: "можно, но не нужно".
  • Замена long polling для отслеживания изменений в бд?

    @Vitsliputsli
    Kovalsky, throttle/debounce это все хорошо, пока это на аппликейшенах, которые можно легко масштабировать, СУБД вещь капризная, и чем больше СУБД занимается не базой тем опасней. СУБД Oracle уже давно занимается чем угодно, только не БД, и почту отправляет, и сайтики формирует, но MySQL всегда специализировался на быстрой работе с БД, а не универсальности. Поэтому не уверен, что такое пройдет безболезненно, если на БД есть хорошая нагрузка.
  • В mysql для быстрого поиска по дате лучше использовать timestamp как int или как date (datetime)?

    @Vitsliputsli
    Лентюй, почему? Понятно, что индекс будет на 1 байт больше, т.к. datetime как минимум 5, а timestamp - 4, но почему при поиске инт должен быть быстрее?
  • Как понять на что расходуется память в linux?

    @Vitsliputsli
    Роман Мирр, сожрал, сожрал, не затребовал у ОС, а ОС ему уже выделила эту память. Автор писал про динамику, что память именно "течет".
  • Замена long polling для отслеживания изменений в бд?

    @Vitsliputsli
    Kovalsky, google говорит что есть подобные решения, вроде бы платные, но по-моему это достаточно экзотичное решение, логичнее такое не делать через БД. Конечно, почему бы и нет, но сразу возникают большие опасения по производительности при запуске внешних программ. Я просто не знаю, про успешное использование.