• Как для одного домена отвечать с разных серверов?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    upstream files_backend {
        server 2.2.2.2;
    }
    
    server {
        location /files/ {
            proxy_pass http://files_backend;
        }
    }
    Ответ написан
    2 комментария
  • Qiwi оплата, можно ли реализовать?

    Sanes
    @Sanes
    Нет. Из адекватных методов для физ. лица остались только Яндекс Деньги с http уведомлением.
    Ответ написан
    Комментировать
  • Делаете ли вы гимнастику для глаз?

    oxojeck
    @oxojeck
    Я пользуюсь eyeleo.com, очень помогает глазам
    Ответ написан
    1 комментарий
  • Какие задачи решает реактивное программирование?

    @lega
    wikipedia говорит - в общем распространение изменений, как в формулах exсel таблиц

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

    Если реализовывать такую таблицу в императивном стиле то после изменения одной ячейки нужно обходить все остальные ячейки и делать их пересчет (т.к. конечная ячейка сама тянет данные от которых зависит), после этого нужно делать ещё проход и ещё т.к. если более поздние ячейки изменяют более ранние ячейки, то ячейки зависимые от более ранних будут не актуальны. Вообщем это большая нагрузка и все будет тормозить в отличие от "точенного" изменения в реактивном стиле.
    Ответ написан
    Комментировать
  • Какие задачи решает реактивное программирование?

    @Hydro
    C#/.NET Developer
    Надеюсь, что правильно понял Ваш вопрос.

    Пример

    Храню в БД фото с марса в формате HD, делаю запрос на 100 фотографии, задача - показать 100 фоток последовательно на экране.

    Стандартный поход: делаю запрос к базе на 100 фотографии, жду 2 секунды, получаю массив из 100 фотографии,
    итератором бегаю по коллекции и показываю картинки на экране
    псевдокод:

    pics = GetPicsFromDatabase();
    foreach(var pic in pics)
      ShowPic(pic)


    Реактивный подход: делаю запрос к базе на 100 фотографии и обработчику запроса задаю коллбек, обрабатывающий следующий элемент коллекции

    псевдокод:
    // somecode
    GetPicsFromDatabaseReactive(NextPictureHandler);
    // somecode
    NextPictureHandler(Image pic)
    {
      ShowPic(pic)
    }

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

    Что это нам дает?
    Асинхронность - в UI например это дает отзывчивость)
    Масштабируемость - источник данных (коллекция картинок) и приемник (наш псевдкод, показывающий картинки) не связаны, отсутствие связи дает нам возможность подключить хоть 10 обработчиков картинок (пример один в черно-белом выводит, другой сепию накладывает и т.п.)
    Отказоустойчивость достигается тем, что если сдох первый обработчик, например в его треде вылетел эксепшн, который повалил тред (прошу прощения за грубый пример), то действие выполнится резервным обработчиком (мы же их можем навешивать хоть 10, правда?)
    Ответ написан
    3 комментария
  • Насколько актуально\необходимо ООП в вебе?

    на Java даже одна строчка в стиле ООП. Уточни язык)
    Ответ написан
    Комментировать
  • Можно ли решать олимпиадные задания про программированию на PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    можно, язык программирования для олимпиадных задач по программирования важен настолько же, насколько эти самые олимпиадные задачки для реальных навыков.
    Ответ написан
    2 комментария
  • Как записать консольный вывод в файл?

    EugeneP2
    @EugeneP2
    Java Dev
    Самый простой вариант, это в консоле, когда запускаете свою программу

    java Game>file.txt
    или
    java -jar Game.jar>file.txt

    Второй вариант, тоже простой, переопределить System.out

    static {
    		try {
    			System.setOut(new PrintStream(new File("file.txt")));
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static void main(String[] args) throws FileNotFoundException {
    
    		System.out.println("Hello World!"); // будет записано в файл
    	}
    Ответ написан
    Комментировать
  • Почему возвращается нуль?

    trushka
    @trushka
    var count = $(".container>*").length; // =3 - количество элементов непосредственных потомков
    var count = $(".container *").length; // =6 - количество потомков вместе с их "детьми"))
    Ответ написан
    Комментировать
  • Регрессионое автотестирование бизнес-процессов - как правильно?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. В тестах развилок не может быть! Другими словами Вы всегда должны разбивать тестируемый код на участки. До условия это один участок кода. Ветка кода с if-true(т.е. когда условие true). И ветка кода с if-false(т.е. когда условие ложно). Это три разных тестовых сценария. Вам будет проще для сопровождения.

    Тесты должны быть как можно проще!!! Было А, нажали что-то, Должно быть Б. Если не так, то заводим багу!

    2. Прежде чем писать тест надо задаться вопросом "А если здесь будет бага, то что это будет значить для бизнеса?" ответ "Клиенты массово будут просить денег обратно" - значит надо писать тест "Клиент купит, но будет недоволен" - нужно думать стоит ли писать тест? Вдруг есть более важные участки кода
    Ответ написан
    2 комментария
  • Как вызывать команду git с любой папки?

    DevMan
    @DevMan
    прописать путь в PATH.
    blog.countableset.ch/2012/06/07/adding-git-to-wind...
    Ответ написан
    Комментировать
  • Как ускорить работу программисту?

    customtema
    @customtema
    arint.ru
    1. Проектировать решения, прежде чем писать код. Цветными фломастерами в тетрадке. Записывать микроТЗ, прежде чем писать код. В тетрадку или в любой текстовый редактор. Вообще, код написать просто, вы в курсе, да? Придумать, что написать - это другой вопрос.
    2. Использовать личный список задач, вне зависимости от того, что используют коллеги. Если требуют использовать корпоративный - используйте его и личный. Любой таск-менеджер, а еще лучше - записывать даже самые мелкие задачи в тетрадку и вычеркивать при изменении статуса цветным фломастером.
    3. Работать ритмично. N минут работы, M минут отдыха, где N от 20 до 90, M от 5 до 20.
    4. Заняться физкультурой. Обязательно каждый день гулять. Здоровое питание, полный отказ от алгоколя и кофе, принимать витамины курсами.
    5. На работе заниматься только работой. Не на работе работой не заниматься. Можно завести два телефона (или двухсимочный телефон) и отключать симки, в зависимости от времени дня и других факторов. Не использовать мессенджеры, скайп, джаббер, аську и т.д. Не отвлекаться на соцсети и т.д.


    Эти простые вещи помогли мне увеличить продуктивность примерно в десять раз.

    И да, вы используете VCS и фреймворки?
    Ответ написан
    3 комментария
  • Как ускорить работу программисту?

    27cm
    @27cm
    TODO: Написать статус
    Хотите открою секрет, как ускорить абсолютно любой процесс?

    1. Определите самую затратную по времени часть процесса (факторы, замедляющие процесс).
    2. Придумайте, как ускорить/автоматизировать/перепоручить/удалить эту часть (избавиться от факторов).
    3. Вернитесь к шагу 1.

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

    В вашем случае попробуйте из тех 40 задач вспомнить те, которые заняли наибольшее время. А ещё лучше - начните замерять время выполнения задач, которые будете делать. Проанализируйте, почему на одни задачи вы тратили больше времени, чем на другие. В итоге должны выявить конкретно вашу проблему, замедляющую работу, вот её и решайте.
    Ответ написан
    2 комментария
  • Начинаю программировать на Java, что не так в данной программе?

    fornit1917
    @fornit1917
    программа не компилируется на ideone.com и на других компиляторах , что не так?


    Компилятор выводит сообщение об ошибке. В нем написано, "что не так"
    Ответ написан
    Комментировать
  • Как достать данные из одного поля?

    martin74ua
    @martin74ua Куратор тега MySQL
    Linux administrator
    а как одно и тоже var может быть равно двум разным значениям???
    Ответ написан
  • Как периодически запускать клик по 5 элементам?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    setInterval($("#one, #two, .class, div").click, 5000);


    Имитация клика по всем элементам с указанными селекторами раз в 5 секунд.
    Ответ написан
    2 комментария
  • Почему при переборе 2х мерного массива данные сохраняются во втором уровне, но не сохраняются в 1?

    @riente
    Когда вы делаете $data['theme'] = 'спектакль', вы присваиваете строку переменной $data['theme'], но не элементу массива $row.
    Но если передавать по ссылке, то при изменении значения в $data, они затронут и исходный массив.
    Ответ написан
    Комментировать
  • Как обработать большое число?

    AnnTHony
    @AnnTHony
    Интроверт
    Работать с такими огромными числами нет смысла.
    Проще обрабатывать только последние символы, т.е. для 100^100, например:
    - 100*100 = 10000
    - переводим 10000 в строку
    - если длина '10000' > 10, то берем только последние 10 символов
    - переводим эти символы снова в число
    - запускаем цикл от 1 до 98 (100 - 2) и перемножаем это число на 100 (98 раз), каждый раз беря только последние 10 символов
    Ответ написан
    4 комментария