• Правильно ли я понял философию Docker?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Контейнеры данных


    Они не нужны, используйте named volumes вместо этого (с версии 1.9 докера).

    Исходный код и локальные npm-модули (или лучше это в предыдущий контейнер, и при старте выполнять


    Нет, npm install надо выполнять ДО сборки образа. Когда контейнер стартует - внутри у него уже все должно быть. Опять же я лично против того, что бы выносить исходники проекта в отдельный контейнер-пустышку. У вас есть контейнер с нодой - исходники для ноды должны быть там. Есть некоторые нюансы связанные со сборкой контейнера но это так.

    На файловой системе хоста


    Ничего.

    Логи прокидываются в stdout/stderr контейнера и собираются на хосте через докер любым подходящим драйвером (читаем документацию).

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

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Смотрите дайджесты на Хабре, по фронту и там куча хороших ссылок всегда.
    https://habrahabr.ru/company/zfort/blog/273557/
    https://habrahabr.ru/company/zfort/blog/278711/
    и т.д.. Их там 200 штук.
    Если конкретные вопросы, то лучше просто ищите конкретный ответ.
    А подкасты и остальное просто так без текущей задачи бессмысленное занятие.
    Это ИМХО. Только на своем опыте хорошо практикуется.
    Ответ написан
    Комментировать
  • Реально ли создать стартап без бюджета в наше время?

    @nirvimel
    Нереально создать любой бизнес (можно называть это "стартап" - от этого ничего не меняется) без бизнес-плана. А какой бюджет потребуется для запуска этого бизнеса в бизнес-плане должно быть четко прописано и обоснованно.

    • Если у вас есть бизнес-план, то у вас есть и ответ на вопрос о бюджете.
    • Если у вас нет бизнес-плана, то на вопрос "реально ли", ответ отрицательный.
    Ответ написан
    7 комментариев
  • Определение VPN и прокси?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    1. Смысл бить по адресам? Определяйте сразу использование. Вот пункты, по которым можно пройтись..
    2. VPN разные бывают, через них люди могут с работы в интернет ходить или у некоторых провайдеров так.
    Ответ написан
    Комментировать
  • Как наиболее оптимально настроить vps для одного сайта?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Сложно ответить что-то внятно, потому что вопрос = поток сознания, уровень подготовки вопрошающего слишком низок для того, чтобы самому настраивать и админить сервак. Ничего личного, не обижайтесь, но лучше обратитесь к специалисту. Потому что между вашим текущим состоянием и уровнем даже начинающего админа, способного самостоятельно все это сделать "по уму" - не менее 200-300 часов обучения и практики.

    По сути - мощности железа данного сервера достаточно для 100к в день. При грамотном использовании кеширования 100к в день выдержит без проблем и сервак с 1м ядром и 1Гб оперативы.
    Ответ написан
    3 комментария
  • Сидячий образ жизни кодера на самом деле ухудшает здоровье?

    copist
    @copist
    Empower people to give
    Вес потихоньку набирается, потому что сладкое обожаю. Спасибо Дмитрий Макаров за совет с кашами, но какие именно?
    Если совсем не шевелиться, то из-за застойных процессов нарушается кровообращение и как следствие плохо варит котелок. А так же боли в спине и шее. Ленивый кишечник. Дискомфорт в ногах.

    Бегать на улице не в кайф. Велика нет. Лыжи редко и вообще только зимой. Вот моё решение:
    PSM-Od3RUCE.jpg
    Пробежка 30-40 минут + гимнастика на растяжения + гантели/пресс/подтягивания + прохладный душ. В лучшем случае управляюсь за час.
    Голова работает отлично. Сплю 6 часов в сутки, не устаю. Кстати, режим сна 5 часов + 4 * 15 минут днём.

    Раз в квартал нанимаю массажистку для спины, плечей и шеи. 10 сеансов.

    На мониторе на стене смотрю фильмы или сериалы во время пробежки. Ещё там можно читать книги, но я предпочитаю читать бумажные и делать пометки на полях.

    Плавно мигающее световолокно перед глазами позволяет расслабить зрение. На столе лампа 2*18Wt очень яркая. Под потолоком 4*20Wt 4200K дневной свет.

    Два очистителя воздуха с ионизаторами. Один чистит внутренний воздух ультрафиолетом. Второй, приточный, чистит уличный воздух. Кондиционера нет.

    Играю (очень-очень редко, по разным причинам) в XBox Kinect. Специально играю только в кинектовские игры, подвижные. "Звёздные войны" очень разминают руки, а "Adventures" - ноги и спину.

    Часть времени работаю стоя. Ноут стоит на крышке террариума, а я рядом.
    Ответ написан
    6 комментариев
  • Какой надежный и удобный плагин мультиязычности для WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Бесплатные:

    Polylang (у него есть WPML Compatibility, работает со всем, что запилили под WPML)
    qTranslate X
    WPGlobus, www.wpglobus.com
    MultilingualPress

    У всех разный подход, а именно:

    Polylang / WPML - переводы это самостоятельные записи, связаны между собой скрытой таксономией "язык". Неудобство - нельзя использовать один и тот же slug для разных языков.

    qTranslate X - переводы хранятся в одной и той же записи с помощью спецразметки. Неудобство - при выключении плагина и/или переходе на другой, придется чистить весь контент от спецразметки. В некоторые плагины сложно добавить поддержку qTranslate X.

    MultilingualPress - мультисайты, каждый сайт сети - это языковая версия. Контент перелинкован между собой. Удобно, если сайт большой и над каждой версией работает отдельный человек / команда, если контент не зеркальный.

    WPGlobus - относительно новый плагин, но выглядит интересно, отзывы хорошие. Работает по принципу qTranslate X (и поддерживает кажется его синтаксис).
    Ответ написан
    1 комментарий
  • Как не заплыть жиром, работая удаленно программистом?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    1) Кроме работы у вас должны быть какие-нибудь ещё дела, которые заставляют выйти из дома.

    2) Если нет дел, устраивайте себе обед, как у офисного планктона. При этом, обедайте не дома, обедайте в ресторанах с нормальной едой (это будет дороже и, скорее всего, полезнее, сразу два плюса для вас). Нет нормальных ресторанов - ездите в большие продуктовые за нормальными продуктами и готовьте дома.

    3) На обед и на любые другие дела ездите на велосипеде. Т.к. вы в провинции, то у вас просто сногсшибательная возможность всюду ездить на велике. Забудьте об общественном транспорте. Ходите везде пешком, ставя личные рекорды по скорости и длине пути, которые вы преодолели пешком.

    Гораздо проще быть активным, подвижным и динамичным по жизни, чем сначала сидеть на работе, потом сидеть в спортзале.
    Ответ написан
    1 комментарий
  • Как не заплыть жиром, работая удаленно программистом?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Я уже более 2-х лет активно тренируюсь и могу поделиться опытом.

    Спортзал - штука очень спорная. Я не верю в то, что можно заниматься бесконечно долго по одной и той же схеме без утомления. В моём случае получался такой расклад, чтобы пойти потренироваться:
    - собрать сумку с необходимыми вещами для тренировки
    - добраться до спортзала
    - переодеться
    Только на этот этап можно потратить порядка часа.
    Далее сама тренировка около 1 часа.
    Затем душ, переодевание и обратный путь и вынуть просушиться вещи - ещё час.

    Итого: чтобы потренироваться пойти в спортзал нужно заложить 3 часа времени. А если ещё график не очень гибкий, то можно и в час пик попасть, когда зал переполнен и это вызывает неудобства из-за плотного графика упражнений.

    Лучше всего ориентироваться на домашние и уличные тренировки. Плюс тут несомненный в том, что как только появилось желание подвигаться - пошёл и поделал упражнения. Ещё один: можно делать несколько тренировок в день с минимальными затратами времени.

    Главный секрет поддержания интереса к тренировкам - научиться получать удовольствие от них. Для этого нужна непринужденная атмосфера и медленное сосредоточенное выполнение.

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

    Но это только то, что касается силового тренинга.
    Я считаю, что есть смысл хотя бы 1-2 раза в неделю выполнять аэробную тренировку: бег, велосипед и т.п. В спортзале это делать чрезвычайно быстро надоедает - вокруг только серые стены, никакой реальной движухи. Через месяц уже тошно становится от беговой дорожки или велотренажера.

    Наверное еще добавлю, что на первых порах очень важно придерживаться плана тренировок. Это касается и графика по дням недели, и по составу. Где-нибудь через полгода-год можно уже импровизировать.

    Что касается питания. На мой взгляд самой прогрессивной диетой сегодня является LCHF. Суть сводится к уменьшению потребления быстрых и медленных углеводов до нуля, а калорийность обеспечивать жиром. Соответственно, белок само собой тоже нужен. Хороша она тем, что организм не ощущает каких-то лишений, голода нет. Жиры очень долго расщепляются, а без углеводов излишки будут выводиться организмом, вместо переноса в жировую ткань.
    Градации потребления пищи в зависимости от времени суток считаю профанацией. Можно разве что избегать питания тяжелой пищей менее, чем за 2 часа до сна.
    Ответ написан
    9 комментариев
  • В чём смысл натягивать лендинги на cms?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    Первая причина в том что LP как одна страница - это понятие изуродованное в РФ.
    LP далеко не всегда есть одна страница. Мы делали сайт из 100 LP, структурированные в дерево.

    Вторая причина в том что по большей части оптимально начинать с одностраничника (это сайт из одной LP), но кто сказал что на этом стоп? Если бизнес адекватный, то через неделю захочется продолжения банкета. Делать блог, каталог продуктов, или другие LP. Из одностраничника превращаться в каталог смежных продуктов, с кросспродажами и прочим блекджеком.

    Третья причина в том что сделать LP на WP можно без излишних затрат. Как уже сказали выше это может быть VC или PageBuilder. Страница собирается за 15-30 минут. Без кривой верстки, кроссбраузерная, адаптивная. По конверсии такие страницы не уступают ручным сборкам (от 2 до 20% легко выжимается), а по затратам в 10 раз меньше.

    Четвертая причина. Это решение на много гибче. Проще делать сплит тесты. Поправить блоки местами можно парой кликов или движением мышки. Править может маркетолог без знаний верстки или кодинга.
    Ответ написан
    1 комментарий
  • Как правильно администрировать VPS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ни в коем случае не ставить никаких ISP Manager / Vesta / CPanel, иначе никогда не научитесь тому, чему хотите научиться. Кроме того, они жрут ресурсы. Даже Vesta, которая самая легкая, их жрет прилично, а я сильно сомневаюсь, что у вас VPS c 8+ Gb памяти.

    Изучать надо по урокам и статьям, читая мануалы и best practices по каждому package. Порядок, плюс-минус, таков:

    - развернули ось
    - сделали сразу апдейты
    - создали и настроили swap
    - поменяли пароль рута на что-нибудь супер-мега-сложное (его мы использовать все равно не будем)
    - создали себе обычного юзера с паролем нормальной сложности (он будет использоваться для sudo)
    - дали юзеру права sudo
    - закрутили гайки по SSH - сменили порт, запретили вход руту и вход по паролю (только по ssh-ключам), разрешили вход только одному своему новому логину
    - настроили UFW - простой, но эффективный firewall на основе iptables - default deny, allow http, https, свой кастомный ssh-порт. Если логиниться будете только из нескольких мест (офис, дом) - можно вообще ssh разрешить только на эти IP.
    - sudo dpkg-reconfigure tzdata чтобы установить свою временную зону, так логи потом легче читать и понимать
    - настроили logrotate
    - настроили logwatch
    - настроили Postfix, чтобы сервер вам письма мог слать (мы его настраиваем на внешний мейлер, например Mandrill, чтобы все письма точно в спам не падали)
    - настроили fail2ban (потом, после установки и настройки веб-сервера и сайтов, в fail2ban можно дополнения писать, например мы на WordPress-сайтах мониторим попытки авторизации в админку и блочим тем же fail2ban)
    - дальше ставим все что нужно - Git, Nginx, HHVM, PHP5-FPM, MariaDB, Memcached/Redis и так далее.

    Регулярно заходите на сервер, делайте apt-get update && apt-get dist-upgrade.

    p.s.: это по ubuntu/debian, для других систем все то же самое, но packages и команды могут немного отличаться
    Ответ написан
    26 комментариев
  • Как изменить и добавить поля в корзине Woocommerce?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    По первому вопросу - смотрите код, ищите хуки и фильтры. Направление в котором копать (кроме документации, конечно же):
    stackoverflow.com/questions/21709826/woocommerce-o...

    По второму - billing address и shipping address - это два разных адреса. Биллинг - это адрес плательщика. Шиппинг - адрес куда доставить. Первый всегда один и тот же будет при повторных покупках, второй может меняться - заказать доставку в офис, родителям домой, девушке на работу и т.д. - вариантов масса. При первой регистрации надо заполнить оба адреса, во второй раз же billing уже будет заполнен. Чтобы сделать процесс удобнее для покупателя, есть опция "галочка - использовать адрес биллинга для доставки". Не помню только это родная фича WooCommerce или есть для этого плагин. Но точно есть - посмотрите настройки WC и поищите плагин через админку, если в настройках не найдете.
    Ответ написан
    2 комментария
  • Действительно ли Zend Framework 2, лучше забыть?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мне сказали что ZF2 прошлый век, и сейчас используют Laravel и Yii

    пошли этого человека куда по дальше. Это фреймворки обсалютно для разных задач. Laravel и Yii - преимущественно для быстрой разработки, хорошо подходит для малых и средних проектов. Для средних и больших больше подходит Zend (ну или Symfony).

    Грубо говоря:
    Yii и Laravel - RoR way
    Zend и Symfony - Java/C# way

    p.s. Если для вас фразы типа Single Responsibility, Layered Architecture, persistence ignorance, Unit-of-work и т.д. не пустой звук - Zend для вас. Если же нет - то можно думать.
    Ответ написан
    Комментировать
  • Как работают и зачем нужны ленивые сервисы в Zend Framework 2?

    "ленивая загрузка" - то есть использование объекта при необходимости, если надо будет, она возьмёт объект и загрузит его. В ZF2 это всё дело разруливается через ServiceManager с типом конфигурации invokables, там вы можете помещать как непосредственно классы, так и службы (по сути одно и тоже, только семантика разная). Например, вы создали какую то уникальную обработку данных для какого то конкретного случая, и вы хотите её использовать в своём модуле, или даже в конкретном контроллере какого то модуля (а потом оказалось, что вам её нужно ещё где-то использовать). И вот как раз на помощь приходит "ленивая загрузка", где вам нужно класс с уникальной обработкой данных указать в конфигурационном файле. Теперь, как только вашему приложению понадобится этот функционал (например пользователь запросил какие то ресурсы, которые обрабатываются на сервере именно вашей уникальной обработкой данных), то он (ServiceManager) возьмёт этот класс, то есть при необходимости подгрузит. К стати, как я выше писал в скобках, что возможно вам понадобится ещё где-то использовать, то вы можете ещё дальше пойти, то есть уже в конфигурационном файле указать тип factories, где поместить ранее созданный класс фабрики реализованный с помощью FactoryInterface, и после чего класс с уникальной обработкой данных будет создан независимо от возможных требований лишь тогда, когда он был первый раз вызван, а дальше вы его можете использовать на уровне всего приложения. То есть в одном месте объявили, вызвали его, а дальше вызываете его где угодно и сколько угодно. Стоит заметить, что при повторном вызове, возвращается один и тоже объект, и если вам всё таки понадобится новый объект для какого то конкретного случая, то нужно сделать кое какую поправку, и вы получите новый объект.
    Ответ написан
    4 комментария
  • Когда следует выносить код в отдельный модуль, и когда - в отдельный контроллер?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как определить, что часть приложения стоит оформить в отдельный модуль?

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

    Как определить, что часть приложения нужно вынести в отдельный контроллер?

    Никак. Читайте про тонкие контроллеры и жирные модели или на худой конец толстите сервисный слой. Реюз контроллеров дело совсем не благородное.

    www.ustream.tv/recorded/22783515 - рекомендую
    Ответ написан
    Комментировать
  • Как сделать https на сайте?

    Если бюджет ограничен, возьмите бесплатный cloudflare, будет вам и https и возможность shared хостинга
    https://www.cloudflare.com/plans
    Ответ написан
    Комментировать
  • Кто какой использует time tracker ?

    newross
    @newross
    Product owner
    Toggl - простой и удобный трекер.
    Ответ написан
    Комментировать
  • Как правильно учиться PHP / mySQL?

    beono
    @beono
    Очень рекомендую getjump.github.io/ru-php-the-right-way
    Процитирую, чтобы не пересказывать своими словами:
    В интернете очень много устаревшей информации, которая приводит к заблуждению, распространению неверных решений и написанию плохого кода у начинающих PHP-разработчиков. PHP: Правильный Путь — легкочитаемое руководство для быстрого ознакомления с правилами эффективного использования PHP
    Ответ написан
    Комментировать
  • Как лучше использовать веб сокеты в RoR?

    alexclear
    @alexclear
    A cat
    Для связи EM и RoR есть gem websocket-rails.
    Судя по всему, он относительно живой (внутри у него, кстати, faye). Вообще, веб-сокеты и RoR работают по принципиально разным схемам взаимодействия с клиентом, и я бы рассмотрел вариант их в одну кучу не мешать. Для того, чтобы веб-сокеты работали, понадобится асинхронный веб-сервер - websocket-rails использует Thin, можно и Puma приспособить, а вот Unicorn уже не пойдет.
    Ответ написан
    3 комментария
  • Как настроить nginx proxy_pass + кеширование ?

    HangGlider
    @HangGlider
    Если файлы статические и лежат локально - не понятен смысл прокси. Можно отдавать сразу файлы, прописав путь в соответствующем location.

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

    Если вы хотите заставить прокси-сервер каждый раз обращаться на удаленный хост для проверки времени файла, то теряется сам смысл прокси как ускорителя отдачи контента.
    Ответ написан
    4 комментария