• В чем суть роутера на php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Роутер отвечает за доставку данных к контроллеру/сервису.
    Если нет пути - роутер обычно выдаёт 404 ошибку.
    URI роутером делится на: протокол, домен, сервис и переменные сервиса
    например:
    domain.com/catalog/145 - сервис catalog отображает ветку с ID 145
    роутер - перенаправляет лишь запрос по части URI: /catalog
    сервис catalog - сам берёт нужные ему переменные из запроса.

    Еще примеры:
    domain.com/catalog/145/add - сервис catalog отображает диалог добавления новой категории в существующую категорию с ID 145.
    domain.com/catalog/145/sort/price/09/col/1/2/title - сервис catalog отображает категорию с ID 145 с сортировкой по цене от наименьшей к большей и выводом колонок с ID:1, ID:2, и по названию столбца: title.

    Также, router может быть древовидным и рекурсивным.
    Пример: domain.com/catalog/145/add/prod/24/56/37
    Описание: Добавить в каталог с ID:145 товары с ID:24,56,37
    Вначале, определяется, что категория с ID:145 существует и необходимо добавление, затем снова вызывается роутер с линком: /prod/24/56/37 и уже сервис prod проверяет существование продуктов и добавляет к каждому ID категорию 145 и так же возвращает результат в сервис catalog.
    Шаблон страницы вывода - будет выбран согласно операции: add.

    Таким образом, URI превращается в понятные предложения для общения пользователя/JS (front-end) с сервером через URI-запросы. Router - это как-бы механизм, "понимающий" то, что вы просите от веб-сайта через URI.
    Суммарно: это примитивный язык общения в виде структурированных лексических "предложений" между сайтом и пользователем/JS посредством URI-запросов.
    Ответ написан
    Комментировать
  • В чем суть роутера на php?

    onqu
    @onqu
    weasy
    1. Здесь пугают всякими контроллерами, ларавелями. Давайте жить проще. Для начала дадим определение модному слову роутер. Это маршрутизатор. Что делает маршрутизатор? Правильно. Обрабатывает маршруты, являясь связующим звеном. Маршрутом для web сайта принято считать метод запроса [GET, POST, PUT и другие] и компоненты URI.

    например: https://ru.wikipedia.org/wiki/URI?foo=bar#title
    [схема: https] :// [источник: ru.wikipedia.org] [путь: /wiki/URI] [запрос: ?foo=bar] [фрагмент: #title]


    Но для определения маршрута может браться любая другая информация передаваемая серверу, определение выше это лишь наиболее употребляемые параметры.

    Сама работа, как правило проста: от клиента приходит запрос, маршрутизатор перебирает все заданные ему пути до первого совпадения. При совпадении вызывается определенная вами функция, которая возвращает ответ клиенту.

    2. Он необходим, если в приложении одна точка входа, когда любой запрос приходит на один файл.

    3. Простой пример
    // файл index.php
    
    // Маршруты
    // [маршрут => функция которая будет вызвана]
    $routes = [
        // срабатывает при вызове корня или /index.php
        '/' => 'hello',
        // срабатывает при вызове /about или /index.php/about
        '/about' => 'about',
        // динамические страницы
        '/page' => 'page'
    ];
    
    // возвращает путь запроса
    // вырезает index.php из пути
    function getRequestPath() {
        $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    
        return '/' . ltrim(str_replace('index.php', '', $path), '/');
    }
    
    // наш роутер, в который передаются маршруты и запрашиваемый путь
    // возвращает функцию если маршшрут совпал с путем
    // иначе возвращает функцию notFound
    function getMethod(array $routes, $path) {
        // перебор всех маршрутов
        foreach ($routes as $route => $method) {
            // если маршрут сопадает с путем, возвращаем функцию
            if ($path === $route) {
                return $method;
            }
        }
    
        return 'notFound';
    }
    
    // функция для корня
    function hello() {
        return 'Hello, world!';
    }
    
    // функция для страницы "/about"
    function about() {
        return 'About us.';
    }
    
    // чуть более сложный пример
    // функция отобразит страницу только если
    // в запросе приходит id и этот id равен
    // 33 или 54
    // [/page?id=33]
    function page() {
    
        $pages = [
            33 => 'Сага о хомячках',
            54 => 'Мыши в тумане'
        ];
    
        if (isset($_GET['id']) && isset($pages[$_GET['id']])) {
            return $pages[$_GET['id']];
        }
    
        return notFound();
    }
    
    // метод, который отдает заголовок и содержание для маршрутов,
    // которые не существуют
    function notFound() {
        header("HTTP/1.0 404 Not Found");
    
        return 'Нет такой страницы';
    }
    
    
    // Роутер
    // получаем путь запроса
    $path = getRequestPath();
    // получаем функцию обработчик
    $method = getMethod($routes, $path);
    // отдаем данные клиенту
    echo $method();


    На практике используют более сложные маршрутизаторы, у которых гораздо большие возможности.

    4. Обойтись без него можно. Если каждая страница в вашем приложении будет являться отдельным файлом, который отвечает за отдачу информации.
    index.php
    about.php
    contact.php
    ...


    Это олдскульная структура, в новых проектах почти не применяется.
    Ответ написан
    13 комментариев
  • Учет рабочего времени. Правильный ли подход?

    jacksparrow
    @jacksparrow
    Практика показывает, что если данный подход вас устраивает все хорошо, если нет , то стоит искать новую фирму. Поменять что то можно только, если это вы у руля. В другом случае, сведут к тому, что вы плохой программист.
    Ответ написан
    Комментировать
  • Как лучше всего верстать меню сайта в 2016м году с семантической точки зрения?

    Kublyakov
    @Kublyakov
    Я пользуюсь примерно таким алгоритмом в подобных вопросах:
    1. Смотрю в спецификации.
    2. Если в спецификации не нахожу ответа, то смотрю как этот момент реализован в популярных фреймворках - bootstrap, foundation.
    Для меня авторы этих фрейморков являются авторитетами, чьему мнению я доверяю.
    Ответ написан
    Комментировать
  • Почему angularjs уделяют так много внимания?

    @jacob1237
    Потому что его пиарит Google.
    Внутри ничего сверхъестественного нет, обычный two-way data binding и свой собственный шаблонизатор, который является основой фреймворка и фактически заставляет вас писать логику приложения в шаблоне.
    Ответ написан
    Комментировать
  • Почему angularjs уделяют так много внимания?

    @bromzh
    Drugs-driven development
    На момент его выхода он обладал рядом уникальных вещей и был (если я не ошибаюсь) почти самым первым полноценным фреймворком для создания сложных фронтенд-приложений. Это не просто набор библиотек, а логически связанная система, которая может решать свои задачи очень хорошо.
    Некоторые идеи были очень удачны (внедрение зависимостей, система модулей и их асинхронная загрузка, отказ от своего синтаксиса шаблонов в пользу обычного HTML со своими тегами и атрибутами, двунаправленная связь данных) некоторые оказались не такими хорошими (двунаправленная связь данных, магия $scope в контроллерах, отсутствие документации и др.). Но фреймворк развивается и с каждой версией становится всё удобнее.
    Но JS (вернее, ECMAScript) тоже развивается, и некоторые вещи из первого ангуляра стали дублироваться в es6. Поэтому теперь авторы взяли и сделали заново вторую версию, в которой учли все ошибки.
    Но даже в сейчас первая версия очень популярна, хотя бы по причине уже сложившейся огромной инфраструктуры.
    Ещё одной из причин популярности является тот факт, что реальных аналогов у него очень мало, практически нет. У других фреймворков/библиотек есть свои минусы, причём, на мой взгляд, они перекрывают их плюсы.
    Ответ написан
    3 комментария
  • Какой смысл использовать Adobe InDesign для макетов сайтов?

    goandkill
    @goandkill
    live slow — die old
    А зачем вообще в макете сайта растровая графика?
    Фотошоп давно отстал от нужд индустрии. В эпоху респонсив дизайна, иллюстратор и то смотрится более гибким инструментом для работы с вэбом.
    Люди после 15 лет фотошопа прощаются с ним и пересаживаются на другие продукты других компаний.
    Каждый работает тем инструментом, которым ему удобно, но делать сайт в индизе - это все равно изврат.
    Ответ написан
    7 комментариев
  • Какой смысл использовать Adobe InDesign для макетов сайтов?

    @di23
    Кому как удобнее.
    И почему это растровая графика "полноценная", а векторная нет?
    Ответ написан
    Комментировать
  • Какой смысл использовать Adobe InDesign для макетов сайтов?

    Вы Illustrator с InDesign не путаете?

    В обоих программах можно спокойно линковать или садить на страницу растр. Так что ограничений никаких, кроме кривых рук и не знание среды редактора.

    И что вы имеете ввиду под полноценной графикой? То что вы PS залили градиент на слой и у Вас все отобразилось сразу в макете? Что тогда мешает работать с растровыми файлами в PS, но при этом линковать их в Illustrator/InDesign/CorelDraw?

    Короче, на вкус и цвет, как говорится. Кому что удобнее.

    З.Ы. Хотя в последние годы PS обзавелся достаточно богатым функционалом и доп. инструментами для работы с макетами сайтов. И при знании инструментария - работать лучше в нем.
    Ответ написан
    2 комментария
  • Какой смысл использовать Adobe InDesign для макетов сайтов?

    @FoxInSox
    Создавать макеты в растровом редакторе - средневековье.
    Ответ написан
    2 комментария
  • Что мой мобильный оператор знает обо мне?

    @nirvimel
    Когда я звоню кому-то, в логах заносится местоположение (моё и принимающего звонок)?

    Да. Но для вызывающей стороны местоположение адресата известно с точностью только до сети. Но для самого адресата входящий вызов также логгируется вместе с его местоположением в этот момент, после чего эти логи можно сопоставить друг с другом.

    Операторы обязаны все данные также отправлять на СОРМ? Интересно что это за данные?

    В дополнение к метаданным, которые собираются со всех коммуникаций наземных абонентов, для мобильных абонентов логгируются также:
    1) Внутренний ID абонента у оператора (привязан к договору со всеми персональными данными);
    2) Номер телефона;
    3) IMSI симки;
    4) IMEI аппарата.
    5) CI - идентификатор соты, в которой находится абонент.

    Регистрируется моё местоположение при "лежании в кармане"?

    Да. Регистрируются местоположение в моменты: вход/выход из сети, перемещение из одной соты в другую и по ручному запросу в любой момент. Самим операторам ничего не мешает отслеживать местоположение непрерывно с записью всего трека, это остается на усмотрение оператора, практика может варьироваться в зависимости от региона.

    Хранятся ли записи разговоров у оператора?

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

    Хранятся ли СМС у оператора?

    Существует требование, в соответствии с которым, SMS (как и метаданные о разговорах) должны храниться минимум три года. Но, поскольку хранение SMS технически не вызывает проблем, а юридически ограничен только минимальный срок хранения, то в реальности SMS хранятся практически вечно.

    Что может вызвать подозрение на рядового клиента? Если я звоню зарубеж? Или быть может пишу и говорю много "Обама, Путин, ..."?

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

    Можно ли как-то шифровать звонки/смс? Насколько я понял, если такое возможно, то только при наличии одинакового софта на обоих устройствах?

    VoIP + VPN.
    Ответ написан
    1 комментарий
  • Что мой мобильный оператор знает обо мне?

    oldbro
    @oldbro
    Когда я звоню кому-то, в логах заносится местоположение (моё и принимающего звонок)?
    Регистрируется моё местоположение при "лежании в кармане"?

    Регистрируется базовая станция, к которой привязаны. Вся история мест хранится.

    Хранятся ли СМС текст и записи разговоров у оператора?

    СМС точно хранятся, срок не знаю. Звонки, (предполагаю!), тоже, но возможно, глубина архива меньше, чем смс.

    Можно ли как-то шифровать звонки/смс? Насколько я понял, если такое возможно, то только при наличии одинакового софта на обоих устройствах?

    Поверх транспорта GSM шифровать нельзя. Только через IP. Необязательно одинаковый софт, достаточно использования одинаковых протоколов шифрования.
    Ответ написан
    Комментировать
  • Можно ли на сайте сделать отправку сообщений в whatsapp?

    Возможно
    Этим занимаются сервисы по рассылке СМС.
    Например:
    qtelecom.ru
    messageplus.ru
    appsend.ru
    и т.п.

    Сам пользовался только первым.
    Ответ написан
    Комментировать
  • Как продавать свою программу?

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

    Mystray
    @Mystray
    NOC
    По поводу торрентов: чаще всего этим занимаются специализированные копирастические конторы вроде Irdeto и IP-Echelon, которые сами, прикидываясь пирами известных раздач, ищут сидов. А поскольку IP-адрес им известен, то они уже отсылают abuse провайдеру с известной им инфой вроде:
    Notice ID: 310-123456789
    Asset: Fallout 4
    Protocol: BitTorrent
    IP Address: w.x.y.z
    File Name: fallout 4 2015 pc steamrip by noodle
    File Size: 27062100367
    Timestamp: 02 Jan 2016 18:48:33 GMT
    Last Seen Date: 02 Jan 2016 18:48:33 GMT
    Username (if available):
    Port ID: 14835
    Ответ написан
    3 комментария
  • Что мой провайдер знает обо мне?

    @nirvimel
    Когда я захожу на определенный сайт, провайдер видит URL?

    Да.

    А если я захожу на https?

    Известен IP сервера и имя домена. Больше ничего.

    Откуда провайдер узнает, что я скачиваю определенный фильм/программу через torrent?

    Торрент-клиент общается с трекером по HTTP. Все видно насквозь: конкретные торренты + вся статистика (когда начато скачивание, когда закончено, когда пошла раздача, сколько роздано). Возможно подключение к трекеру и по HTTPS, но rutracker.org такой возможности не дает (мне тоже интересно почему).

    Все пакеты которые я получаю и раздаю значит провайдер скачивает себе, чтобы узнать что это за фильм/программа?

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

    Или он отслеживает факт скачивания .torrent файла, а затем делает вывод по идущим пакетам, что это скачивается?

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

    Когда я пользуюсь VPN, что видит провайдер?

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

    Что я зашел на определенный IP и с него идут зашифрованные потоки?

    Дальнейшее направление трафика от VPN-сервера отследить невозможно (по крайней мере, на оборудовании провайдера в автоматическом режиме). Но при целенаправленной слежке за абонентом в принципе возможно по временным меткам сопоставить трафик абонента с трафиком любого сервера.

    OpenVPN будет работать через VPN IP и в браузере и при обновлении Windows, драйверов, ...?

    В зависимости от настройки. Но в общем случае, да, так.

    Читал, что в Windows есть такая особенность, что если провайдер как-то урезает пакет, то VPN отключается и сайту показывается мой реальный IP?

    Это не связанно с провайдером. Это особенность Windows. Когда VPN отваливается, весь трафик вылетает наружу в открытом виде. Опять же зависит от настроек. Но это еще одна цена "удобства" при использовании Windows.

    При этом провайдер видит на каком я сайте, что скачиваю?

    VPN отвалился - хацкер спалился.

    Таких фишек много?

    Смотря о чем речь. В сфере сетевой безопасности и анонимности различных нюансов вообще много.

    Как от них защитится?

    Учить мат.часть. Разбираться в сетевых протоколах и в устройстве ОС.

    Если пользуюсь каким-то расширением типа ZenMate, dotvpn, провайдер аналогично как и с VPN видит что что-то отправляется и приходит на определенный VPN IP?

    Расширения очень разные. Они могут базироваться на совершенно разных технологиях. Ни один специалист вам не скажет за все расширения. Не исключено, что многие из них, по сути - honeypot, то есть созданы с целью слежения за любителями анонимности, привлекают своим удобством и дают ложное чувство безопасности.

    При использовании Tor, кто-то пользуется моим IP, пока я пользуюсь чужим?

    Нет. Если у вас не сконфигурирован Exit Node.

    Что при этом видит провайдер, что я получаю потоки данных с определенных IP и каждый раз разный IP?

    У них есть система точного обнаружения использования Tor. Это факт остается в логах с теми же последствиями, что и для VPN.

    Провайдер видит URL?

    Через Tor и VPN - нет.

    Каким образом можно полностью управлять сетью на ПК, видеть что, куда и когда отправляется или приходит на ПК (Windows, Linux)?

    Видеть все: https://www.google.com/search?q=Wireshark
    Блокировать все лишнее: https://www.google.com/search?q=Comodo+Firewall
    Ответ написан
    22 комментария
  • Что почитать по машинному обучению для самых маленьких?

    @polyhedron
    Data Analyst | Data Scientist
    Если владеете английским, то хорошее объяснение принципов работы нейронных сетей, а именно обратного распространения ошибки, для людей со слабой математической подготовкой можно посмотреть здесь.
    В целом, хорошая книга по машинному обучению, в которой авторы стараются избегать математики, насколько это возможно, при этом сохраняя великолепное качество материала находится тут.
    Ответ написан
    Комментировать
  • ИТМО,курс "Разработчик Web-сайтов (PHP-технологии)" и интенсивы html academy: стоит ли идти?

    @matios
    Technical Team Lead
    Я закончил радио фак. Хоть образование и техническое, но навыков программирования небыло. В итоге я занялся самообразованием. Штудировал HTMLBOOK, открывал рандомные сайты и пытался не заглядывая в их код сверстать такие же. Все что говорят на курсах - можно освоить самому. ИМХО.
    Диплом уже никому не нужен. Будет качественное портфолио, будут заказы. Заказчику нужен хороший результат, а не всякие корочки.
    Ответ написан
    Комментировать
  • ИТМО,курс "Разработчик Web-сайтов (PHP-технологии)" и интенсивы html academy: стоит ли идти?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Если эти курсы стоят больших денег, то скорее всего они тебе не нужны. У меня есть мнение по поводу всех этих интенсивов, но боюсь оно перельется в некоторый дискусс, который приведет к появлению модераторов в треде.
    Ну а по существу:
    Верстальщику не нужен PHP
    С ним можно ознакомиться потом, когда изучишь html, css и javascript
    Вот три кита, на которых тебе надо смотреть, ибо они держат глобус вэб-разработки (верстания в просторечии)
    Ответ написан
    2 комментария
  • ИТМО,курс "Разработчик Web-сайтов (PHP-технологии)" и интенсивы html academy: стоит ли идти?

    za4me
    @za4me
    Человек
    Зачем вам какие-то платные курсы если вся информация есть в открытом доступе? По верстке пока не видел лучше уроков в рунете.

    upd: На диплом ваш никто смотреть не будет, будут смотреть на портфолио.
    Ответ написан
    5 комментариев