Задать вопрос
  • Как решить проблему с $watch в Angular.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    $watch всегда отрабатывает в холостую для инициализаии. Так же в вашем случае не отрабатыват dirty-checking, а потому оно не будет детектить изменения в массиве. Вам нужно либо выставить третий аргумент функции $watch в true (включает dirty-checking с копированием объектов и их сравнением) или же использовать $watchCollection.

    А почему бы вместо этих извращений с ватчерами не прикрепить к select ng-model? В этом случае к слову проще будет применить изолированный скоуп, что бы избежать проблем в будущем.
    Ответ написан
    4 комментария
  • Какие ограничения на data:URI?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    у старых (11 версия) опер вроде как были ограничения ~65 килобайт, а так особо ограничений и нету... Сколько адресовать памяти по идее можно.
    Ответ написан
    Комментировать
  • Как к Yii2 прикрутить phpdaemon?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    их и не нужно связывать. web-socket сервер должен быть как stand-alone приложение. Вам нужно организовать связь между ним и приложением на yii (через rest, сокеты или RabbitMQ/ZeroMQ).

    А вообще в вашем случае, как мне кажется, проще использовать сервисы типа pusher.
    Ответ написан
  • Можно ли увеличить трафик путем ссылок на несуществующие файлы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если у вас там будет 404-ая ошибка, то по идее вы только хуже сделаете.
    Ответ написан
  • Чем эффективнее склеивать и минифицировать js css?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я организовал работу как-то так: есть директория assets, в которой исходники js-ок, less файлики, картинки для оформления и т.д. Собирает это дело сейчас gulp, раньше grunt и ложит в webroot куда ему скажут. При чем для разработки настроены ватчеры (можно сделать и в ide, но не всегда разработчики пользуются оными, некоторые используют vim, да и банально удобнее) и лайврелоад, так что при разработке не нужно перезагружать страницу, что немного уменьшает временные издержки. Ну и так же для сборки настроена оптимизация изображений.

    Собственно когда делается пуш в мастер на сервере стартует сборка проекта, (сборка асетов, вармап кэша, установка зависимостей) и затем все это уже перетекает на сервак, где отрабатывают миграции и релоадится сервер (nginx reload с переключением симлинков)
    Ответ написан
    1 комментарий
  • Как решить проблему с выводом json_encode?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    BOM заголовок? Закрываете тег <?php?
    Ответ написан
  • Yii. Можно ли в beforeSave посмотреть, какие поля модели будут обновляться?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1. в beforeSave доставать объект из базы и делать diff проперти _attributes.
    2. перегрузить волшебный set метод, и запоминать что менялось, записывая куда-то поле, измененное и старое значение.
    Ответ написан
    Комментировать
  • Как не надо верстать сайты?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Модульность и разбиение на компоненты, отказ или минимизация каскадирования стилей. Если у вас в селекторах больше 4-х элементов то явно что-то пошло не так. Почитайте про БЭМ. Единственное что я бы не рекомендовал использовать этот подход в том виде в котором это подается, но идея вполне себе хорошая.

    Что бы верстка не ползла при изменении клиентом контента нужно жесточайше его ограничивать в том что он может сделать (он же может разметку сломать). Для этого можно применить markdown.
    Ответ написан
  • Ускорители PHP. Какой выбрать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Зависит от версии php
    Если у вас используется PHP версии меньше 5,5 то APC. Это лучший опкэшер для PHP.
    в PHP 5.5 по дефолту идет свой кэшер опкодов, который по показателям обходит APC, нужно просто включить его в php.ini.

    Если вам нужно совсем уж быстро, то HHVM - альтернативная реализация php от фэйсбука, там JIT компиляция, море оптимизаций... И в отличии от приведенного @samoilenkoevgeniy KPHP, уже немало библиотек и фреймворков имеют в той или иной степени поддержку этого рантайма. Люди проводившие бенчмарки говорили о ускорении порядка 2-3 раз по сравнению с обычным PHP (хотя все зависит от конкретной задачи) и уменьшением потребления памяти в 10-15 раз.

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

    p.s. Apache уже можно смело исключить из стэка и заменить его на php-fpm. Для статики у вас всеравно остается nginx, а для php он будет просто проксировать все на php-fpm.
    Ответ написан
    1 комментарий
  • Где в программировании применяется математика (веб/мобильные приложения)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) зависит от того чем вы будете заниматься. Если верстка то как минимум встретите дроби и возможно когда-нибудь дорастете до простенькой тригонометрии (анимации, трансформации и т.д.). Так же тригонометрия может пригодиться при работе с canvas, webgl и т.д. Есть еще audio api с дискретными рядами фурье, свертками, фильтрами (справедливо и для canvas, как как обработка изображений на клиенте так же есть). Словом математику знать полезно, но обычно проблема решается по мере ее поступления. Если будете работать с этим часто то все придет со временем. Если же нет - то и учить смысла особо нету, главное умение разбираться.

    2) Это проблема системы образования. Отсутствия желания заинтересовать абитуриента/студента в том, что знания ему могут пригодиться. В итоге учатся все спустя рукава и бывает узнают о том что предмет был полезным и в перспективе интересным уже после окончания этого курса а то и вообще университета. Те же ряды, индегралы и т.д. применяются при обработке сигналов, а стало быть аудио, видео и просто изображений. Делать там фильтрики для инстаграмма на клиенте... все такое прочее. Это как пример.

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    выставьте опцию SO_REUSEADDR при создании сокета.
    Ответ написан
    Комментировать
  • Yii, как сделать запись компактнее?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    разве что так:
    foreach (['account_data_CUD', 'security_data_CUD', 'work_data_CUD' as $action) {
        $this->createAction($action)->run();
    }
    Ответ написан
  • Когда лучше НЕ использовать jQuery?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Зависит от задачи. Если у вас регламентируется поддержка старых версий браузеров то тут без jquery никак, ибо сильно упрощает жизнь. В последних же версиях браузера есть штуки нативные, которые даже приятнее в использовании нежели jquery аналоги. Скажем проперти classList у нод, или выборка элементов через querySelectorAll, которая не просто возвращает массив нод, а коллекцию, которая, если на странице был добавлен новый элемент подходящий под селектор, автоматически обновится. С минимальным оверхедом и т.д.

    По сути jquery стал не нужен так как он уже не слабо повлиял на само DOM API. Ну мол, очень много идей позаимстовалось и было улучшено. Правда в итоге скорее всего подключить jquery придется изза каких-то зависимостей, но не факт.
    Ответ написан
    Комментировать
  • Как передать данные в замыкание?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    если я правильно понимаю то что вы хотите сделать то так:
    var i = 1;
    reader.onload = (function(i){
             return function(e){
                    console.log(e,i);
                };
            })(i);


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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ответ написан
    Комментировать
  • Как установить и настроить grunt?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    grunt вам посоветовали использовать, так как помимо stylus потом вы захотите еще и картинки автоматически при сбокре минифицировать, или еще чего...

    grunt это всего лишь таск менеджер, его можно спокойно заменить на bash-скрипт. А еще к нему можно настроить watcher-ы которые будут все ребилдить после изменения и запускать livereload. Эта штука иногда экономит много нервов. Ну и преимущество использования в том что есть куча всего готового.

    А так... оффициального сайта вполне достаточно. Просто задавайте таск. настраиваете и выполняйте.
    Ответ написан
  • Что почитать о принципах построения ajax сайтов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Если у вас статьи должны открываться в новом окне, то у вас уже не single-page app, а значит вы сами должны решать как вам чего разруливать. В любом случае если вы правильно настроите на сервере кеширование статики, то что у вас должны грузиться js-ки при заходе на страницу вас вообще не должно волновать. Они уже будут у браузера и оверхэда не будет вовсе.

    Как такавых общепринятых правил как строить "норм сайты" с restfull бэкэндом нету (restfull соблюдаете и то хорошо), обычно для сайтов важна индексируемость поисковиками, так что советую почитать про ajax crawling у гугла (то же самое есть у yandex и bing). От этого уже можно будет плясать. Ну а так... возьмите какой популярный фреймворк типа angularjs или библиотеку типа backbone (если вам нужно только структуру и навигацию организовать, думаю будет проще), туториалов так же предостаточно.
    Ответ написан
    Комментировать
  • Как решить JQuery-загадку $.each, ajax, acync: false?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Дело в том что отрисовка, выполнение js, пересчет стилей - все выполняется в одном потоке. Вы поменяли что-то в dom, это дело добавилось в очередь, а потом вы заблокировали поток синхронными вызовами ajax. Это поведение разнится от браузера к браузеру и от версии оной. Скажем в последних хромах можно включить эксперементальную фичу, которая выполняет перерисовку страницы в отдельном потоке.

    Именно по этому работа с сетью и т.д. должна быть асинхронной. То есть если вам нужно что-то сделать, то обходя циклом ваш массив данными, вы отправляете запрос (асинхронно) и сохраняете в массив promise, который возвращает функция .ajax(). Если вам нужно что-то сделать когда все запросы завершатся - просто ставите jQuery.when где нужно и если все прошло удачно отрабатываете.
    Ответ написан
    6 комментариев
  • Как влияет BEM на SEO?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    стили не влияют на ранжирование. Влияет семантика разметки, microformats и т.д. Причем даже это сомнительно.
    Ответ написан
    Комментировать