Задать вопрос
  • Стоит ли переходить работать с php на java?

    Я бы смотрел в сторону Angular, Play2, swagger, Jooq, Apache DirectMemory и не заморачивался с энтерпрайсом. Как показывает практика J2EE стэк не очень подходят для фриланса. Конечно есть исключения - можно глянуть Grails, Vaadin и ZK для RAD'а.
    У Grails ужасно низкий порог вхождения, я на него подсаживал рельсозависимых и джангистоманов; там уровень поддержки на несколько порядков лучше чем в большинстве решений из миров php/ruby/python.

    J2EE сейчас немного парализован, и с его использованием в продакшене связано не мало рисков. В первую очередь участились случаи взлома серьёзных учреждений которые используют JBoss и WebLogic. Сейчас как-то стало совсем непопулярно использовать сервлеты ...

    JSF / ADF сейчас отмирает.
    Spring очень простая и нужная штука если разобраться, правда есть свои проблемы и иногда лучше обойтись без него.

    По шаблонам проектирования, важно понимать: mvc, mvp (document-view), mvvm, cqrs-es, disruptor, proactor / reactor. Все остальное, "банальное" типа Factory, Builder, Facade можно подчерпнуть из книжек... в вэбе такое почти не используется, но для понимания остальных шаблонов нужно разобраться.

    В большинстве случаев мне приходится реализовывать CQRS-ES в Play2 через Angular + sse. Есть свои сложности с http кэшированием, и кэшированием модели... часто использую prerender.io для клиентов без JS'а и поисковых роботов. Вэбсокеты (Socket.io) работают медленнее (задержки выше, инициализация длительнее) чем sse, иногда приходится откатываться на флеш и long-polling, но это все по ходу дела приходится самому дописывать руками. Есть много классных решений типа restangular, правда большинство из них ещё довольно сыроваты - доверяю тому что сам пишу.
    Ответ написан
    3 комментария
  • Какие есть преимущества Gearman перед RabbitMQ?

    @tarasbogach

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

    Ответ написан
    Комментировать
  • Выбрать СУБД между MySQL, PostgreSQL, MariaDB и MSSQL?

    KEKSOV
    @KEKSOV
    Похоже, что Вы забыли рассмотреть еще вот этот вариант: Percona Server is an enhanced, drop-in MySQL replacement. Для очень быстрого выполнения запросов необходимо воспользоваться special NoSQL interface called HandlerSocket. Да, и даже multi-master репликация там тоже есть.

    Несколько смущает PDO и желание сделать нагруженный сайт. Боюсь, что от этой прослойки придется отказаться сразу.
    Ответ написан
    3 комментария
  • Выбрать СУБД между MySQL, PostgreSQL, MariaDB и MSSQL?

    EugeneOZ
    @EugeneOZ
    Шардится и реплицируется Postgre проще и надёжнее. Но даже с учётом PDO, есть разница местами в синтаксисе и возможностях между ней и MySQL.
    Главное — не вляпайтесь в MSSQL. С ним можно нормально работать только внутри стека MS-инструментов. Оно даже UTF-8 не поддерживает. Ну и MS кладёт болт на не-виндовые драйвера, выпускают их очень редко.
    Ответ написан
    7 комментариев
  • Как правильно запретить индексацию поисковиками частного контента?

    Phelix
    @Phelix
    SEO, Веб-анализ, Анализ данных
    В robots.txt

    User-agent: *
    Disallow: /корень_раздела

    Ну и для собственного успокоения еще и в head во всех персональных разделах:
    <meta name=“robots” content=“none”>
    none — заменяет noindex и nofollwo
    Ответ написан
    Комментировать
  • Как правильно запретить индексацию поисковиками частного контента?

    jj_killer
    @jj_killer
    robots.txt не всегда работает (почему, вопрос открытый), но тэг meta content="noindex,nofollow" name="robots" еще не подводил.
    Ответ написан
    Комментировать
  • Поддерживать количество запущенных копий PHP скрипта?

    KEKSOV
    @KEKSOV
    Я бы воспользовался pcntl функциями. Если кратко, то код выглядит следующим образом (просто для пояснения идеи)

    <?php
    
    runDaemon(10);
    
    function runDaemon( $aMaxWorkers )
    {
        $i = 0;
        for ( ; $i < $aMaxWorkers; $i++ )
        {
            forkWorker( $i );
        }
        
        while ( ( $pid = pcntl_wait( $status ) ) != -1 )
        { 
            echo "Exit $pid\n";
            forkWorker( $i++ );
        }
    }
    
    function forkWorker( $aNumber )
    {
        $pid = pcntl_fork(); 
    
        if ( $pid )
        {
            echo "Start #$aNumber, pid $pid\n";
            return;
        }
        
        // Делаем свою работу и выходим
        sleep(5);
        exit;
    }
    
    ?>
    


    Но у него есть один незначительный недостаток — он не работает pcntl_wait может не отловить одновременный выход двух работников и не запустит нужное число новых.

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

    while(count($this->currentJobs)){
        echo "Waiting for current jobs to finish... \n";
        sleep(1);
    }
    
    Ответ написан
    Комментировать
  • Сертификация ZCE — как лучше готовится?

    stnw
    @stnw
    Только сегодня сдал тест.
    За это время ничего не изменилось. study guide + Practice Test Book (second edition) + php.net вполне хватает.
    Мне очень помогли эти конспекты:
    f.cl.ly/items/3g0w352w3K0k3K3N2r1Q/ZCE_Certification_Short_Tutori.pdf
    readtheweb.info/wp-content/uploads/2008/06/paul_reinheimer-zce.pdf
    readtheweb.info/index.php?s=Zend+PHP+5+Certification+Exam&submit=Go
    blog.karolsojko.com/index.php/tag/zce/
    Дампы старых вопросов:
    zend-php.appspot.com/questions_list
    + почитайте эти статьи:
    dustinmoorman.com/2012/09/23/passing-the-php-5-3-certification-exam/
    www.smartango.com/it/blog/zce-php-53-zend-certificated-engineer-exam-more-extensive-report

    Этого вполне достаточно. Платить за дампы $99 как предлагают выше, не советую. Лучше сразу идите на экзамен.
    Ответ написан
    3 комментария
  • Как правильно работать на oDesk?

    Ubran_Hera
    @Ubran_Hera
    Начинал ~2 года назад (август/сентябрь) на oDesk (это была не первая моя попытка), выставил 14..15 баксов, без портфолио и истории. Первый заказ был получасовой, на 7 баксов, практически случайный (от новичка) — немного напортачил, но всё исправил, потратил времени в разы больше, но добился положительного отзыва.
    Общение сразу пошло через Skype и электронную почту, оплата — через PayPal. Это против правил, но так предложил заказчик.

    Затем оказалось, что работы у него непочатый край. До Нового Года переделывал маленькие сайтики (бизнес-проекты одного и того же человека). Взял меньшую плату, но повысил себе статистическую «среднюю ставку».

    Самое сложное было в графике и работе из дома — жена (девушка) не подходила ко мне когда я говорил по Skype/SIP, но в остальные моменты очень мешала и сбивала с толку. Ещё обижалась, что я ничего не делаю по дому и ложусь спать/встаю с разницей 3..4 часа по отношению к ней — одна комната, горящий монитор, гудящий вентилятор и т.д. Очень сложно было когда мы оба заболели (простуда).

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

    Шашлык и вино действительно хоть каждый день и стойкое желание переехать куда-нибудь в англоязычную Канаду (тем более, что часто звали). Ставка на почасовые заказы сейчас 20..35.
    Иногда чувствую себя зомби (3 часа сна два дня подряд, потом 12 часов и всё равно не выспался, 6 часов, опять 2 дня по 3 часа, потом 14..15 на выходных).

    Жизнь повернулась так, что сейчас вынужден буду выплачивать пару кредитов, включая ипотечный.
    Выбор очевиден — уволюсь рано или поздно с основной работы (уже была попытка, в целом удачная) и стану совожаворонком (рано вставать и поздно ложиться).

    Success story неполная — не даю ссылки на профиль (у меня их несколько, в т.ч. приходилось заказывать самому у себя, но это оказалось ненужной глупостью). Так что не просите — за треть проектов, особенно первых ужасно стыдно, при том, что посмотрев на некоторые из них клиенты просят «и мне так же сделай», причём никогда не угадаешь заранее что может понравиться.

    Единственное, что радует — UK, CA, NZ, US AU — WeekEnd для них — это святое. На душе легко и спокойно с 3 утра субботы до 15:00 понедельника.
    Но бывает, что заказчик шлёт мне в полседьмого утра письмо с вопросом «Как продвигается наш проект» в 6:30 утра по его часовому поясу.

    С точки зрения разработки хорошо, что разделение testing/development/working environment очень чёткое и всегда есть время откатиться — начинаю обычно в час ночи и заканчиваю полпятого утра по их TimeZone, на живом, боевом сервере никогда не экспериментирую.

    Ну и по поводу каналов в Интернет — у меня 2 FTTx и 3 «свистка» — иногда так медленно заливается на хостинг, что приходится вспоминать командную строку и перепробовать их все.

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

    Ну и естественно, я стал замечать за собой НЕНАВИСТЬ к нашим местным наебизнесменам-работадателям, которые предлагают оклады 15..22 тыс. руб./мес. работникам с образованием и опытом, особенно после того, как устроившись в одну из местных фирм-конкурентов «тайным покупателем», вернее разработчиком (чтобы посмотреть workflow, т.к. это довольно успешный бизнес-проект с большой клиентской базой) увидел тот же Job Offer с oDesk, но очень плохо, безграмотно переведённый топ-менеджером компании в редких перерывах между поездками на дайвинги.

    В «малый бизнес» я тоже пытался уйти — очень сильная конкуренция, ценовая со школотой. Потом оказалось, что это ещё не главная проблема — рынок заказчиков всё равно растёт быстрее рынка исполнителей. Главная проблема — это чудовищная пропасть между опытом заказчика — НЕ ЗНАЮТ ЗАЧЕМ ИМ ИНТЕРНЕТ И НЕ ЗНАЮТ ЧЕГО ХОТЯТ и… ПОЛНЫМ ОТСУТСТВИЕМ ЖЕЛАНИЯ ПЛАТИТЬ профессионалам.

    Ещё поразило соотношение между уровнем разработчиков и наглостью в сочетаниями с понтами у менеджеров компаний-конкурентов. Не знаю кого винить — Фурсенко, или сразу Вашингтонский кагал, но пока встречался с потенциальными заказчиками (сейчас только телефон, а лучше -электронная почта) по три раза на дню бывал в ситуации, когда выплеснув на меня ушат откровенной технической ахинеи дядя-Вася-на-джипе на вопрос «Где вы нашли эту чушь?» начинал быковать в духе «Это мне сказали девушки в конторе ИП XYZ, А У НИХ ВСЁ ЧЁТКО, ВЕДЬ У НИХ САМ ИВАН МОИСЕИЧ ЗАКАЗЫВАЕТ САЙТЫ!»

    Короче oDesk — единственный шанс для заМКАДья, кроме восстания конечно.
    Ответ написан
    8 комментариев
  • PHPStorm, как средство для повышения кпд?

    Удивительно, я наоборот считаю, что у PhpStorm замечательный рендеринг шрифтов как под Ubuntu, так и Mac OS X.

    IDE нужна как воздух, если работаете с фреймворком, например Symfony, Yii и т.д. Sublime Text 2 — хороший РЕДАКТОР, а не среда разработки.

    Я почти год юзал NetBeans. Сейчас компания предложила купить лицензию на PhpStorm. Погонял месяц. Пошустрее, немного более функциональная, более полная поддержка php 5.4 (NetBeans некорректно поддерживает traits). Внятная поддержка конфигураций для тестирования phpunit. Хороший рефакторинг — у NetBeans это похоже только одно название.
    Решил согласиться на приобретение лицензии, в том числе и себе персональную взял на днях.

    Но если хочется бесплатно и не пиратить — NetBeans хороший вариант.
    Ответ написан
    2 комментария
  • PHPStorm, как средство для повышения кпд?

    SowingSadness
    @SowingSadness
    web-разработчик
    Sublime Text выигрывает только в категориях:
    — более быстрый
    — более удобный для работы с множеством строк одновременно

    во всех остальных он проигрывает. Для проф. деятельности брать обязательно.
    На данный момент Eclipse + PDT + PDT Extension +… увы проигрывают.

    Но в PHPStrom есть один ужасный недостаток — очень плохой рендеринг шрифтов. Открываешь Eclipse и попадаешь в сказку.
    Ответ написан
    2 комментария
  • PHPStorm, как средство для повышения кпд?

    EugeneOZ
    @EugeneOZ
    Там можно переопределять hot-keys и есть плагины для всяких там манипуляций с кареткой.
    Но время IDE экономит не только (и не столько) в редактировании текста, а в:
    1) статическом анализе кода на ошибки (не синтаксические). Это миллионы (даже миллиарды) человекочасов. Это мегавещь.
    2) рефакторинге — можно за пару секунд поменять название метода во всём проекте и быть на 100% уверенным, что нигде ничто не забылось. И это далеко не все возможности рефакторинга.
    3) интеграции с CVS (git) и другими сторонними системами.

    «Запоминает файлы, несохраненные изменения.» — файлы проекта оно запоминает, конечно, это ж IDE. Но вот «несохранённых» изменений именно в этом семействе IDE нет — всё сразу сохраняется само. Сначала непривычно, но это очень хорошая штука :)
    Ответ написан
    Комментировать
  • Как привязать footer к низу экрана в Twitter Bootstrap?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Блин… что за советы… там есть встроенный класс: navbar-fixed-bottom

    <div class="navbar-fixed-bottom row-fluid">
          <div class="navbar-inner">
              <div class="container">
    
    Ответ написан
    7 комментариев
  • На чём лучше писать большого демона?

    TyShkan
    @TyShkan
    Рекомендую посмотреть в сторону phpdaemon
    Ответ написан
    Комментировать
  • Gearman работа в фоновом режиме

    Runit (но это аналог supervisord), весьма просто запуск в одну строку, умеет вести лог, запускать процессы от пользователя, в случае падения процесса поднять его, заменять init.d скрипты. насколько я помню написан на C и есть минимум ресурсов.
    Ответ написан
    2 комментария
  • Простейшая очередь задач на PHP?

    есть еще phpDaemon, который работает как классический демон, вполне может разбирать очередь задач. В SPL, кстати, есть структура для удобной работы с очередями — SplQueue.
    Ответ написан
    Комментировать
  • Простейшая очередь задач на PHP?

    @Ualde
    Очередь задач решается с помощью Gearman, тут вы совершенно правы.

    Если требуется же запустить просто параллельный процесс — вы можете его форкнуть или создать новый.
    Ответ написан
    Комментировать