• Docker. Как его применять на вебсервере?

    @pacahon
    Вы читали кучу мануалов, но упустили самое главное - официальная документация. Как так? Там как раз и говорится как делать и почему. На вопросы уже поотвечали, но пройдусь ещё раз, раз столько времени на чтение ответов потратил :>
    1) https://docs.docker.com/engine/userguide/dockervolumes/
    2) https://docs.docker.com/engine/articles/host_integ...
    3) Ответ простой - как хотите. Как лучше знаете только вы, звучит банально, но это так. Хотите хоть всё в один контейнер запихните, это ваше дело. Хотя рекомендуют 1 компонент на 1 контейнер. В этом есть своя логика - хочется обновить только mysql - обновляете этот контейнер и не думаете, поломался ли у вас uwsgi или nginx или ещё чего.
    4) Напишите свой первый Dockerfile, станет куда яснее как выбирать. А пока доверяйте только официальным образам.
    5) git? Этот вопрос - следствие непонимания вопроса 1)
    6) Уже ответили. Самое простое, если не понимаете - не используйте dockerhub вообще. Или начните понимать. :) Или платите за приватные репозитории, чтобы не думать об этом.
    Ответ написан
    Комментировать
  • Docker. Как его применять на вебсервере?

    nazarpc
    @nazarpc
    Open Source enthusiast
    1) data-only containers
    2) решите задачу подъема самого сервера с запущенным Docker, в контейнерах задаете политику всегда перезапускаться - они вместе с самим Docker запустятся
    3) в идеале по контейнеру на процесс либо логическую часть, к примеру MariaDB это один, Python сервер это второй и так далее
    4) внимательно изучать внутренности, кроме официальных выбирать только те, которые имеют автоматические билды с отрытым Dockerfile и поддерживаются актуальными, иногда придется делать свои
    5) ответ тот же что и 1) + резервное копирование/восстановление из томов
    6) не встраивайте чувствительные данные в образы и не попадут

    В качестве неплохого примера можете посмотреть мою разработку (правда, ориентирована на PHP, но суть та же, посмотрите как устроено): https://github.com/nazar-pc/docker-webserver
    Ответ написан
    7 комментариев
  • Что написать в почасовой ставке в профиле на Upwork?

    @abcyu
    Разработчик
    Ты фриленсер - ты сам проводишь свой маркетинг, привыкай сам решать все.

    Есть разные стратегии, кто-то начинает с символических ставок, кто-то с высоких.
    Тут дело не в уровне, а в подходе.

    Смотри конкурентов на интересующие тебя заказы, прикидывай.
    Ответ написан
    Комментировать
  • Объясните простыми словами как работает Redux?

    Laiff
    @Laiff
    Front-end developer
    Отличный мануал от самого Дани https://egghead.io/series/getting-started-with-redux
    Документация переведенная на русский https://github.com/rajdee/redux-in-russian там почти все есть.
    Есть еще приятная статья на хабре чисто по базовым принципам, но в некоторых местах не полная habrahabr.ru/post/269831
    Ответ написан
    3 комментария
  • Где хранить состояния интерфейса?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Моделей ведь у нас нету, да и хранить это в модели как-то не очень.


    Вы же знаете что такое MVC? вот вам картинка.

    да и хранить это в модели как-то не очень

    Все относительно. В целом да, это лучше хранить во viewmodel. Ну и вы же вкурсе что view не должно напрямую менять model, только через контроллер.
    Ответ написан
    Комментировать
  • Где хранить состояния интерфейса?

    AMar4enko
    @AMar4enko
    Я бы разделил данные и состояние. Фреймворк-то, на секундочку, MVVM.
    Ваш ресурс это конкретно Model. А контроллер, который вы привязываете к View, это View Model.
    Вот во View Model и храните состояние.
    {
      controller: ListController,
      controllerAs: 'itemsList'
    }


    <div ng-repeat="item in itemsList.data">
      <button ng-disabled="itemList.editing[item.id]" 
              ng-click="itemList.toggleEditMode(item)">Edit</button>  
    </div>
    Ответ написан
    2 комментария
  • Кто-нибудь пробовал upwork pro?

    @aquaruis1986
    Xamarin Dev
    У меня есть опыт Upwork Pro, есть 1 текуший контракт. По моему впечатлению - овчинка выделки не стоит, лично у меня впечатления в целом нейтральные\отрицательные - у вас может быть все по другому.
    1. Процесс найма сильно затягивается. У меня была долгая переписка + интервью с рекрутершей из Upwork, потом принятие дополнительного соглашения с Upwork pro. Потом интервью с пенеджером проектов и только потом техническое (и то, довольно поверхностное, на мой взгляд)сдиректором. В итоге с момента начала первого контакта с рекрутером до начала собственно работы у меня ушло больше 1.5 месяца
    2. Коммисия Upwork на этих проектах 20% вместо стандартной 10%, они про это напомнят вам не раз. По идее это компенсируется вашем повышенным рейтом по заказам pro. Я тут не стал наглеть, просто рассчитал мою ставку с учетом коммиси в 20% (возможно стоило просить и больше, компании которые так ищут наверное готовы платить больше).
    3. Компании которые ищут так фрилансеров как правило ищут на большие, долгие проекты, практически удаленная работа. Лично для меня это оказалось минусом, так как хочется больше гибкости в плане выбора заказчика, а не тупо работать на 1 клиента по 40 часов неделю.
    В итоге - если готовы ждать с устройством и работать в основном на 1 клиента-монополиста, то стоит попробовать. Иначе - я бы воздержался от такой опции.
    Ответ написан
    5 комментариев
  • Адекватно ли отправлять данные из директивы сразу в сервис?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не нарушаю ли я таким образом подход angular-way?

    Вы таким образом нарушаете подход MVC. Команды модели может отдавать только контроллер. На дворе 2015-ый год, скоро выйдут angular1.5 и angular2, пора отвыкать от наследия angular1.0 и 1.1

    1) никаких $scope в контроллерах (читать про controllerAs). По сути единственное место где можно использовать $scope - link директивы (которых при возможности тоже лучше не юзать). Соответственно такие приятные глазу вещи как $scope.$watch тоже лучше используйте только в link

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

    3) избегайте использования в приложении начистую angular API. Все то что со знаком $ (например $http, $sce, etc) должно юзаться в обертке (сервисы-репозитории, фильтры, отдельные мини-сервисы...). Таким образом мы максимально отделяем приложение от фреймворка, и делаем поддержку кода проще (например если вы захотите обновить зависимости, вам не придется переписывать пол приложения из-за каких-то изменений в API, ну и сторонние библиотеки тоже рекомендую заворачивать в обертки-фасады, пряча их от приложения. Опять же по той же причине, с ангуляром ждать сюрпризов редко приходится но вот сторонние библиотеки...).

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

    Полезные материалы по теме:

    busypeoples.github.io/post/thinking-in-components-...
    teropa.info/blog/2014/10/24/how-ive-improved-my-an...

    p.s. Это все лишь рекомендации на случай если вы делаете не прототип на коленке а реаьлное приложение. Даже если в ближайшем будущем все это практиковать вам будет не реально (приложение пилится уже давно и переписывать его никто не будет), учтите на будущее.

    в целом то как что делать решать только вам. Вам же потом с этим кодом работать. Ну или о людях после вас подумайте. В целом то что вы делаете - это называется писать логику в шаблонах.
    Ответ написан
    2 комментария
  • Для совсем новичка в программировании php или ruby?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ruby - надо знать английский и переходить на unix-like операционки (linux, bsd, mac os).

    PHP - можно ничего не знать, задачи всеравно будут.

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

    С Ruby есть риск надолго стать пленником RoR, с PHP - стать пленником устаревших статей, разных CMS-кой аля джумлы или друпалы, словом... фильтровать информацию от треша сложнее.
    Ответ написан
    3 комментария
  • Сайт на Ruby on Ralis?

    @rsi
    software engineer
    Начнем с того, что RoR это фреймворк, а Drupal это CMS и это совсем разные вещи.
    1) Да действительно все так, но имейте ввиду, что это относиться к программной части.
    2) Сможете, но опять же, ну думайте что в RoR, есть какая то готовая админка и какие то готовые плагины к ней. Там есть так называемые гемы, но гем не плагин к cms, это модуль к cms, он предоставляет функционал который вы можете встроить в систему, но его придется именно встраивать, прийдется его настраивать (настраивать в коде).
    3) Этого ничего нет в RoR, вы можете реализовать их сами, вы можете найти гем который предоставит необходмый функционал, но это все равно придется программировать.

    Судя по вашим вопросам, вы не до конца понимаете что такое разработка, в чем отличие CMS от фреймворка.
    Не ленитесь погуглите. Если кратко то CMS это система которая позволяет создать сайт без навыков программирования, да для нее пишут модули, используют ее API, но тут вы скорее меняет то что уже есть. Фреймоворк это каркас для создания приложений с нуля, да там есть всякие функции, методы, плюшки которые избавляют от рутины, гемы которые например избавят вас от прямой работы с API ютюба, но если говорить грубо то это просто синтаксический сахар для других функций, а сам сайт вам придется полностью писать самому.

    Вам нужно попробовать написать, что то на руби и вы сразу поймете разницу. Друпал и RoR это разные инструменты для разных задач. Глупо разворачивать рор для простого бложика или сайта визитки. Вам придется руками писать гору функционала который есть в другпал из коробки. RoR нужен тогда, когда ваша задача столь специфична, что проще ее сделать самому, чем корежить друпал.
    Ответ написан
    2 комментария
  • С чего начинать развиваться веб-дизайнеру?

    @eoffsock
    Кодер (Rails)
    Первый этап — подумать, надо ли это вам вообще. К хорошему дизайну на кривой козе не подъедешь.

    Прежде всего: Майк Монтейро «Дизайн — это работа». Даже если не будете потом заниматься дизайном — книга все равно полезная.
    Во многом избавляет от романтического подхода вроде «дизайнер — это художник».

    Второй этап — учиться: смотреть и делать свое.
    Только, во имя всех скандинавских богов, смотреть не на Behance и Dribble. Там красиво, конечно, стиль, все дела, но в конечном итоге 95% работ там просто картинки.
    А веб–дизайн — в первую очередь сценарий. Дизайнер определяет то, как пользователь будет пользоваться сайтом: в его власти сделать интерфейс простым и ясным или запутать до невозможности.
    Посмотрите работы бюро Горбунова, особенно процесс создания.

    Соответственно свои работы тоже нужно рассматривать с точки зрения полезного действия, а не внешней красоты. Эстетика — это третий этап.
    Учиться значит читать, в первую очередь. Чтобы делать правильно — нужна система.
    Читать лучше от общего к частному, начать стоит с этого:
    Дональд Норман «Дизайн привычных вещей»
    Виктор Папанек «Дизайн для реального мира»
    Параллельно:
    Генрих Альтшуллер «Найти идею»
    37Signals «Getting Real»

    Веб — это интерфейс, значит:
    Джеф Раскин
    «Новые направления в проектировании компьютерных систем», «Об интерфейсе»
    Брюс Тогнаццини «Главные принципы интерактивного дизайна»
    Якоб Нильсен «Веб-дизайн. Книга Якоба Нильсена»

    Веб — это шрифт и текст, стало быть:
    Ян Чихольд «Новая типографика»
    Эмиль Рудер «Типографика»
    Нора Галь «Слово живое и мертвое»
    Саша Карепина «Искусство делового письма»

    Веб — структура и верстка:
    Тим Харровер «Настольная книга газетного дизайнера»
    Мюллер-Брокман «Модульные сетки в графическом дизайне»

    Оставлю за кадром книги по самоуправлению и переговорам, это уже другая фаза.
    Про английский язык и умение верстать уже сказали, повторяться не буду.
    Ответ написан
    6 комментариев
  • Что такое agile разработка?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    Методика разработки.

    Waterfall: все тщательно планируем, назначаем сроки, разрабатываем, сдаем.

    Agile: Примерно планируем, анализируем, назначаем конечный срок, планируем на текущую итерацию, разрабатываем, планируем на текущую итерацию, разрабатываем... , сдаем

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

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

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

    Agile это не сверхфича, это инструмент, точнее подход к планированию работы, но им нужно уметь пользоваться.
    Ответ написан
    Комментировать
  • Нужно ли знать ruby для ruby on rails?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    hqdefault.jpg

    p.s. Да.
    Ответ написан
    Комментировать
  • Что сочитать с ReactJS чтобы собрать из него аналог AngularJS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Когда узнал что ReactJS, это не аналог angularjs не очень-то и расстроился.

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

    нет поддержки ts у текущей версии

    blog.mgechev.com/2015/07/05/using-jsx-react-with-t...
    https://github.com/Asana/typed-react/

    отсутствия свойств уровня класса.

    ну грубо говоря классов в JS как небыло так и нет...

    но нет понимания роутинга.

    Так же как и в angular - https://github.com/strml/react-router-component

    Никаких пробелов. Для ангуляра к слову такая же примерно штука есть, официальная замена всяким там uiRouter-ам.

    С AngularJS я не задумывался вообще не о чем

    Это главная проблема angular, люди не думают что делают....

    p.s. Реакт в отличии от ангуляра это библиотека. Flux - тоже можно назвать библиотекой. Ангуляр (если мы берем 1.x ветку) - монолитный фреймворк. Вот и вся разница. С реактом вы берете только то что вам нужно.
    Ответ написан
  • Какой js-фреймворк больше всего подходит для использования вместе с Ruby on Rails?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все что угодно, если мы говорим о SPA.... ну и все что угодно если мы говорим не о SPA.
    Ответ написан
    2 комментария
  • JavaScript ООП подход с DOM?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    https://jsfiddle.net/QW01_01/2qouqx81/1/
    'use strict';
    
    class BaseDomWrapper{
    	constructor(node){
            this._d = typeof node == "string" ? [].slice.call(document.querySelectorAll(node)) : node;
        }
        forEach(callBack){
            this._d.forEach(callBack);
        }
        hide(){
        	this.forEach(function(e){
                e.style.display = 'none';
            })
        }
        show(){
            this.forEach(function(e){
                e.style.removeProperty('display');
            })
        }
    }
    
    class Slider extends BaseDomWrapper{
    	constructor(node){
            super(node);
            
            console.log(this._d);
        }
        makeRed(){
        	this.forEach(function(e){
                e.style.backgroundColor = 'red';
            })
        }
    }
    
    var sl = new Slider('div.slider');
    sl.makeRed();
    Ответ написан
    3 комментария
  • Angular.js нужно учить со второй версии или начать с первой?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Angular 1.5 задумывался авторами как переходная точка, что бы проще мигрировать людей с первого на второй. Так что учите angular 1.x и соблюдайте стайл гайд. Ну и почитайте про MVC, про компонентный подход к разработке на Angularjs. (отказ от двустороннего датабиндинга, данные должны идти только в одном направлении, упор на классическую схему MVC).
    Ответ написан
    Комментировать
  • Cannot read property '0' of undefined - как исправить?

    HoHsi
    @HoHsi
    Попробуйте зарезать молодого ягненка при полной луне в последний день дождливого года, обмазать его кровью невинную деву и ударить ей в бубен. Говорят в таком случае можно определить проблему без кода
    Ответ написан
    1 комментарий
  • Сидячий образ жизни кодера на самом деле ухудшает здоровье?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    5 лет за компьютером занимаюсь кодингом + до этого 7,5 лет занимался за компьютером схемотехникой.

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

    В какой-то момент, когда вес перевалил через психологическую границу - понял, что пора что-то делать. Стал бегать по утрам и ограничил себя в еде. Минус мучное, минус явные жиры, минус сладкое, минус соки-газировки. После 20.00 не ел. Ел по пять раз в день по немногу.
    Итого за 3 месяца минус 13 кг. В организме легкость. Но заболели колени. Ударная нагрузка на колени при беге из-за избыточного веса, неправильной техники бега и, как потом выяснилось, плоскостопия. Перестал бегать, перешел на спортивный шаг.
    После год физкультурой не занимался и не особо следил за едой. Опять набрал 5...7 кг.
    Пошел в фитнес-клуб, где и занимаюсь до сих пор. Сейчас вес приблизительно такой же, как был до всех похудений, но, по ощущениям, набрал где-то 50 на 50 мышцы/жир. Живот ощутимый есть, но осанка хорошая. Отдышка не мучает. Сердечно-сосудистая система работает. Становая - 100кг, Присед - 100 кг, жим лежа - 80кг. Это не на раз, это рабочие. Последняя тренировка с гирей 16кг по наручному кардиомонитору: 1ч20м, ср.ЧСС 150, махЧСС190, ккал1200.

    Образ жизни кодер формирует себе сам. Он не обязательно сидячий. У меня двое коллег программистов в выходной устраивают себе велопокатушки на 70...80 км.
    А прогрессирующий лишний вес появляется когда количество поступающий с пищей калорий превышает количество используемых. Плюс качество поступающих калорий, конечно, тоже важно. Углеводы надо получать из каш (низки гликемический индекс), а не из булок. Больше белка. Контролируемо - жиры.
    А если питаешься не очень калорийно или от природы с метаболизмом повезло, но с физкультурой не дружишь, то все равно будет грозить фигура беременного кузнечика. Когда мышцы спины не развиты - собственный вес будет скручивать в сутулую закорючку. Но скелетно-мышечная система - это не сумма отдельных мышц. Все мышцы/кости друг с другом связаны. Тут перекачаешь - тебя мышечный дисбаланс в другую сторону свернет. В идеале надо гармонично заниматься. И осознанно.

    В общем и целом, нужна физнагрузка, мы хоть в современном мире много чего достигли: много еды в магазине, медицина, автомобили. Эволюционно мы все еще не готовы к этому. Нам бы надо двигаться: бегать за оленями, валить мамонтов, а мы сидим в своих пещерах и толстеем. Надо этот дисбаланс между научно-техническим прогрессом и своей эволюцией нивелировать. Это жизненная необходимость. Но можно, конечно, и в 50 кони двинуть от сердечного приступа: тут вопрос выбора.
    Ответ написан
    5 комментариев