Задать вопрос
  • Какие ресурсы с новостями по web-разработки вы знаете?

    VovanR
    @VovanR
    Фронт-энд Вэб-разработчик
    Подписывайся на коллективные твиттеры jsunderhood и cssunderhood. Также можно подписаться и на другие интересные аккаунты awesome-collective-twitters.
    Задавай вопросы, отвечай на вопросы. Экспериментируй, проявляй активность и дело пойдет.
    Ответ написан
    Комментировать
  • Как людям удается столько зарабатывать на фрилансе?

    @abcyu
    Разработчик
    Не однократно вижу в опросах фрилансеров, что средний доход в русскоязычном сегменте составляет 40т.р. Но если перейти на биржи фриланса то там за проект на который уйдет 3-4 дня предлагают 2-3т.р., но потом снова нужно искать проект, а это еще 2-3 дня. Итого месяц выходит 10-12 т.р. (у дворника ЗП выше). Речь идет о ВЕБ программистах "средней руки".


    Че за бредятина?
    Веб-программист средней руки в России зарабатывает порядка 30 000-90 000 рублей в зависимости от своей лени.

    Не получается на русскоязычных - иди на англоязычные биржи.
    Там и больше можно.

    Ты наверное, принципиально берешь слишком низкооплачиваемые работы, слишком простые.
    Если какую-то область очень сложно изучить, то там можно много заработать.

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

    edward04
    @edward04
    Начинающий ninja frontend
    smashingmagazing.com
    html5rocks.com
    сайт mdn
    блоги типа Пола Айриша и других ниндзя
    code.tutsplus.com/articles/33-developers-you-must-...

    dmitry.baranovskiy.com

    https://www.digitalocean.com/company/blog/20-devel...

    addyosmani.com/blog

    https://github.com/mr-mig/ru-it-chats

    css-live.ru

    www.webmonkey.com
    frontendfront.com

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

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

    берете и гуглите, нет на русском - пишите по английски, не знаете буржуйский- есть гугл транслэйт.

    PS Извиняюсь за ошибки -писал в порыве гнева.
    Ответ написан
    16 комментариев
  • Объясните простыми словами как работает Redux?

    У вас есть одно большое дерево, в котором хранится все состояние (state) приложения - это хранилище (store).
    Также у вас есть набор редьюсеров (которые скомбинированы в один общий rootReducer) - это функции, который принимают текущее состояние и действие и возвращают новое состояние:
    function someReducer(state = initialState, action) {
      // обычно выглядит как switch 
      // action - простой js-объект
      //              и обязательно имеет строковое поле type
      switch(action.type) {
        // обрабатываем действие с типом SOME_ACTION_NAME
        case 'SOME_ACTION_NAME':
          // берем какие-то данные из экшена и возвращаем новое состояние
          // при этом менять sate нельзя!
          // state.someProperty = action.newStateData <--- НЕТ!
          return { ...state, action.newStateData };
        // Если мы не обрабатываем действие - просто возвращаем старое состояние
        default:
          return state;
      }
    }


    Также есть экшен креаторы (actionCreators) - это функции, которые возвращают действие. затем это действие вещается в хранилище (диспатчится). Типичный пример:
    function someActionCreator(someArg) {
      return {
        type: 'SOME_ACTION_NAME',
        newStateData: someArg + 5, // <-- разная логика
      };
    }


    По-умолчанию в качестве экшена мы можем вернуть только простой объект, но при создании хранилища можно добавить так называемый middleWare. Это специальные функции, которые принимают все экшены из диспатча и могут передавать их дальше (при этом содержат дополнительную логику).

    Если мы хотим получить доступ к состоянию в экшен креаторе - воспользуемся thunkMiddleware:
    import thunkMiddleware from 'redux-thunk';
    
    function createStore(initialState) {
      const reducer = combineReducers(reducers);
      const finalCreateStore = applyMiddleware(
        thunkMiddleware // <-- добавляем middleware
      )(defaultCreateStore);
      return finalCreateStore(reducer, initialState);
    }


    Теперь мы можем делать так:
    function someActionCreator(someArg) {
      return (dispatch, getState) => { // <-- возвращаем фукнцию, а не объект!
        const someState = getState().reducerName;
        return {
          type: 'SOME_ACTION_NAME',
          newStateData: someArg + someState, 
        };
      };
    }


    В общем схема выглядит так:

    actionCreator --action--> dispatch --action--> middleware --action--> store --action--> reducer --> newState


    Затем мы берем из react-redux метод connect, который подключает Ваш умный компонент к хранилищу:
    import { connect } from 'react-redux';
    import { bindActionCreators } from 'redux';
    
    class MyComponent extends Component {
      static propTypes = {
        someProp: PropTypes.string.isRequired,
        someFunc: PropTypes.func.isRequired,
      };
    }
    
    // Тут мы берем из глобального состояния необходимую нам часть
    // В ownProps - свойства компонента. Тут могут быть например свойства от роутера
    function mapStateToProps(state, ownProps) {
      return {
        someProp: state.someReducer,
      };
    }
    
    function mapActionsToProps(dispatch) {
      return bindActionCreators ({ // <-- биндим все на disptach для удобства
        someFunc: (someArg) => someActionCreator(someArg + 1),
      }, dispatch);
    }
    
    export default connect(
      mapStateToProps,
      mapActionsToProps
    )(MyComponent);
    Ответ написан
    3 комментария
  • Объясните простыми словами как работает 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 комментария
  • Как работать фрилансеру в Украине?

    opium
    @opium
    Просто люблю качественно работать
    1) любом удобным для вас способом.
    2) не платите
    3) в банкомате с валютой
    4) нет
    Ответ написан
    Комментировать
  • Сколько принес Ваш open-source проект?

    Dit81
    @Dit81
    Security researcher, pentester, internet-marketer
    Я почти всегда стараюсь поддерживать интересные мне OpenSource проекты... Может я чего-то не понимаю?? Просто сам делаю для себя приложения и модули/библиотеки, но работаю на хорошей зарплате. И поэтому стараюсь поддерживать интересующие проекты.
    Ответ написан
    Комментировать
  • Расскажите про ваш опыт с файловыми системами для мелких файлов?

    Можно переместить все файлы в структуру каталога, где на каждом уровне будет 256 поддиректорий.
    1-й уровень вложенности - 256 папок
    2-ой уровень вложенности -256^2 папок
    ......
    n-ый уровень - 256^n

    Можно получать хэш md5 от
    md5sum filename - 9673a892a7d8c1c9ac598ebd06e3fb58
    затем нарезать путь из директорий, выбирая по 2 символа на подгруппу:
    /96/73/a8/filename
    Таким образом, для трехуровневой структуры можно разложить порядка 4-х миллиардов файлов, где в конечной папке будет в среднем 256 файлов.
    Триллион файлов - сделайте четыре уровня.

    Одно дело, читать папку, в которой 256 объектов, другое дело - когда несколько десятков тысяч, скорость работы изменится на порядки.
    Ответ написан
    1 комментарий
  • Сколько принес Ваш open-source проект?

    Jeditobe
    @Jeditobe
    РеактОС ежегодно собирает от 20 000 до 50 000 евро через кнопку пожертвований. В среднем где-то около 25 000 - 30 000.
    Ответ написан
    Комментировать
  • Как ускорить работу программисту?

    kumaxim
    @kumaxim
    Web-программист
    Главное что Вам нужно - писать меньше кода, который будет реализовывать поставленную перед Вами задачу.

    Перед началом выполнения задачи, Вам нужно декомпозировать ее. Сделали это, внесли конкретные пункты в свой product backlog(у меня для этого trello используется), начинайте выполнять. Ставите себе любой time-tracker, например toggl и замеряйте время исполнения. Работайте так 2-3 недели.
    Когда соберете какую-то статистику, увидите куда у Вас уходит время. Затем начинайте оптимизировать то, что у Вас повторяется из проекта в проект. Здесь есть два пути:
    1. Использовать готовые фреймворки
    2. Использовать скаффолдеры(см. Yeoman, grunt-init)

    Оптимизируйте рутину, т.е. Вам нужно постоянно собирать какие-то фронт-энд скрипты, загружать по FTP/SSH куда-то файлы, тут однозначно копать в сторону grunt/gulp. Если работайте с бэк-эндом, то может быть имеет смысл углубиться в возможности Вашей IDE, настроить автоматическое создание библиотек, пакетов, модулей и т.п.
    Ответ написан
    1 комментарий
  • Сколько принес Ваш open-source проект?

    alexk111
    @alexk111
    Автор Ботодрома (автоматизация Telegram, VK и др.)
    Еще до прихода популярности Open-Source, в 2004м году я делал бесплатный софт (анти спам тулза). Более миллиона пользователей по всему миру, туча публикаций в разных изданиях, высокие рейтинги и отзывы. Просил донат, даже высылал коробочную редакцию с бонусами тем кто поддерживал. Не пошло. В районе $600 только. Адсенс + аффилятные ссылки на странице после uninstall'a приносили во много-много-много раз больше. Правда адсенс тогда только появился и в дефиците рекламных площадок экстремально высокий CTR и клики по $2.5-$3 были в порядке вещей.
    Ответ написан
    Комментировать
  • Сколько принес Ваш open-source проект?

    leventov
    @leventov
    Забудь про мечты заработать на донате. Точка. Опен сорс + продавать поддержку - тоже полуживая модель.

    Делай опенсорс + копилефт лицензия (напр. Gpl) + продажа лицензий для Энтерпрайза (гугли license exceptions), либо опенсорс + платные проприетарные дополнения, либо вообще не опен сорс с самого начала.
    Ответ написан
    1 комментарий
  • Почему не любят Ember.JS?

    @EvgeniyKonstantinov
    На мой взгляд по двум из причин: так исторически сложилось или так модно.

    Каким то образом получилось что в рунете более популярны Backbone, Angular, а не Ember.

    Думаю что в своем видении причин я более или менее прав поскольку очень редко кто при выборе фреймворка проводит полноценное сравнительное исследование.

    Обычно на кого больше ссылок выдал Google, того и принимают за идеал - ведь 86% не могут ошибаться.
    Ответ написан
    2 комментария
  • Из чего состоит окружение продвинутого php разработчика?

    PhpStorm+плагины (тема - Darcula)
    Mercurial + TortoiseHg и Git
    Docker (не надо у себя устанавливать LAMP)
    ConEmu и Putty (если Windows)
    Navicat (или другой удобный phpmyadmin)
    Google Chrome
    Notepad++ (если Windows)
    Evernote (для кусков кода и скриптов)
    PHP (для запуска мелких скриптов)
    Composer
    Filezilla
    Microsoft Office / Google Docs
    Pocket (для сохранения статей с Хабра)
    Foobar (музыка)
    f.lux (чтобы не уставали глаза вечером)
    PuntoSwitcher
    Ответ написан
    Комментировать
  • Расскажите про ваш опыт с файловыми системами для мелких файлов?

    @neol
    А чем и зачем вы открываете эти директории?

    Спрашиваю потому что
    time ls -f -1 | wc -l
    937070
    
    real	0m1.240s
    user	0m0.632s
    sys	0m0.680s

    но
    time ls -1 | wc -l
    937076
    
    real	0m25.873s
    user	0m24.978s
    sys	0m0.940s


    ext4, из опций только noatime
    Сама фс как бы и не тормозит. Там правда всего несколько миллионов файлов на несколько гигабайт.

    Сотни миллионов файлов на одном разделе я в общем-то не видел, но может быть дело не в ФС?
    Ответ написан
    Комментировать
  • Расскажите про ваш опыт с файловыми системами для мелких файлов?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    О, брат! Ты вошел в зону боли... Она, увы, лучшая :-( unix.stackexchange.com/questions/28756/what-is-the...
    Да, ext4 никак не тюним, отключили atime только при маунте.
    Можно еще btrfs попробовать, но у нас не полетела...
    Вот тесты (не наши), у нас подобное. Тестируем через fio.
    Using Linux Kernel version 3.1.7
    Btrfs:
        create:    53 s
        rewrite:    6 s
        read sq:    4 s
        read rn:  312 s
        delete:   373 s
    
    ext4:
        create:    46 s
        rewrite:   18 s
        read sq:   29 s
        read rn:  272 s
        delete:    12 s
    
    ReiserFS:
        create:    62 s
        rewrite:  321 s
        read sq:    6 s
        read rn:  246 s
        delete:    41 s
    
    XFS:
        create:    68 s
        rewrite:  430 s
        read sq:   37 s
        read rn:  367 s
        delete:    36 s
    Ответ написан
    2 комментария
  • Upwork системному администратору?

    athacker
    @athacker
    Там есть и заказы и с почасовой и с по-проектной оплатой. Рутовый доступ сразу, я думаю, не дадут. Скорее всего будет доступ через TeamViewer, во всяком случае, поначалу. Т. е. клиент откроет ssh-сессию на своём компе, и даст вам доступ к своему компу по TeamViewer, чтобы смотреть, что вы делаете.

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

    opium
    @opium
    Просто люблю качественно работать
    легко
    предоставит
    тоже по часам
    Ответ написан
    Комментировать
  • Из чего состоит окружение продвинутого php разработчика?

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

    1. docker-окружение
    (в 90% случаев для веб-разработки достаточно php -S 0.0.0.0:8000)
    виртуальные машину становятся нужны:
    - когда надоест переустанавливать хост-систему из-за обилия хлама
    - когда работаешь с несколькими проектами имеющие специфические (разные) настройки окружения(php, web-сервер, база)
    - когда надоест решать проблемы в команде из-за того что по разному настроено окружение

    2. git - система контроля версий
    Помнить что ты и когда изменял, должен не человек, а машина.
    Это необходимо:
    - чтобы не испортить всю работы за прошедший год нажав del
    - чтобы определить кто из команды злодей и все испортил
    - чтобы не думать как перенести свежую версию проекта с одной машины на другую

    3. composer - пакетный менеджер для php
    Нужно, когда лениво помнить все ссылки на все php библиотеки, самому качать их, подключать в автозагрузку

    4. behat + phpspec
    Тесты нужны:
    - когда хочется почувствовать себя безопасности и для сладко спать ночь, забыв о кошмарах о сломанном коде
    - когда в production все снова сломалось
    - когда ты написал одну новую фичу, а сломал три

    5. zsh
    Хорошей консолью приятно пользоваться, работа идет быстрее.
    Консоль есть жизнь, жизнь есть shell.

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

    7. tmuxinator
    Надоело каждый раз открывать кучу окон для tmux, попробуйте его )
    8. vim
    - Потянуло на что-нибудь необычное?
    - Хочется эффективнее писать код ?
    Ну что открыли vim? В первый раз? Поздравляю закрыть вы его не сможете )
    Вызывает зависимость при частом потреблении


    9. continuous integration сервер
    Вообще ci сервер это одушевленная машина. Это твой тамагочи, ты кормишь его хорошим кодом, он радуется и ты видишь приятный зеленый огонек. Если ты дал с код от скажет что не вкусно. Ну а если ты ему, что гнилое он будет долго на тебя орать плохими словами. Со временем он растет и учится делать более серьезные вещи, и начнет помогать тебе:
    Его скилы:
    - он может сам выполнить 10 минутные тесты
    - подготовить и опубликовать проект
    - рассказать о твоем коде, даже то что ты не знаешь
    Он легко обучается и ты легко сможешь научить его удивительным вещам.

    10. куча линтеров на pre commit hook
    Чтобы ci не кормить плохими продуктами, хорошо бы проверять что ты сделал до отправки на сервер. Что бы не забыть это сделать git сам работу.

    11. gulp
    gulp - это еще один твой помощник.
    как если использовать, как watcher файлов + livepreview, можно забыть о F5 в браузере

    12. bower
    Тоже что и composer но для управления ассетами. Это я о всяких jQuery и Bootstrap

    666. Линукс
    Даже если не хочется ставить как хост-систему, его все равно надо знать. Ваш код будет работать на нем )
    Ответ написан
    16 комментариев
  • Продвинутая литература по тестированию?

    @matperez
    Как не смешно звучит, сам я эти книжки не читал, но, когда собирал подобную же вашей коллекцию, заметил, что их во многих местах рекомендовали безотносительно языка:
    The-Art-Unit-Testing-examples
    xUnit-Test-Patterns-Refactoring-Code
    ActiveRecord нормально тестируется с помощью частичных моков. Даже запросы нормально тестируются, если их выносить в отдельный класс, а ActiveRecord::find() использовать только как фасад для получения инстанса нужно класса с запросами.
    П.С. Поделитесь потом что нашли и что реально оказалось полезным.
    П.П.С. А вот еще книжка хорошая The Clean Architecture in PHP. Она вроде бы не сложная, но очень хорошо описывает как можно IoC использовать, а это прямой путь к хорошим тестам.
    Ответ написан
    1 комментарий