• JS есть ли способ узнать по IP примерное расположение?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    Ответ написан
    Комментировать
  • Как определить в браузере с какой OS зашел пользователь?

    Zoominger
    @Zoominger
    System Integrator
    Смотрите его User-Agent.
    Там и про браузер есть и про разрешение экрана даже.
    Ответ написан
    7 комментариев
  • Две группы программистов решают задачи - что за эксперимент?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    на работе найдешь. Этой задаче как гуану мамонта - сто лет в обед: когда нужно делать последовательно, любой дурак сделает быстрее, это знает любой ПМ

    проблемы начинаются, когда последовательно приплывают НЕ ТУДА, и туда "не туда", что приходится начинать все с начала, а не с какого-либо этапа

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

    а если что-то где-то получилось на сколько-то больше-меньше - всегда включай голову и ищи обратную сторону медали
    Ответ написан
    Комментировать
  • Мотивация программистов на удаленке. Что делать?

    Sanes
    @Sanes
    4 часа на задачи и 1 час на менеджмент. Итого 25 часов в неделю.
    Всё, что больше, либо обман, либо скоро этот работник уйдет в запой. Из-за высокой нагрузки.

    ps. Я бы фултайм ограничил 5-6 часами. Толку всё равно не будет от 8 часов и более.

    Попробуйте сократить время рабочего дня и регламентировать перерывы. Наверняка тоже самое будут чекать.
    Сейчас они от усталости балду гоняют и ждут окончания рабочего дня.
    Ответ написан
    11 комментариев
  • Как оценить консалтинг в сфере Web разработки?

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

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

    те прикидки которые выходят, выдают - на мой взгляд - пугающую цену.

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

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

    @Fixid
    Для локальной разработки только выпустить самоподписанный и импортировать его в систему. Тогда он будет считаться валидным в пределах системы
    Ответ написан
    Комментировать
  • Насколько вообще нужны менеджеры состояний?

    @abberati
    frontend-разработчик
    Стейт менеджер нужен для консистентного управления состоянием приложения, внезапно.
    Если вы не пользуетесь менеджером состояния в реакт-приложении, то либо используете контекст (вот хорошее объяснение, почему на проде так делать не нужно), либо пишете заведомо неподдерживаемое приложение. Ну или ваше приложение — это игра в крестики-нолики с двумя полями в стейте корневого компонента.

    Большие приложения нельзя писать без стейт-менеджера — это выльется в огромную неподдерживаемую кучу спагетти.
    Ответ написан
    2 комментария
  • Насколько вообще нужны менеджеры состояний?

    @dimoff66
    Кратко о себе: Я есть
    Нигде вы не должны использовать 100% менеджер состояний. У него на мой взгляд два назначения:

    1) Отделить данные от компонентов, чтобы не прокидывать данные через(или в) 10 дочерних компонентов
    2) Унифицировать доступ и запись к данным, это удобно. Все данные и структура их хранения в одном месте, запись происходит одними и теми же экшинами, а не как Год на душу положит. И получение данных из одного источника с одним именем, а не как взбредет в голову создателю нового компонента.

    Такая форма стала дефакто основной в вэб-разработке. Кому-то она нравится, кому-то нет, но необходимости в конкретном проекте использовать менеджер, а тем более конкретный менеджер, нет и не будет.
    Ответ написан
    Комментировать
  • Насколько вообще нужны менеджеры состояний?

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    Redux используется как "глобальная переменная", в которую можно положить и взять из любой точки приложения.

    Вот в этой статейке более подробно расписано.
    Ответ написан
    Комментировать
  • React OnClick fun is udefined?

    @dimoff66
    Кратко о себе: Я есть
    Object.keys(manage.UserBy).map(function(key) {

    замените на стрелочную функцию, так как у обычных функций свой this, от личный от контекста, в котором они вызываются, потому и не работает.

    Object.keys(manage.UserBy).map(key => {

    PS Но по хорошему весь кусок я бы переписал так:

    {Object.entries(manage.UserBy).map(([key, value]) => 
      key == "id" 
       ? <button onClick={this.handleClick} >Удалить</button>  
       : <div>{`${value} ${manage.price}%`}</div> 
    )}
    Ответ написан
    3 комментария
  • Как в socket.io передать JWT?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    для websocket, например, при запросе на маршрут ws://host (запрос установления соединения/handshake)
    1) передавать в заголовке Authorization: Bearer (если по стандарту oauth)
    2) при авторизации выдавать куки и тогда они сами будут прокидываться при установке соединения

    вот тут пример как прокидывать заголовки

    или разруливать на уровне бизнес-логики:
    1) хранить карту connection-id -> user и обратную
    2) реализовать метод login/logout
    3) в остальных методах проверять на статус авторизации при попытке обращения к ним
    Ответ написан
    Комментировать
  • JSX сложное сравнение?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    const userRole = isAuthenticated().direct.role;
    
    ['Директор', 'Управляющий' , 'role name'].includes(userRole) ? ...code... : ...code... ;


    Правда, проблемы у вас всё равно есть. Самая очевидная - этот код падает, если юзер не авторизован и isAuthenticated возвращает false, а вы пытаетесь у этого значения свойство direct получить.
    Ответ написан
    3 комментария
  • JSX сложное сравнение?

    @vadimMalovaniy
    ты понимаешь что сравниваешь только одну роль? isAuthenticated().direct.role === "Директор"
    "Бухгалтер" ? (<Sub>)... всегда будет true.
    Ответ написан
    Комментировать
  • JSX сложное сравнение?

    @Dasslier
    FrontEnd Developer
    Вы должны каждый раз проверять результат выполнения функции, или вынесите этот результат в переменную. То есть вы ожидаете, что будет выполняться так:
    {isAuthenticated().direct.role === "Директор" || isAuthenticated().direct.role === "Управляющий" || isAuthenticated().direct.role === "Бухгалтер" ? (
                        <Button
                          type="danger"
                          onClick={userId => this.handleClick(user._id, userId)}
                        >
                          Удалить Пользователя
                        </Button>
                        ):("")}


    Но по факту делаете только первое сравнение, а дальше идет просто проверка на строку, и т.к. она не пустая, то всегда получаете true

    И JSX тут не при делах, это вопрос к пониманию JavaScript

    И еще, рендерите не пустую строку в случае false, а null
    Ответ написан
    Комментировать
  • JSX сложное сравнение?

    @curious-101
    Frontend developer
    isAuthenticated().direct.role === 'Директор' || isAuthenticated().direct.role === 'Управляющий' ... дальше, думаю догадаетесь сами
    Ответ написан
    2 комментария
  • Что должен знать Middle Node.js Developer?

    @maximtark Автор вопроса
    JavaScript фанатик
    Возвращаясь почти через 2 года к своему же вопросу, хотелось бы ответить на вопросы, которые сам же и задал. Может кому-нибудь будут полезны мои выводы. :)

    1 Есть. Их много. Но они бесполезны без понимания(!) REST на уровне абстракций. Буквально через пару дней после данного вопроса попал в контору, где год занимался только им. Наступил на грабли от того, что очень сильно привязывался к возможностям платформы(Node.js) и оглядывался на документацию. Пытаясь делать "правильно" я набил немало шишек, а потом просто начал делать его для людей. никто не оценит правильности... Особенно мобильные разработчики(¯\_(ツ)_/¯). Вывод: вопрос некорректен.

    2 Да. А насколько в добротную контору - тут уже от случая/настроения/чего-еще зависит. Ну и от уровня разработчиков, которые претендуют на желаемую позицию. "Топового"(слова знакомого HR) разраба найти сложно, долго и дорого. Так что всегда можно заполнить будни рекрутеров своей скромной персоной. Проходить собеседования и продавать себя - это тоже уметь нужно.
    2-1 Ключевое слово "опыт". Нужно убедить потенциального работодателя, что пет-проект(или целый зоопарк из них) потенциально жизнеспособен. К сожалению, никто так по достоинству не оценил мой векторный макет Земли, положение которой зависит от часового пояса/текущего времени, вокруг которой летают все известные спутники из стороннего API(ну круто же! они еще и кликабельные были!). Зато по достоинству оценили жалкое подобие конструктора простых блогов. Одно из топ-3 самых больших разочарований в моей жизни. :(
    2-2 Да. Однозначно. Однозначно приходить, слушать и говорить, только если есть что сказать.

    3 Ну тут вообще эпик. Для себя выделил только один полезный навык. "Искать подходящую отвертку чтобы открутить дверь. А не дверь чтобы открутить её своей отверткой". Серебряной пули не существует. Вывод: вопрос некорректен.
    upd: Как спойлер - TypeScript выучить таки пришлось, CoffeeScript ни разу не пригодился(хотя был моим мейном).

    4 Только google.com, доки и холодное сердце, которое готово в любой момент переварить негодование от погружения в исходники. Ну еще иногда можно подсмотреть в Open Source.
    4-1 Я не знал, что в Open Source меня тоже могут научить курить/браниться/писать плохой код(нужное подчеркнуть). И я об этом очень жалею.

    Итог. Мне бы действительно хотелось дать развернутые ответы без какой-либо воды. Да не могу. К превеликому сожалению, 2 года назад я еще не умел задавать правильные вопросы.

    "Senior, Senior, сплошные Senior... Хипстеры! Еще укротителями типизации назовитесь! Порасплодилось, блин, JS генералисимусов! Понавешали на себя титулов! Кто работать будет? Не отдел, а сборище аристократов, undefined мне в трудовую.."
    © Tech Lead Миша негодует в курилке. 2016
    Ответ написан
    1 комментарий
  • Js роутиниг как узнать URI/URL адрес страницы?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    console.log(document.location)
    Ответ написан
    Комментировать
  • Как устроена библиотека Firebase?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Метод возвращает объект, у которого есть следующий метод и так далее.
    Примерно так:
    const collection = {
      ... и т.д.
    }
    
    const firestore = {
      collection: (name) => return collecton,
    }
    
    const firebase = {
      firestore: () => return firestore
    };


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

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Мозг каждый день кипит так же, как в первый день. Шаг влево шаг вправо, и вот, я уже ничего не знаю и ничего не умею... ощущение, что на работе я как будто не прогрессирую, а наоборот деградирую...

    У меня такое было, когда я только перешел во фронтенд и пытался держать слишком много деталей о языках и инструментах в голове. Со временем понял, что это не имеет смысла - все меняется быстрее, чем я запоминаю. Перешел от мысли "я использую инструменты" к мысли "я делаю штуки" и сразу полегчало, стал держать в голове только общие идеи о том, как что-то делается, или что вообще бывает в какой-то области, а конкретные инструкции по применению отдельных инструментов изучаю по ходу дела. Изменил фокус своего самообразования, если это можно так назвать. В результате все препроцессоры слились в один, новые библиотеки становятся все менее сложными в освоении, поскольку идеи везде плюс-минус одинаковые и.т.д. Решения стало принимать гораздо проще. И аргументировать тоже. Иногда складывается такое впечатление, что у нас в отрасли совсем ничего не появляется нового уже лет пять, а то и больше. Да, я забываю как использовать флексы, путаю call() и apply(), гуглю свои же ответы на тостере, но это не важно. Голова занята решением проблем, в ней теперь нет никакой второстепенной информации и это очень здорово. Статьи писать тоже полезно оказалось - написал, "поставил на полочку", и забыл. А если будет нужно - можно достать и посмотреть. Таким образом вот эта вся фигня с закипанием мозгов практически ушла.
    Ответ написан
    1 комментарий