• Как защититься от ситуаций одновременного редактирования данных разными пользователями?

    Fragster
    @Fragster
    помогло? отметь решением!
    Ввести дополнительное поле "версия", и при записи его увеличивать. Ну а перед записью проверять, чтобы версия совпадала с редактируемой. Это называется "Оптимистическая блокировка".
    Ответ написан
    Комментировать
  • Как в Chrome по-умолчанию поиск "ЗА ГОД"?

    qork
    @qork
    { background: #F00B42 }
    Правая кнопка на поисковой строке в браузере -> Изменить поисковые системы.
    Добавляешь свою систему GoogleCustom на домен google.ru
    Взял queryString из гугла по-умолчанию и в начало добавил tbs=qdr:y
    {google:baseURL}search?tbs=qdr:y&q=%s&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:iOSSearchLanguage}{google:searchClient}{google:sourceId}{google:instantExtendedEnabledParameter}{google:contextualSearchVersion}ie={inputEncoding}

    Не забудь поставить новый поиск поиском по-умолчанию.
    Ответ написан
    1 комментарий
  • Оптимальный способ работы с router-outlet?

    Из документации, как мне кажется, это ваш случай.
    Ответ написан
    Комментировать
  • Можно ли использовать LocalStorage для 15-минутного хранения данных?

    b0nn1e
    @b0nn1e
    Alcohol & Ruby on Rails
    ИМХО это должно разруливать или на стороне сервера или же это быть одна страница, с кучей скрытых частей.
    Ответ написан
    3 комментария
  • Можно ли использовать LocalStorage для 15-минутного хранения данных?

    Stalker_RED
    @Stalker_RED
    Можно.
    Или в сессию, как вам удобнее.
    Ответ написан
    Комментировать
  • Как тестировать функционал 1 раз и быть уверенным, что он не "сломался"?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Никак. regression тестирование как раз и занимается тем, что проверяет не сломалось ли ничего из старого функционала.
    Автоматизируйте.
    Ответ написан
    Комментировать
  • Какой из вариантов правильнее для функционального программирования JS?

    @abberati
    frontend-разработчик
    Ближе всего к ФП будет третий вариант:

    function formatData(element) {
      return formattedElement;
    }
    
    const formattedData = peoples.map(formatData);
    console.log(formattedData)
    Ответ написан
    Комментировать
  • Какой из вариантов правильнее для функционального программирования JS?

    pm_wanderer
    @pm_wanderer
    junior-HTML
    Чтобы увидеть преимущества функционального подхода, лучше написать пример немного другим образом. Сейчас у Вас в общем ничего функционального там и нет (наличие функций !== ФП):

    function formatter(item) {
        return "0" + item.toString();
    }
    
    function validator(number) {
        if (typeof number !== "number") {
            throw new Error("invalid argument: Number expected");
        }
        return number;
    }
    
    function formatData(array, formatter, validator) {
        return array.map(item => formatter(validator(item)));
    }
    
    alert(formatData([1, 2, 3], formatter, validator));


    PS: можно заморочиться и спроектировать более универсальные функции, но в качестве примера и так сойдет)
    Ответ написан
    6 комментариев
  • Как найти причину бага в Node? Неверная архитектура?

    @de1m
    Можно сделать debug вывод, если к примеру стартовать программу с ключом "-d".
    Но по уму наверное надо работать с объектов "Error" который выдаёт trace до ошибки.
    var winston = require('winston');
    //logger is configured to save output to log file
    var logger = new (winston.Logger)({
      level: level,
      transports: [
        new (winston.transports.File)({
          filename: '' + logdir + "/" + timeAct + '_' + program.server + '.log',
          json: false
        })
      ]
    });
    
    //add console output if debug is on
    if (program.debug) {
      logger.add(winston.transports.Console, { json: false });
    } else {
      if (program.debugfile) {
        logger = new (winston.Logger)({
          level: 'debug',
          transports: [
            new (winston.transports.File)({
              filename: '' + logdir + "/" + timeAct + "_" + program.server + '_debug_.log',
              json: false
            })
          ]
        });
      } else {
        //if error, write to console
        logger.add(winston.transports.Console, {
          level: 'error',
          json: false
        });
      }
    }
    Ответ написан
    Комментировать
  • Как найти причину бага в Node? Неверная архитектура?

    @LiguidCool
    Winston и все остальные в помощь.
    Ответ написан
    Комментировать
  • Как найти причину бага в Node? Неверная архитектура?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Комментировать
  • Программист в "громких" компаниях — возможно ли, и нужно ли?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Попасть в такие компании проще сейчас.

    На заре становления подобных компаний, трудовой процесс мог быть не согласованный, запрлаты маленькие (или нет вообще), офиса могло не быть. То есть ты мог попасть в нужное место в нужное время, познакомиться с проектом и присоединиться, а мог со всеми усилиями и кучей опыта не попасть просто потому что вы прошли рядом и не знали что могли оказаться друг другу полезными.

    Сейчас стремиться в подобные компании очень полезно в начале карьеры, поскольку крупные компании смогли стать таковыми не только из-за крутых программистов, но далеко не в последнюю очередь благодаря организации работы.
    Очень и очень многие компании рушатся, не переживя рост с 10-50 человек до хотя бы 300-500 из-за проблем управления, оказавшись недостаточно гибкими для расширения.
    Польза будет и в знакомстве с самой организацией самой работы, организацией проектов и инструментов, и множество опыта программистов вокруг.

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

    Ключевых программистов в таких компаниях не так много, как это может показаться.

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

    В дальнейшей карьере опыт работы в подобных компаниях очень заметен. И не только по восприятию девочек из HR, но и сам поймешь, что кроме программирования, в подобных компаниях приобрел опыт огромного количества различных нюансов, которые востребованы везде.
    Ответ написан
    5 комментариев
  • Программист в "громких" компаниях — возможно ли, и нужно ли?

    @awdemme
    1. Кто такой RockStar?
    Не знаю.

    2. В те годы, когда Фейсбук только начинался ("легко попасть" в вашей терминологии) - там внутри не было ничего сверхестественного в техническом плане. Так что толку в него попадать (если у вас конечно нет новостей из будущего какие бабосы срубили на акциях самые первых сотрудники) - не было ровным счетом никакого.

    3.
    Если взять за пример игры, то они за 15 лет сильно эволюционировали. И если в 90-ых достаточно было работать с 8-битными играми, то теперь это тонны кода в игровых физических движках

    Но при этом уровень разработчиков в среднем сильно упал. Попробуй сделай игру на железе, которое игру еле-еле тянет, как это было в 1980-1990-е годы. Не было движков? Нужно было все придумывать самому.
    А тонны кода в современных движках... И что? Тебе же не нужно весь этот код прочитать/написать, чтобы просто использовать движок.

    4.
    В одной из компаний, для программиста игровой физики, требуется 3-х летний опыт написания игровой физики.

    Мечтать не вредно.
    То что написано в объявлениях о работе для большинства фирм - не более чем мечты. Берут не тех, о ком пишут в вакансиях, а тех, кого удается найти.

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

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

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

    6. Стремиться ли туда попасть. Гм. Ну так то это полезно для профессионального роста. В УЖЕ крутые фирмы - да. Там полно квалифицированных коллег. Тебя быстро подтянут.
    Более того, если ты поработаешь в Яндексе года три, то после Яндекса тебя с руками и ногами оторвут фирмы попроще. И за зарплату повыше яндексовской.
    Ответ написан
    Комментировать
  • Актуален ли Lua в 2017? Где используется?

    @ralaton121
    Lua предназначен для встраивания в другое ПО.

    Используется, например, в СУБД Tarantool, в веб-сервере nginx есть модуль для БЫСТРОГО разруливания с помощью Lua, используется для программирования игровой логики в World of Warcraft.

    И много где еще и игровых движках:

    Agen (2D Lua; Windows)
    Amulet (2D Lua; Window, Linux, Mac, HTML5, iOS)
    Baja Engine (3D C++/Lua; Windows, Mac)
    Blitwizard (2D Lua; Windows, Linux, Mac)
    Cafu 3D (3D C++/Lua)
    Cocos2d-x (2D C++/Lua/JS; Windows, Linux, Mac, iOS, Android, BlackBerry)
    Codea (2D Lua; iOS (Editor is iPad app); $14.99 USD)
    Corona (2D Lua; Windows, Mac, iOS, Android)
    Cryengine by Crytek (3D C++/Lua; Windows, Mac)
    Defold (2D Lua; Windows, Linux, Mac, iOS, Android, Web)
    Drystal (2D Lua; Linux, HTML5)
    EGSL (2D Pascal/Lua; Windows, Linux, Mac, Haiku)
    gengine (2D Lua; Windows, Linux, HTML5)
    Glint 3d Engine (3D Lua, Development stopped in November 2011)
    Grail Adventure Game Engine (2D C++/Lua; Windows, Linux, Mac (SDL))
    Irrlicht (3D C++/.NET/Lua; Windows, Linux, Mac)
    Juno (2D Lua; Windows, Linux, Mac)
    Lavgine (2.5D C++/Lua, Windows)
    Leadwerks (3D C++/C#/Delphi/BlitzMax/Lua; Windows; $199.95 USD)
    LÖVE (2D Lua; Windows, Linux, Mac)
    Luxinia (3D C/Lua; Windows)
    MOAI (2D C++/Lua; Windows, Linux, Mac, iOS, Android, Google Chrome (Native Client))
    Polycode (2D&3D C++/Lua; Windows, Linux, Mac)
    Spring RTS Engine (3D C++/Lua; Linux, Windows, Mac)
    Ответ написан
    3 комментария
  • Массовое переименование файлов на Centos 7?

    JaxxDexx
    @JaxxDexx
    yum install mmv
    
    mmv 'a.*' 'b.#1'
    Ответ написан
    Комментировать
  • Массовое переименование файлов на Centos 7?

    @pfg21
    ex-турист
    Полноценный regexp есть в стандартной команде
    rename 's/old-name/new-name/' files
    Но если разбираться и искать влом поставь gprename ??
    Ответ написан
    Комментировать
  • Как в Angular 2/4, используя Observable и HTTP, получать асинхронные потоки?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    WebSocket должен решать вопрос актуального пуша данных.
    Ответ написан
    Комментировать
  • Где правильней делать постраничный вывод и фильтры списков — back-end или front-end?

    По хорошему, это делается так:
    Фронт-енд отвечает только за показ страницы по заданым фильтрам

    Все данные запрашиваются на бекенде в формате
    {
    skip: %Пропущенные страницы% * %элементов на страницу%, 
    limit: %элементов на страницу%, 
    filers: [ваши фильтры]
    }

    Бекенд соответственно делает выборку согласно полученым фильтрам с учетом skip и limit (монга их умеет)
    Ответ написан
    Комментировать
  • Где правильней делать постраничный вывод и фильтры списков — back-end или front-end?

    ArtyomovAnton
    @ArtyomovAnton
    PHP и всё что рядом
    до 10000 записей я обрабатываю на фронте. Более 10 тыщ, на бэке. Это при условии, что я заранее точно знаю лимит записей в проекте. Если лимит не знать (база комментов, юзеров), то на бэкенде делать.
    Ответ написан
    3 комментария
  • Правильный обмен JSON между клиентом и сервером?

    cashalot
    @cashalot
    Если я вам помог - пометьте мой ответ как решение
    stringify преобразует массив в строку и все. То есть, если у вас уже строка данных в виде {"data":data,"nodata":nodata} - то делать ничего не надо. А если у вас массив
    array = {
    data = "data",
    nodata = "nodata"
    }

    То тогда перед оправкой его надо превратить в строку JSON.stringify(array);
    Ответ написан
    Комментировать