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

    zTrue
    @zTrue
    Потому что в студиях ориентируются на краткосрочную перспективу, не особо задумываясь об удобстве поддержки проекта после сдачи (или даже задумываясь так, чтобы никто кроме этой самой студии не мог его поддерживать).
    Например, часто ли можно встретить спецификации внутреннего апи, тесты (хоть какого-то рода) и т.п.
    Как следствие, в большинстве случаев работа в студии подразумевает под собой генерацию говнокода, лишь бы быстрее.
    При работе над проектом долгое время (как бы это смешно не звучало в контексте стартапов) подход совершенно другой. И я не про перфекционизм, а про здравый смысл.
  • Как спроектировать обработку исключений?

    zTrue
    @zTrue
    В статью подробно не вникал, но, насколько я понял, смысл в том, чтобы конвертить ошибки в исключения.
    Исключения нужны, скорее, не для того, чтобы отследить и увидеть сообщение об ошибке, а для того, чтобы эту ошибку должным образом обработать. При этом конвертить ошибки к исключениям, на мой взгляд, вполне разумно. Упрощенный пример:

    <?php
    // index.php
    try {
      $app = new \Framework\App();
      $app->run();
    } catch (\Framework\AccessException) {
      $status = 403;
      $message = 'Forbidden';
    } catch (\Framework\ValidationException) {
      $status = 400;
      $message = 'Bad request';
    } catch (\Exception $e) {
      $status = 500;
      $message = 'Internal server error';
    }
  • Какие символы можно использовать для создания ЧПУ?

    zTrue
    @zTrue
    Это зависит от того, как будет реализован роутинг
  • Какие символы можно использовать для создания ЧПУ?

    zTrue
    @zTrue
    news/actual - путь до файла php // вроде, без него никак
    (165) - параметр id = 165 // если это страница новости, то без id тоже никак
    разве нет?
  • Какие символы можно использовать для создания ЧПУ?

    zTrue
    @zTrue
    Порядок тегов не важен, остальные параметры, кроме страницы, и так обязательные, насколько я понял. Т.е. разница только в том, что страницу 1 тоже нужно указывать, если есть теги
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    Да, все верно. Если еще вычесть data_offset, то все сходится.
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    я говорил не про psh, а про ip.identification
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    Я имел ввиду ip.identification (в схеме выше), вероятно, что-то напутал с терминологией
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    В этом и проблема, как узнать, что пришедшая часть имеет другую часть?
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    Вторая часть (которая пришла раньше)
    {
      "link_type":"LINKTYPE_ETHERNET",
      "link":{
        "dhost":"...",
        "shost":"...",
        "ethertype":2048,
        "ip":{
          "version":4,
          "header_length":5,
          "header_bytes":20,
          "diffserv":0,
          "total_length":58,
          "identification":13447,
          "flags":{"reserved":0,"df":1,"mf":0},
          "fragment_offset":0,
          "ttl":113,
          "protocol":6,
          "header_checksum":22392,
          "saddr":"...",
          "daddr":"...",
          "protocol_name":"TCP",
          "tcp":{
            "sport":8088,
            "dport":59906,
            "seqno":1455344501,
            "ackno":1469993398,
            "data_offset":66,
            "header_bytes":32,
            "reserved":0,
            "flags":{"cwr":0,"ece":0,"urg":0,"ack":1,"psh":1,"rst":0,"syn":0,"fin":0},
            "window_size":258,
            "checksum":36646,
            "urgent_pointer":0,
            "options":{"timestamp":340036816,"echo":667434095},
            "data_end":72,
            "data_bytes":6,
            "data":[...]
          }
        }
      },
      "pcap_header":{"tv_sec":1381693846,"tv_usec":835169,"caplen":72,"len":72,"link_type":"LINKTYPE_ETHERNET","time_ms":1381693846835.169}
    }
    



    Первая часть (которая пришла позже)
    {
      "link_type":"LINKTYPE_ETHERNET",
      "link":{
        "dhost":"...",
        "shost":"...",
        "ethertype":2048,
        "ip":{
          "version":4,
          "header_length":5,
          "header_bytes":20,
          "diffserv":0,
          "total_length":1492,
          "identification":13446,
          "flags":{"reserved":0,"df":1,"mf":0},
          "fragment_offset":0,
          "ttl":113,
          "protocol":6,
          "header_checksum":20959,
          "saddr":"...",
          "daddr":"...",
          "protocol_name":"TCP",
          "tcp":{
            "sport":8088,
            "dport":59906,
            "seqno":1455343061,
            "ackno":1469993398,
            "data_offset":66,
            "header_bytes":32,
            "reserved":0,
            "flags":{"cwr":0,"ece":0,"urg":0,"ack":1,"psh":0,"rst":0,"syn":0,"fin":0},
            "window_size":258,
            "checksum":59362,
            "urgent_pointer":0,
            "options":{"timestamp":340036816,"echo":667434095},
            "data_end":1506,
            "data_bytes":1440,
            "data":[...]
          }
        }
      },
      "pcap_header":{"tv_sec":1381693846,"tv_usec":835771,"caplen":1506,"len":1506,"link_type":"LINKTYPE_ETHERNET","time_ms":1381693846835.771}
    }
    

  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    Пакеты отличаются только тем, что у первого psh=0, а у второго psh=1, но поскольку второй приходит раньше, эта информация становится бесполезной
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    У всех пакетов (не зависимо от того, разбитое это сообщение или нет) fin = 0
    node-pcap использую для получения данных, отправляемых сервером flash-приложению в браузере (сторонняя программа), и использования потом этих данных для статистики.
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    Посмотрите, пожалуйста, уточнение выше.
  • Порядок пакетов (TCP)

    zTrue
    @zTrue Автор вопроса
    Я так и полагал, но проверял WireShark, пакеты тоже не в том порядке и выделены другим цветом. Идентификатор пакета, который приходит раньше на 1 больше, чем у того, который приходит позже.
    Использую node-pcap.
    Может быть, это прослушивание не tcp сокета?
  • Какие есть сайты для поиска работы по всем странам мира?

    zTrue
    @zTrue
    Ну к примеру, автора устроит 20-30 прогрессивных стран, тогда тяжеловато будет искать или мониторить по такому количеству сайтов (если даже для каждой страны по одному).