1. JavaScript / Говнокод #16177

    +159

    1. 1
    https://software.intel.com/sites/billboard/article/simd-javascript-faster-html5-apps

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

    wvxvw, 16 Июня 2014

    Комментарии (275)
  2. JavaScript / Говнокод #16174

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    function EngineListCtrl($scope, $timeout, $http)
    {
    	$scope.engines = {};
    	$scope.workers = [];
    	
    	$scope.checkEngines = function(){
    		$http.get(engineUrl + '&type=json&jcmd=getClients').success(function(req){
    			var engines = {};
    			var workers = {};
    			$scope.workers = []; // Это в отрисовке не используется.
    			
    // Сначала распихиваю всех по местам
    			angular.forEach(req, function(ob, i){
    				if( ob.info.type == 'engine' )
    					engines[ob.info.engine] = ob;
    				
    				if( ob.info.type == 'worker' ){
    					if( workers[ob.info.engine] == undefined )
    						workers[ob.info.engine] = {};
    					workers[ob.info.engine][ob.info.worker] = ob;
    					if( ob.task && ob.task.state )
    						ob.info.state = ob.task.state;
    					$scope.workers.push(ob);
    				}
    			});
    			
    // Перебераю уже имеющиеся объекты
    			angular.forEach($scope.engines, function(engineOb, engineName){
    				var needRemove = true;
    				angular.forEach(engines, function(val, key){
    					if( engineName == key ){
    						angular.extend($scope.engines[engineName], val);
    						needRemove = false;
    					}
    				});
    				
    				if( needRemove == false && $scope.engines[engineName] ){
    					$scope.checkEngineEvents($scope.engines[engineName]);
    					if( workers[engineName] != undefined ){
    						if( $scope.engines[engineName].workers == undefined )
    							$scope.engines[engineName].workers = {};
    						angular.extend($scope.engines[engineName].workers, workers[engineName]);
    					}else
    						$scope.engines[engineName].workers = {};
    				}
    				
    				if( needRemove == true ){
    					delete $scope.engines[engineName];
    				}
    			});
    			
    // А теперь новые добавляю
    			angular.forEach(engines, function(engineOb, engineName){
    				if( $scope.engines[engineName] == undefined ){
    					$scope.engines[engineName] = engineOb;
    					if( workers[engineName] != undefined ){
    						if( $scope.engines[engineName].workers == undefined )
    							$scope.engines[engineName].workers = {};
    						angular.extend($scope.engines[engineName].workers, workers[engineName]);
    					}
    					$scope.checkEngineEvents($scope.engines[engineName]);
    				}
    			});
    			$timeout($scope.checkEngines, 2000);
    		});
    		
    	}
    	$timeout($scope.checkEngines, 1000);

    JovialLiX, 16 Июня 2014

    Комментарии (14)
  3. JavaScript / Говнокод #16167

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    function deposit(){ 
        if(document.getElementById("no_of_year").value=="1") { 
          document.getElementById("interest_rate").value="9.5" 
        } 
        if(document.getElementById("no_of_year").value=="2") { 
          document.getElementById("interest_rate").value="10" 
        } 
        if(document.getElementById("no_of_year").value=="3") { 
          document.getElementById("interest_rate").value="10.5" 
        } 
        if(document.getElementById("no_of_year").value=="4") { 
          document.getElementById("interest_rate").value="11" 
        } 
        if(document.getElementById("no_of_year").value=="5") { 
          document.getElementById("interest_rate").value="11.5" 
        } 
      }

    отсюда - http://stackoverflow.com/questions/24236980/values-not-passing-in-to-database

    zed_0xff, 16 Июня 2014

    Комментарии (0)
  4. JavaScript / Говнокод #16148

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    var pz = 1/Infinity;
    var mz = -1/Infinity;
    
    // неотличимы
    pz == mz; // true
    pz === mz; // true
    mz < pz; // false
    pz < mz; // false
    
    // но
    Math.min(pz, mz); // -0
    Math.max(pz, mz); // 0

    Так как же отличить -0 от +0?

    (-1.0 / mz) == Infinity?

    bormand, 11 Июня 2014

    Комментарии (6)
  5. JavaScript / Говнокод #16141

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    (function(G, D) {
        "use strict";
        var $ = G.jQuery,
            listener;
    
        function addListener(elem, fn) {
            function handler(event) {
                event = event || G.event;
                var dx = event.DeltaX || event.wheelDeltaX || event.detail || 0,
                    dy = event.DeltaY || event.wheelDeltaY || event.detail || 0;
                event.dx = dx === 0 ? 0 : dx / Math.abs(dx);
                event.dy = dy === 0 ? 0 : dy / Math.abs(dy);
                fn(event);
            }
    
            if (elem.addEventListener) {
                if (D.hasOwnProperty('onwheel')) { //Modern browsers
                    listener = "wheel";
                } else if (D.hasOwnProperty('onmousewheel')) { //Old browsers
                    listener = "mousewheel";
                } else { //FF<17
                    listener = "MozMousePixelScroll";
                }
                elem.addEventListener(listener, handler, false);
            } else { //IE<9
                elem.attachEvent("onmousewheel", handler);
                listener = "onmousewheel";
            }
        }
    
        function removeListener(elem) {
            if (elem.removeEventListener) {
                elem.removeEventListener(listener);
            } else {
                elem.detachEvent(listener);
            }
        }
    
        $.fn.mousewheel = function(fn) {
            return this.each(function() {
                addListener(this, fn);
            });
        };
        $.fn.unmousewheel = function(fn) {
            return this.each(function() {
                removeListener(this, fn, false);
            });
        };
    }(this, document));

    Написал плагин для jQuery, который цепляет на элементы обработчик события вращения колесика мыши. Что скажете? Как бы вы написали функцию unmousewheel()?

    dunmaksim, 10 Июня 2014

    Комментарии (103)
  6. JavaScript / Говнокод #16131

    +149

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    (function (G) {
        "use strict";
        var $ = G.jQuery;
    
        if ($ === undefined) {
            G.console.log("jQuery not found.");
            return;
        }
    
        function resizeContainer() {
            $("div.container").outerHeight($(G).innerHeight());
        }
    
        $(G).resize(resizeContainer);
    
        resizeContainer();
    }(this));

    Вот тут: http://jsfiddle.net/dunmaksim/NWN5f/3/ написал небольшой код, который позволяет сделать разметку на странице в стиле ModernUI. Высота контейнера автоматом подгоняется под высоту окна. Код прогнал через JSLint. Решение ориентировано на новые браузеры. Какие будут замечания? Замыкание использую для ограничения пространства имён.

    dunmaksim, 09 Июня 2014

    Комментарии (45)
  7. JavaScript / Говнокод #16127

    +162

    1. 1
    2. 2
    3. 3
    var interval = setInterval(function() {}, 10000);
        // get rid of the newline-removing interval
        for (var j = interval - 10000; j < interval + 10000; j++) { clearInterval(j); }

    Кусок юзерскрипта, позволяющего вставлять переносы строки в заданных вопросах на Tumblr.
    Это просто волшебно...

    Vindicar, 08 Июня 2014

    Комментарии (6)
  8. JavaScript / Говнокод #16083

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    // weclome to main-menu-hover.js
    function load(){
    	var url = window.location;
    	var m1 = document.getElementById("m1");
    	var m2 = document.getElementById("m2");
    	var m3 = document.getElementById("m3");
    	var m4 = document.getElementById("m4");
    	//var m5 = document.getElementById("m5");
    	var mm1 = document.getElementById("mm1");
    	var mm2 = document.getElementById("mm2");
    	var mm3 = document.getElementById("mm3");
    	var mm4 = document.getElementById("mm4");
    	var mm5 = document.getElementById("mm5");
    	var mm6 = document.getElementById("mm6");
    	var mm7 = document.getElementById("mm7");
    var mm8 = document.getElementById("mm8");
    	if (m1.href == url){
    	m1.style.color = "#ffc12b";
    	//m1.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat top center";
    	m1.style.textDecoration = "none";
    	}
    	if (m2.href == url){
    	m2.style.color = "#ffc12b";
    	m2.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m2.style.textDecoration = "none";
    	}
    	if (m3.href == url){
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    	if (m4.href == url){
    	m4.style.color = "#ffc12b";
    	m4.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m4.style.textDecoration = "none";
    	}
    	if (m5.href == url || url.href.indexOf(m5.href)!=-1){
    	m5.style.color = "#ffc12b";
    	m5.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg2.png)no-repeat center center";
    	m5.style.textDecoration = "none";
    	}
    	if (url.href.indexOf(mm1.href)!=-1){
    	mm1.style.color = "#741f0c";
    	mm1.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    	if (url.href.indexOf(mm2.href)!=-1){
    	mm2.style.color = "#741f0c";
    	mm2.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    	if (url.href.indexOf(mm3.href)!=-1){
    	mm3.style.color = "#741f0c";
    	mm3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    	if (url.href.indexOf(mm4.href)!=-1){
    	mm4.style.color = "#741f0c";
    	mm4.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    	if (url.href.indexOf(mm5.href)!=-1){
    	mm5.style.color = "#741f0c";
    	mm5.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    	if (url.href.indexOf(mm6.href)!=-1){
    	mm6.style.color = "#741f0c";
    	mm6.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    	if (url.href.indexOf(mm7.href)!=-1){
    	mm7.style.color = "#741f0c";
    	mm7.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
        if (url.href.indexOf(mm8.href)!=-1){
    	mm8.style.color = "#741f0c";
    	mm8.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/bg-min-menu-h.png)no-repeat center center";
    	m3.style.color = "#ffc12b";
    	m3.style.background = "url(%absolute_url_path%/wp-content/themes/%pattern%/images/menu-h-bg1.png)no-repeat center center";
    	m3.style.textDecoration = "none";
    	}
    }

    Пришел проект на поддержку... Сразу отказался=)
    Естественно вкрапления %_some_text_% от меня.
    Файл назывался main-menu-hover.js

    iHateBidlocod, 30 Мая 2014

    Комментарии (7)
  9. JavaScript / Говнокод #16082

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var percent = 0;
    setInterval(function() {
        if(percent < 100) {
            percent += 10;
            showprogress(percent);
        }
    }, 50);

    Прогресс-бар асинхронной загрузки картинки

    kissarat, 30 Мая 2014

    Комментарии (22)
  10. JavaScript / Говнокод #16040

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function FindPosOfStr(str1, str2) {
    	for (i = 0; i <= str1.length; i++) {
    		comp = str1.substring(i, str1.length);
    		comp = comp.substring(0, str2.length);
    		if (comp == str2) {
    			return i;
    			break;
    		}
    	}
    	return -1;
    }

    Вот такое вот веселье встретилось в одном проекте. Кто-то был сильно пьян и забыл про indexOf

    _rMX_, 22 Мая 2014

    Комментарии (77)