• Программирование деформирует человека как личность?

    @BarneyGumble
    Почитал комменты, ну...забавно слышать про выгорание и всё такое)

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

    Что мешает даунгрейдиться до джуна? Нагрузки с Вашим опытом будет вполовину меньше, будет хватать времени на все хобби. Что мешает? Ах, да...высокая зарплата...

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

    Я вижу проблему не в IT, не в специфике работы (да, есть и эта доля, но далеко не основная), а в том, что хорошие деньги = много работы, а программисты быстро привыкают к хорошим деньгам и соответствующему уровню жизни. Так что тут, или аппетиты подубавить, сменив работу на менее трудоёмкую, либо не ныть про выгорание.
    Ответ написан
    1 комментарий
  • Программирование деформирует человека как личность?

    65536
    @65536
    Деформирует. Все вокуг становятся законченными гуманитариями. Убивают своей нелогичностью, неспособностью оперировать более чем одной сущностью в единицу времени.

    Ну не все конечно. Многие.
    Ответ написан
    Комментировать
  • Реально в 36-40 лет стать тестировщиком или программистом если есть свободное время?

    Moskus
    @Moskus
    Реально, только есть тонкости.
    Во-первых, тестирование - как правило, самая "чёрная" и дешёвая работа в этой области.
    Во-вторых, программирование похоже на спорт: чем раньше начинаете, тем лучше результат. Это не значит, что у вас ничего не получится, просто многое может даваться с заметно большим трудом.
    В-третьих, стоит поинтересоваться, нет ли в уже знакомой вам области производства задач узкоспециализированного программирования. Как в машиностроении - программирование ЧПУ-станков или роботов, а также - автоматизация на PLC. Если вы научитесь чему-то такому, у вас будет преимущество опыта. А в каком-нибудь web вы будете ещё одним полным новичком из тысяч.
    Ответ написан
    2 комментария
  • Внезапное сообщение "доверяете ли вы этому сертификату"?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Внимание! Изменился адрес почты!
    Ну, здесь, конечно сбер лажанулся, но обычно такое сообщение означает, что Вас мониторят :) и пытаются подсунуть лажовый сертификат для сайта. Это обычная практика для корпоративных прокси... и для криворуких провайдеров, которые пытаются таким образом прогнуться перед РКН.
    Ответ написан
    Комментировать
  • Как определить свой уровень программирования?

    opium
    @opium
    Просто люблю качественно работать
    1000 часов Джуниор
    5000 часов мидл
    10000 часов сеньор
    Ответ написан
    6 комментариев
  • Неправильно работает промис, чяднт?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    forEach всегда возвращает undefined, нужен map
    Чтоб дождаться выполнения всех промисов в массиве используйте Promise.all
    итого:
    function checkSpec() {
                return driver.executeScript("var search = []; if (typeof xmlDataSpeclist !== 'undefined') {" +
                                                "$.each(xmlDataSpeclist, function (key, item) {" +
                                                    "search.push(" +
                                                    "'http://domain/?spec='" + " + item.id" +
                                                    ");" +
                                                "});" +
                                            "};" +
                                            "return search;"
                ).then((search) => {
                    return Promise.all(search.map(function(val, i) {
                        console.log(search.length); //debug printing
                        return new Promise((resolve, reject) => {
                            request(search[i], function(error, response, body){
                                if (error) {
                                    reject(error);
                                }
                                resolve(body);
                            });
                        }).then((body) => {
                            console.log(body);
                            assert.include(body, 'class="someClass"');
                        });
                    }));
                });
    
            }
    
            return checkSpec();
    Ответ написан
    1 комментарий
  • Неправильно работает промис, чяднт?

    vitali1995
    @vitali1995
    Нужно обернуть возвращаемые в цикле промисы в массив и в конце вернуть Promise.all(массив)

    Это действие запускает ожидание выполнения всех промисов в массиве. Возвращается также промис, у которого можно вызвать
    .then(...)
    .catch(...)

    А вообще предлагаю обратить внимание на нововведение: async/await - с ними жизнь становится в разы проще.
    Ответ написан
    2 комментария
  • Сделала rebase origin/develop в master, как вернуть обратно?

    @aol-nnov
    git reflog
    а потом - что угодно. например,git reset --hard
    Ответ написан
    2 комментария
  • Сделала rebase origin/develop в master, как вернуть обратно?

    romy4
    @romy4
    Exception handler
    Если вдруг захотите более детально разобраться с этими ветками, то [1] и [2] и про откаты
    Ответ написан
    1 комментарий
  • Сделала rebase origin/develop в master, как вернуть обратно?

    AMar4enko
    @AMar4enko
    Как насчет git reset --hard и указать нужный хеш коммита?
    Ответ написан
    2 комментария
  • Где можно наблюдать стримы по программированию?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    У себя дома:
    Системное под венду:
    - открываете 8 вкладок с MSDN, 4 со stackoverflow и иногда их скроллите.
    Системное под Linux:
    - открываете 8 вкладок со stackoverflow и консольку с man + исходники ядра
    Математическое:
    - открываете что угодно, все равно ничего не увидите - все самое интересное делается на бумажке, которая у стримящего лежит рядом с клавиатурой
    Высокопроизводительные вычисления, HPC, Нadoop:
    -купите 128 мониторов для начала
    Прикладное:
    - ну, вы знаете толк в извращениях, если хотите смотреть, как одинэсник пишет очередной унылый запрос на три листа, чтобы удовлетворить бухгалтершу.
    Ответ написан
    Комментировать
  • Node.js - имортируемая функция не видит переменные в текущей области видимости, решение?

    P.S. Не сразу понял, в чем именно ошибка. Моё предложение сделать вот так вот:
    В вспомогательном модуле:
    function testsHelper(driver) {
    	var _driver = driver;
    	function loadRegistrationForm() {
    		_driver.get('http:...');
    	    _driver.getTitle().then(function(title){
    	      if("..."===title){
    	        _driver.findElement(web_driver.By.xpath('html/body/div/header/div/div/div[2]/div[2]/a[1]'))
    	            .click();
    	      };
    	    });
    	  _driver.wait(function(){
    	    return _driver.isElementPresent(web_driver.By.name('fos_user_registration_form[email]'));
    	  }, 3000, 'Failed to load Registration form'); 
    	}
    	
    	// заполнение формы регистрации и проверка соответствия
    	function fillingRegistrationForm(inputEmail, inputPassword, errElement, errMessage) { 
    	  _driver.findElement(web_driver.By.name('fos_user_registration_form[email]'))
    	      .sendKeys(inputEmail); //вводим уже зарегистрированный email
    	  _driver.findElement(web_driver.By.name('fos_user_registration_form[plainPassword]'))
    	      .sendKeys(inputPassword); //вводим валидный пароль
    	  _driver.findElement(web_driver.By.id('btn-submit')).click();//сабмит
    
    	  _driver.wait(function(){
    	    return _driver.isElementPresent(web_driver.By.xpath(errElement));
    	  }, 3000, 'Элемент не найден'); //ожидание загрузки текста ошибки
    
    	  var flow = web_driver.promise.controlFlow();
    	  function getErrObject(){
    	    errObject = _driver.findElement(web_driver.By.xpath(errElement))
    	            .getText()
    	  } //берем объект элемента с текстом ошибки
    	  flow.execute(getErrObject).then(function(){
    	    if(errObject.value_ === errMessage){
    	      assert.equal(errObject.value_, errMessage);
    	      console.log('OK')
    	    };
    	  });
    	}
    	return {
    		fillingRegistrationForm: fillingRegistrationForm,
    		loadRegistrationForm: loadRegistrationForm
    	}
    }
    module.exports = testsHelper;


    В непосредственно тестах:
    var Helper = require(testsHelper.js);
    
    // инициализируем driver
    var driver = ...
    var helper = new Helper(driver);
    Ответ написан
    2 комментария
  • Node.js + mysql вложенные запросы, где ошибка?

    @denlem Автор вопроса
    Programmer
    Решение такое:
    Нужно было удалить connection.end() после первого connection.query().
    Соединение закрывалось и асинхронный вызов второй срабатывал после закрытия соединения.
    Потому соединение нужно либо закрывать правильно (внутри connection.query) , либо не закрывать вообще если скрипт работает постоянно
    Ответ написан
    Комментировать