• MongoDB Как просмотреть / получить всю базу?

    @lega
    mongodump/mongoexport
    Ответ написан
    Комментировать
  • Как вы управляете своими серверами?

    @Erelecano
    Админю сервера, починяю примуса.
    3 комментария
  • Есть ли смысл в мобильном приложении для Toster? Когда ждать?

    Лучше не стоит. Я даже рад, что не будет. Зачем? Программист что, будет вопрошать о том, как решить баг, с мобильника? Программируют на ПК, а не на утюгах. Логично, что вопросы с мобил будут еще менее вразумительные и менее содержательные, с большим количеством ошибок.

    Ответ - нет, смысла нет. Программисты для программирования пользуются ПК, для гуглинга - ПК, и для вопрошания - тоже ПК.
    Ответ написан
    3 комментария
  • Есть ли смысл в мобильном приложении для Toster? Когда ждать?

    Постоянно читаю Тостер с телефона в дороге и даже иногда отвечаю на простые вопросы.
    Сайт адаптивный, все там нормально, приложение не нужно.
    Ответ написан
    Комментировать
  • Почему при вводе mail почты, письмо через php не потправляется?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Скорее всего, по набору признаков письмо попадает в спам. Несколько признаков могу назвать сразу.
    Во-первых, в заголовке Subject используются символы с кодами, выходящими за пределы ASCII 0-127.
    Во-вторых, в письме есть HTML-часть, но нет соответствующей PLAINTEXT-части.
    В-третьих отсутствуют подписи SPF, DKIM и DMARK.
    Ответ написан
    1 комментарий
  • Объясните простыми словами как работает 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 комментария
  • Объясните простыми словами как работает 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 простыми словами?

    @KnightForce
    Чтобы понять как работает Redux тебе нужно норм вкуривать React.
    Хотя бы для того, чтобы не пугаться props.

    Есть у тебя React. Это все просто JS объекты.
    <Component /> - так позволяет писать движок jsx, который и React его использует.
    Так как структура компонентная, ты должен думать как обновить компоненты в в другой части страницы.

    Принцип такой: компонент обычно обновляется при получении новых свойств - props или когда меняется его объект состояния - state.

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

    Что делает Redux:
    Он не призывает отказываться от state.

    Но есть общий контейнер данных. И когда данные меняются - меняются и компоненты, которые отображают именно эти данные.

    Когда нужно что-то поменять - вызываешь dispatch - специальная функция reducer реагирует на это - и меняет данные как тебе нужно. Когда данные заменятся - компонент Propvider - вызывает рендер у своего дочернего компонента (тот что оборачивает Provider).
    Например:
    <Provider>
       <MyComponent />//Вот сюда Provider пробросит (запишет) новые props.
    </Provider>


    Записывает он это самое глобальное хранилище и все компоненты, для которых поменялись данные - перерисуются.

    mapStateToProps - указывает какую часть этого глобального хранилища будет предоставлять provider.
    Если у тебя оно такое:
    {
       chunkStore: {},
       some: {}
    }

    То если mapStateToProps вернет{store: store.chunkStore}то Provider в props своего потомка пробросит такое: store: store.chunkStore. И ты будешь обращаться внутри к store, но там будет только часть chunkStore (не весь объект, а его поле).

    mapDispatchToProps - т.к. subscribe нет, то это возвращает функции, которые могут внутри себя вызывать dispatch().

    action - описывает то что и на что ты хочешь поменять. Какое поле и какие данные туда поместить.
    Ответ написан
    Комментировать
  • OS X (macOS) vs Linux: какая ОС шустрее на слабом Маке?

    BVadim
    @BVadim
    У вас упор идёт в 4Гб оперативной памяти. Для виртуалок и множества открытых вкладок в браузере - оперативная память основной ресурс. У меня MBA mid2013 i7/8Gb/512Gb и я не испытываю никаких проблем с быстродействием пока для используемых программ хватает оперативной памяти. Но 3Гб занято уже сразу после загрузки голой системы. Так что с 4Гб у вас очень быстро нанчинает использоваться swap, а это, хоть диск и быстрый, даёт значительные тормоза, т.к. много кусков нужной в данный момент памяти приходится гонять с диска в ОЗУ и обратно. Вряд ли другая ОС на тех же задачах решит проблему (разве что будет использовать экономнее ОЗУ). Но в 4Гб упор будет достигнут в любом случае очень быстро.
    Ответ написан
    1 комментарий
  • Сексуальный и горячий UX и UI, где можна найти хорошие книги?

    arutyunov
    @arutyunov
    Mooza.ru — Делаем сайты
    Ответ написан
    Комментировать
  • 16 лет. Идти во фриланс или начинать junior'ом в конторе?

    @papabig
    Никогда бы не посоветовал 16тилетнему подростку идти работать. Учиться, изучать фундаментальные науки, математику, физику, пока свежа голова. Изучать языки, заниматься спортом, развиваться, как личность, занимаясь программированием только в охотку, в виде хобби. Работа никогда не принесёт удовольствия и вы перегорите уже годам к 20ти. Если действительно нужны деньги для семьи, пробуйте устроиться в контору, так вы поймёте, что действительно нужно для работы, а что просто романтика, о которой пишут в книгах.
    Ответ написан
    4 комментария
  • Как контролировать изображения добавленные через wysiwyg редакторы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Например, при добавлении картинки ставите ей атрибут "без новости", при записи самой новости всем картинкам, на которые она ссылается снимаете этот атрибут. Периодически удаляете все картинки с атрибутом "без новости", старше, например, суток.
    Ответ написан
    4 комментария
  • Операционная система для умного дома на C++ c полного нуля. Как?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    spoiler
    Вы что фейки регаете или какое-то весеннее обострение? Такой же вопрос был N дней назад

    Тут пришла ванга и сказала, что у вас ничего не получится. А по сабжу, бросьте эту глупую идею. Чем вас не устраивает зоопарк готовых решений на базе linux и unix? Сделайте очередной дистрибутив линукса, только напичканный софтом для взаимодействия с микроконтроллерами, датчиками, камерами и всем умным в вашем доме. Т.е. ядро умного дома, а потом уже расширяйте его модульно. Можете сделать распределённую отказоустойчивую систему, в общем простор для фантазии большой и вовсе не нужно писать свою ОС.
    Ответ написан
    1 комментарий
  • Facebook api, поиск людей, что я не так делаю?

    @hr_lolka Автор вопроса
    проблему решил, надо использовать user_token
    Ответ написан
    1 комментарий
  • Как найти работу в сша удаленно?

    Matvey-Kuk
    @Matvey-Kuk
    Разработчик в Cisco, CA.
    Стажировка - оффер - виза - гринка.
    Ответ написан
    Комментировать
  • Как найти работу в сша удаленно?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Если у Вас нет разрешения на работу в США, надо быть крайне волшебным человечком (далеко не junior) или иметь мега хороших знакомых там, что бы прислали приглашение на работу.
    Если разрешение есть, можно искать работу, но главный вопрос как с английским?
    Обычно люди идут на фриланс и через несколько лет, если появится от туда постоянный клиент и очень Вы понравитесь, можно говорить с ним о переезде и работе офлайн.
    Так для заметки:
    у меня мама гражданка США, подала на воссоединение семьи и уже хрен знает сколько лет жду возможности получить гринкарту. Так что если у Вас к США только много желания и нет документов - учите мат часть.
    Ответ написан
  • Где искать специалиста по поиску для интернет магазина 300к товаров и сколько стоят его услуги?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    sphinxsearch / elasticsearch
    postgresql
    neo4j / other graphDB
    в крайнем случае - mysql fulltext search

    поиск по характеристикам все равно будет неотделим, т.к. по наименованиям вообще просто ( поставил сфинкс/эластик), сложности начинаются в сопутсвующем: сортировка, подсказки и т.п.

    ориентироваться можно на 1-2 мес ЗП специалиста, увы, не дешевле $2k/мес (реальнее 3-4)
    Ответ написан
    3 комментария