• Почему не работает sendmail?

    Проверка
    # echo "Message body" | mail -s "Subject" tomail@gmail.com

    Посмотреть что в логах (/var/log/....)
    Ответ написан
    Комментировать
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Кидают ли на upwork?

    @jewubinin
    Чем сложнее работа и выше твоя квалификация - тем меньше вероятность кидка.
    Это относится и к АпВорку с его эскроу и к любым другими способами взаимодействия с заказчиками.
    Утешает - что чем ниже квалификация и проще работа и выше вероятность кидка - тем меньше по длительности работы и меньше их стоимость и меньше потери.

    За все время сколько работаю (с 1998 года) прямо так откровенно кидали раз или два. Были еще разы - то там я сам не безупречно отработал.

    То есть кидают - крайне редко.
    Ответ написан
    Комментировать
  • Чем слать запросы на REST API?

    Rou1997
    @Rou1997
    Еще можно сокетами.
    Ответ написан
    Комментировать
  • Чем слать запросы на REST API?

    DevMan
    @DevMan
    Смотрел доку по курлу, не нашёл там опции для DELETE запроса.
    да ты шо? а если найду?

    php.net/manual/ru/function.curl-setopt.php искать CURLOPT_CUSTOMREQUEST.
    Ответ написан
    Комментировать
  • Как работать с новым договором upwork для российского ИП?

    @dmatora
    Сделал вывод 5 октября.
    Деньги пришли от ELANCE ESCROW CORPORATION.
    Отправил суппорту на подпись старый акт.
    Три раза предлагали мне подписать новый акт с Upwork Escrow, судя по скорости и невразумительности сообщений, не понимая смысла диалога и тыкая наугад варианты ответа в шаблонах.
    Три раза пробовал обьяснить им неприемлемость нового акта для старого отправителя.
    То ли у них шаблоны закончились, то ли удалось подобрать убедительную формулировку, но пулемет шаблонов притих и, судя по паузе, пошли советоваться с супервайзером.
    Через несколько часов прислали подписанный старый акт.

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

    Кто-то может подтвердить или опровергнуть что Модульбанк отказывается работать со старыми договорами?
    А то я тут давно присматриваюсь, стоит ли с ними связываться.

    UPD 07-01-2017: C нового года деньги все-таки начали приходить с Upwork Escrow Inc. Отправил банку подписанные новый акт и новую оферту. Банк поблагодарил за уточнение, но отказался признавать новую оферту новым договором, настаивая на том, что паспорт сделки придется оформлять при достижении $50k по обоим офертам суммарно.

    UPD 04-04-2017: Задал вопрос Правоведу - https://pravoved.ru/question/1597038/ принимаю заявки на уточняющие вопросы.
    Ответ написан
  • Кидают ли на upwork?

    Revencu
    @Revencu
    Более трёх лет работаю на Upwork и никакого случая небыло. Работал и с неподтвержденными статусами и с только что новыми клиентами. Все честно. Отзывы получал позитивные. В основном fixed Price.
    Мой профиль на Upwork
    Ответ написан
    Комментировать
  • Кидают ли на upwork?

    itsplus
    @itsplus
    C#/C++/Java Developer
    Бывало.
    Самое главное - четко следовать правилам сайта.
    Для fixed-price - работать только через escrow, никаких платежей по факту.
    Никакой работы пока деньги не лежат в escrow, а если поработали - то ничего не отправлять заказчику пока денег там нет. Не знаю, как сейчас на Upwork, работаю только по часам сейчас, на Elance было так - и насколько мне известно, работу с Escrow они скопировали.
    Так что если заказчик внезапно пропадет - деньги вы получите.
    Второе не менее важное - психология. Не работайте с мутными заказчиками.
    Если заказчик не хочет платить он найдет способ. Chargeback сделает, диспут откроет, в отзывы нагадит.
    Чаще всего проще забить на неполученные деньги или даже вернуть полученное, чем получить минус в репутацию.
    Ответ написан
    Комментировать
  • Почему не работает checked?

    @bogdanchez
    не lable, а label
    Ответ написан
    Комментировать
  • Под какие разрешения верстать?

    320+ -> [возможно что-то тут ] -> 768+ -> 1024+ -> [если имеет смысл для проекта]
    Требования к psd-макетам
    Ответ написан
    1 комментарий
  • Под какие разрешения верстать?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    У всех разные. Верстайте резину, тестите на разных разрешениях.
    Ответ написан
    6 комментариев
  • Зачем нужен row в bootstrap?

    SkiperX
    @SkiperX Куратор тега CSS
    .row {
        margin-left: -.9375rem;
        margin-right: -.9375rem;
    }

    Компенсирует отступы колонок. Без row будет отступ между краем контейнера и первыми и последними колонками в строке.
    Ответ написан
    1 комментарий
  • Безопасность кук?

    @kirill-93
    Куки должны быть зашифрованы. Вместо user_id = 1, должно быть что-то вроде user_id = eyJpdiI6ImoremQwVmF5UlVzVHFtNTFKY1wvMGFRPT0iLCJ2YWx1ZSI6IjYzUnNsdlpQTkJIeTdPZUtDeTNCQnNPdUJBTytzdHpuZGVNRWhzTEZrak5FRG82WkE5b01KelhnajhZd3ltRXBxMldmaXZRWXVWQ1IrN3h4UGhWMWtHSjhNZ20rOUpMUVwvNVNNTkJicFZ1TT0iLCJtYWMiOiIxZTI4YjExY2JmNjliYTEzMGY1ODUzODY2Mjc2ZTg3NmI3YTBkMTY0MGQwZjI1Y2YwNGQ3ZmZkZjBhNTY5NTczIn0%3D
    И пусть подбирают на здоровье.
    Ответ написан
    4 комментария
  • Зависимости внутри системы лучше строить от интерфейсов или абстрактных классов? Когда лучше использовать абстрактный класс и когда интерфейс?

    По-моему зависимости внутри системы от интерфейсов более гибкие.

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

    LoggerInterface

    В каждом ОО-языке свои конвенции именования интерфейсов, но скорее всего лучше назвать просто Logger. Вы же не пишете Class в конце имени каждого класса.

    Подскажите, пожалуйста, как правильно определить когда использовать интерфейс и когда абстрактный класс?

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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Всё просто: нужно портфолио хорошее и отзывы заработать на копеечных проектах.
    А потом - уже поднимать цену.
    Ответ написан
    2 комментария
  • Как делать тему на woocomerance?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Вот здесь в документации все описано https://docs.woothemes.com/document/third-party-cu... Нужно создать woocommerce.php и заменить в нем стандарнтый WP цикл на
    <?php woocommerce_content(); ?>
    А также включить поддержу woocommerce в функциях темы
    add_action( 'after_setup_theme', 'woocommerce_support' );
    function woocommerce_support() {
        add_theme_support( 'woocommerce' );
    }

    Так вы добавите в существующую тему на wordpress поддержку woocommerce. И получите базовый вывод. А дальше уже шерстим документацию https://docs.woothemes.com/wc-apidocs/index.html
    https://docs.woothemes.com
    Это все при условии, если вы знаете как делать обычные темы на Wordpress. Если нет, то тогда нужно изучить этот вопрос. На ютубе видео уроков предостаточно.
    Ну и документация: на русском wp-kama.ru
    И оригинальный кодекс https://codex.wordpress.org
    Ответ написан
    Комментировать
  • Как выводить средства с UpWork на ООО, зарегистрированное в России?

    opium
    @opium
    Просто люблю качественно работать
    1. Открываешь ИП, к нему транзитный валютный счет. Рассчетный валютный счет можно открыть если желаешь сидеть в долларах.
    2. Делаешь wire трансфер с Upwork, уплачивая 30$ за перевод.
    3. После перевода деньги блокируются валютным контролем.
    4. Дальше два варианта, либо выбить из поддержки договор (что почти нереально), либо отдать в ВК публичную оферту (User Agreement, на который соглашаемся при регистрации) в биллингве, на каждой странице публичной аферты поставить свою печать, "Копия верна" и подпись (после этих действий ВК охотней примет публичную аферту, нежели просто распечатанный биллингв).
    5. На каждый денежный перевод нужен акт выполненных работ, тут два варианта. Либо предоставить в ВК скриншот трансфера из панели апворка (что филькина грамота, не каждый ВК примет это), либо запрашивать у поддержки "Act of acceptance", который будет подписан апворком и тобой, в нем будет указана сумма перевода. Act of acceptance выглядит внушительней, нежели скрин из панели.
    6. Дальше при каждом переводе предоставляешь новый Act of acceptance.
    7. Работаешь так до достижения лимита в 50000$, дальше нужно заключить паспорт сделки (что сложно, но реально, нужно трясти поддержку апворка). ЛИБО заключить новый "контракт" с Upwork, опять предоставив User Agreement в билингве (про схему с закрытием старой оферты и открытием новой вычитал на хабре, там чувак ставил номер контракта в шапке оферты, что позволяло "открыть" новый контракт, поменяв этот номер)
    8. Ну и работаем дальше, либо по паспорту сделки, либо по вновь открытому контракту.

    Забыл. Когда ВК подтверждает перевод, то тут 2 варианта. Либо эти даллары "продаются" с транзитного счета на рублевый счет ИП по курсу ЦБ на день продажи, либо переводятся на долларовый счет ИП. Но у нас есть налог на курсовую разницу, потому эти деньги лучше сразу вывести с долларового счета ИП на долларовый физика.
    Ответ написан
    18 комментариев
  • Старт в WordPress?

    ksider
    @ksider
    Я сварщик не настоящий
    к вышесказанному добавлю еще пару шпаргалок:
    Небольшой мануал для старта
    Иерархия шаблона
    Теги
    Шпаргалка

    добавлю еще сервис для следующего уровня
    Ответ написан
    6 комментариев
  • Объясните как работает php-fpm?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для начала почитайте что такое SAPI. Затем представьте что apache + mod_php разделили на web-сервер, который проксирует запросы на php-fpm и отдает статику, и собственно отдельный web-сервер который имплементит SAPI и выполняет запросы связанные только с php. То есть статику отдавать мы можем только через php. Суть примерно та же что и у apache2 + prefork + mod_php но оптимизированный только для работы с php. Так же можно поставить на фронт более быстрый и легковесный сервер который умеет проксировать запросы.

    То есть php-fpm это эдакий fast-cgi сервер который постоянно держит готовые для работы пул-процессов (сколько в пуле процессов настраивается, так же как и от какого пользователя их запускать и все такое прочее). Каждый новый запрос уходит в какой-либо процесс из пула, запрос отрабатывает, возвращаем результат тому кто попросил (web-серверу обычно). Если процесс падает (fatal допустим) - поднимаем новый.

    Принципиальной разницы между apache2+mod_php нету, просто упрощается инфраструктура. Наш web-сервер должен только уметь проксировать запросы и отдавать статику, а php-frpm вообще может быть на разных машинах (балансировщиком можно раскидывать запросы). Ну и сами понимаете, nginx + php-fpm будет быстрее обрабатывать запросы чем apache2+mod_php какой бы мы менеджер процессов не использовали в апаче. Минусов по сравнению с apache+mod_php я даже не могу предложить.

    А php-runtime не зависит от этого. Он один на всех, CLI, FPM, mod_php...
    Ответ написан
    7 комментариев