• Подскажите свежий учебник по С++

    monolithed
    @monolithed
    В бы рекомендовал начать в такой последовательности:

    The C++ Programming Language — Bjarne Stroustrup
    C++ for Real Programmer — Jeff Alger
    The Art of C++ — Herbert Schildt
    Algorithms in C++ — Robert Sedgewick
    Design Patterns: Elements of Reusable Object-Oriented Software — Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
    C++ Gotchas. Aoiding Common Problems in Coding and Design — Stephen C. Dewhurst
    C++ Templates: The Complete Guide — David Vandevoorde, Nicolai M. Josuttis
    The CERT C Secure Coding Standard — Robert C. Seacord
    More Effective C++: 35 New Ways to Improve Your Programs and Designs — Scott Meyers
    Effective C++: 55 Specific Ways to Improve Your Programs and Designs — Scott Meyers
    C++ Coding Standards — Herb Sutter, Andrei Alexandrescu
    C++ Concurrency in Action: Practical Multithreading — Anthony Williams
    Ну и со временем начать мониторить станадрат )

    PS: на сколько я помню, в некоторых книгах есть неточности и опечатки, так что будьте внимательны и начинайте именно с первой.
    Ответ написан
    5 комментариев
  • Необходимый уровень для работы джуниором?

    monolithed
    @monolithed
    Junior — это специст, который способен выполнять возложенные на него функциональные обязанности, со «скидкой» на отстутствие опыта работы в команде.
    Ответ написан
    Комментировать
  • Плагин для ограничения количества вводимых символов с поддержкой русского языка?

    monolithed
    @monolithed
    Принцип работы такой:

    (function(max, count, input) 
    {
        if (!count[0] && !input[0])
            return -1;
    
        var length = 0;
        
        input.bind('input change', function(event) 
        {  
            length = this.value.match(/[а-яё]/g).length;    
            count.text(length > max ? length - max : 0);
        });
    }(10, $('#count'), $('#input')));
    
    


    Если нужно оганичить ввод, то добавьте следующую строку:

    this.maxLength = length >= max ? max : 100;
    


    Пример работы тут

    PS: проверку окончаний сделаете сами
    Ответ написан
  • Как правильно загрузить JSON с другого домена?

    monolithed
    @monolithed
    //remote_host/file.js
    getJSON('{
    	"foo" : 0,
    	"bar" : 1
    }');
    


    <script>
    	var getJSON = function(data) {
                   try {
                          console.log(JSON.parse(data));
                   }
                   catch (error) {
                         console.log(eval('(' + data + ')'));
                  }
    	};
    	
    	(function() {
    		var script   = document.createElement('script');
    		script.type  = 'text/javascript';
    		script.async = true;
    		script.src   = '//remote_host/file.js';
    		document.body.appendChild(script);
    	}());
    </script>
    


    Причем, необязательно в функцию getJSON передавать JSON, можно и обычный объект, тогда использовать JSON.parse() не нужно.
    Ответ написан
  • Как исправить memory leak in IE при удалении и повторном создании переменной?

    monolithed
    @monolithed
    Переменные объявленные без спецификатора var становятся свойствами глобального объекта window (в серверной реализации global).
    К таким переменным допустимо применение инструкции delete:

    property = 1;
    
    top.property;    //1
    self.property;   //1
    window.property; //1
    


    Т.е. инструкция delete работает только со свойствами объектов.
    Например, допустимо удалять свойства встроенных объектов:

    Math.abs;        // function abs() { [native code] }
    delete Math.abs; // true
    Math.abs;        // undefined
    


    Соответственно, переменные объявленные со спецификатором var удалить нельзя:
    var variable = 10;
    delete variable; // false
    variable;        // 10
    


    PS: в консолях типа FF, Chrome, результат работы инструкции delete может быть не корректный.
    Ответ написан
    Комментировать
  • Надежны ли ноутбуки от HP?

    monolithed
    @monolithed
    Хороший вопрос...
    В прошлом году у одного из официальных дистрибьюторов купил ноутбук HP Probook 4710s, 17", Intel® Core™2 i3.

    С первых же часов работы начал перегреваться, списал на то что для 17" это нормально.
    Затем заметил еще одну особенность при использовании режима гибернации — каждый раз приходилось перезагружать ноутбук, т.к. из «спячки» он не выходил.

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

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

    Через неделю я позвонил и напомнил что уже прошло 1,5 месяца и попросил объснений. Мне сказали, что завтра они отправят мой жесткий диск производителю и обменяют на новый. В этот момент я насторожился и попросил их еще раз повторить сказанное. Мои опамения были не напрасными. Если бы я случайно им не позвонил то мой жесткий диск отправили производителю на исследования со всей личной информацией, т.к. перед отправлением они не форматируют диск и как выяснилось не сохраняют информацию, несмотря на то, что их об этом просили.

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

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

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

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

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

    Спустя неделю мне снова позвонили и просили привезти документы. За это время они отправили производителю жесткий диск и ровно через месяц мне вернулся новый без предустановленной ОС.

    Диски с ОС пришли через 3 недели.

    Это конечно мой личный опыт, возможно у вас все будет по другому.
    Ответ написан
    Комментировать