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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    }
                        if(selector.length!=0 && selector.charAt(0)=='z'){
                            $('html').find(selector.substr(1,selector.length))
                                .attr('value',value);
                        }

    проект-клондайк, пример с сегодняшнего коммита

    makc3d, 16 Мая 2015

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

    +143

    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
    } else if(hostname.indexOf('.google.')>-1){
    		/* Google */
    
    
    		if(hostname.startsWith('docs.google.') || hostname.startsWith('drive.google.')){
    			document.addEventListener('DOMContentLoaded', function() {
    				var target = document.querySelector('#drive_main_page [aria-live="assertive"]');
    
    				var observer = new MutationObserver(function(mutations) {
    					mutations.forEach(function(mutation) {
    						if(mutation.type == 'childList' &&
    							mutation.addedNodes.length == 1 &&
    							mutation.addedNodes[0].innerHTML.match(/\/\/support.google.com\/drive\/\?p=system_requirements"/)){
    							mutation.target.innerHTML = '';
    							observer.disconnect();
    						}
    					});
    				});
    
    				console.log('Google, please make sure your obfuscator does not change class names, so our patch continues working (or stop browser-sniffing as we both use and contribute to Blink!) - love, Opera.');
    				observer.observe(target, {childList: true, subtree:true});
    			}, false)
    
    			log('PATCH-1191, Still an "unsupported browser" according to Google');
    		}
    		if(hostname.startsWith('mail.google.')){
    			addCssToDocument2('div.n6 {display: block !important} table.cf.hX{display:inline-table}');//"more", labels
    			log('PATCH-1163, No "More" button in Gmail and misaligned labels');
    		}
    		if(hostname.startsWith('translate.google.')){
    			document.addEventListener('DOMContentLoaded',
    				function(){
    					var obj = '<object type="application/x-shockwave-flash" data="//ssl.gstatic.com/translate/sound_player2.swf" width="18" height="18" id="tts"><param value="//ssl.gstatic.com/translate/sound_player2.swf" name="movie"><param value="sound_name_cb=_TTSSoundFile" name="flashvars"><param value="transparent" name="wmode"><param value="always" name="allowScriptAccess"></object>';
    					var aud = document.getElementById('tts');
    					if(aud && aud instanceof HTMLAudioElement && aud.parentNode.childNodes.length == 1){
    						aud.parentNode.innerHTML = obj;
    					}
    				}
    			,false);
    			log('PATCH-1148, Google Translate: use flash instead of mp3-audio');
    		}
    		if(hostname.startsWith('www.google.') || hostname.startsWith('google.')){
    			addCssToDocument2('#prt {visibility:hidden}')
    			log('PATCH-1197, Hide Chrome ad from main Google page');
    		}
    		if(pathname.indexOf('hangouts')==-1){
    			var _newUA = navigator.userAgent.replace(/ ?OPR.[0-9.]*/, '');
    			Object.defineProperty(window.navigator, "userAgent", {
    				get: function() {return _newUA}
    			});
    
    			log('PATCH-1176, Navigation keys are not working on Google - hide Opera tag from userAgent for all sites except hangouts');
    		}
    	} else if(hostname.indexOf('.youtube.com')>-1){
    		addCssToDocument2('#movie_player { z-index: 100 !important; }');
    		log('PATCH-1185, youtube.com - show video above playlist');
    	}

    Кажется, кто-то продолжает есть меня, несмотря на колючки. Кто угадает, откуда этот код, тому ничего.

    kaktus, 16 Мая 2015

    Комментарии (4)
  3. PHP / Говнокод #18178

    +141

    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
    $page = strtoupper($_SERVER['REQUEST_URI']);
        if (strpos($page, "%D0%A2%D0%BE%D0%BF10")){
          echo "<li class=\"active\"><a  href=\"/%D0%A2%D0%BE%D0%BF10\">Топ-10</a></li>";
        } else {
          echo "<li><a href=\"/%D0%A2%D0%BE%D0%BF10\">Топ-10</a></li>";
        }
        if (strpos($page, "%D0%A2%D1%80%D0%B0%D1%84%D0%B8%D0%BA")){
          echo "<li class=\"active\"><a  href=\"/%D0%A2%D1%80%D0%B0%D1%84%D0%B8%D0%BA\">Трафик</a></li>";
        } else {
          echo "<li><a href=\"/%D0%A2%D1%80%D0%B0%D1%84%D0%B8%D0%BA\">Трафик</a></li>";
        } 
        if (strpos($page, "%D0%9B%D0%B8%D0%B4%D0%B5%D1%80")) {
          echo "<li class=\"active\"><a  href=\"/%D0%9B%D0%B8%D0%B4%D0%B5%D1%80\">Лидер</a></li>";
        } else {
          echo "<li><a href=\"/%D0%9B%D0%B8%D0%B4%D0%B5%D1%80\">Лидер</a></li>";
        }

    ...а кроме того, в данном случае strtoupper бесполезен

    olvin, 15 Мая 2015

    Комментарии (1)
  4. Си / Говнокод #18177

    +124

    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
    void UPStr(char *str)
    {
        while (*str)
        {
            switch (*str)
            {
                case 'а': *str = 'А'; break;
                case 'б': *str = 'Б'; break;
                case 'в': *str = 'В'; break;
                case 'г': *str = 'Г'; break;
                case 'д': *str = 'Д'; break;
                case 'е': *str = 'Е'; break;
                case 'ё': *str = 'Ё'; break;
                case 'ж': *str = 'Ж'; break;
                case 'з': *str = 'З'; break;
                case 'и': *str = 'И'; break;
                case 'й': *str = 'Й'; break;
                case 'к': *str = 'К'; break;
                case 'л': *str = 'Л'; break;
                case 'м': *str = 'М'; break;
                case 'н': *str = 'Н'; break;
                case 'о': *str = 'О'; break;
                case 'п': *str = 'П'; break;
                case 'р': *str = 'Р'; break;
                case 'с': *str = 'С'; break;
                case 'т': *str = 'Т'; break;
                case 'у': *str = 'У'; break;
                case 'ф': *str = 'Ф'; break;
                case 'х': *str = 'Х'; break;
                case 'ц': *str = 'Ц'; break;
                case 'ч': *str = 'Ч'; break;
                case 'ш': *str = 'Ш'; break;
                case 'щ': *str = 'Щ'; break;
                case 'ъ': *str = 'Ъ'; break;
                case 'ы': *str = 'Ы'; break;
                case 'ь': *str = 'Ь'; break;
                case 'э': *str = 'Э'; break;
                case 'ю': *str = 'Ю'; break;
                case 'я': *str = 'Я'; break;
    
                case 'a': *str = 'A'; break;
                case 'b': *str = 'B'; break;
                case 'c': *str = 'C'; break;
                case 'd': *str = 'D'; break;
                case 'e': *str = 'E'; break;
                case 'f': *str = 'F'; break;
                case 'g': *str = 'G'; break;
                case 'h': *str = 'H'; break;
                case 'i': *str = 'I'; break;
                case 'j': *str = 'J'; break;
                case 'k': *str = 'K'; break;
                case 'l': *str = 'L'; break;
                case 'm': *str = 'M'; break;
                case 'n': *str = 'N'; break;
                case 'o': *str = 'O'; break;
                case 'p': *str = 'P'; break;
                case 'q': *str = 'Q'; break;
                case 'r': *str = 'R'; break;
                case 's': *str = 'S'; break;
                case 't': *str = 'T'; break;
                case 'u': *str = 'U'; break;
                case 'v': *str = 'V'; break;
                case 'w': *str = 'W'; break;
                case 'x': *str = 'X'; break;
                case 'y': *str = 'Y'; break;
                case 'z': *str = 'Z'; break;
            }
            ++str;
        }
    }

    vr8h, 15 Мая 2015

    Комментарии (55)
  5. PHP / Говнокод #18176

    +145

    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
    <?
    for ($i = 1; $i <= 100; $i++) {
        $t1 = $i / 3;
        $t2 = $i / 5;
        if (preg_match("/\./", "$t1") == false && preg_match("/\./", "$t2") == false) {
            echo "FizzBuzz<br>";
        } else {
            if (preg_match("/\./", "$t1") == false) {
                echo "Fizz<br>";
            } else {
                if (preg_match("/\./", "$t2") == false) {
                    echo "Buzz<br>";
                } else {
                    echo "$i<br>";
                }
            }
        }
    }
    ?>

    ZF...

    Yshk, 15 Мая 2015

    Комментарии (2)
  6. Java / Говнокод #18175

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static class NoNullListMap<KEY, VALUES> extends HashMap<KEY, List<VALUES>> {
            @Override
            public List<VALUES> get(Object key) {
                List<VALUES> res = super.get(key);
                if (res == null) {
                    res = new ArrayList();
                    super.put((KEY) key, res);
                }
                return res;
            }
        }

    мапа, возвращающая пустые списки вместо null

    olegsemeniuk, 15 Мая 2015

    Комментарии (2)
  7. Objective C / Говнокод #18173

    −407

    1. 1
    Autoresizing mask -> Autolayout -> Size classes -> "android layout" (на apple watch)

    Эволюция "автонастройки" размеров в iOS или что бывает если один раз нормально не сесть и подумать.

    Для тех кто не в теме - все вышеперечисленное может быть в одном проекте одновременно.

    Gerchicov-bp, 15 Мая 2015

    Комментарии (3)
  8. PHP / Говнокод #18172

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $phsms = '';
    
    for($p=0;$p<strlen($phonesms);$p++)
        if(intval($phonesms[$p]) >= 0) $phsms = $phsms.intval($phonesms[$p]);
    
    preg_match('/.*(9[0-9]{2})([0-9]{7})/', $phsms, $match2);
    
    $phsms = $match2[1].$match2[2];

    Валидируем телефоны.

    aego09, 15 Мая 2015

    Комментарии (1)
  9. PHP / Говнокод #18171

    +143

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function buildUpdateTimestampTrigger($tableName) {
    		return 
    			sprintf(
    				file_get_contents(SQL_FILES_PATH . 'updateTimestamp_PlPg.sql'),
    				strtolower($tableName) . '_updated'
    			) .
    			sprintf(
    				file_get_contents(SQL_FILES_PATH . 'updateTimestampTrigger.sql'),
    				$tableName
    			);
    	}

    artembegood, 14 Мая 2015

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

    +143

    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
    <script type="text/javascript">
    	function Show(a) {
    	        obj1=document.getElementById("mydiv1");
    	        obj2=document.getElementById("mydiv2");
    	        obj3=document.getElementById("mydiv3");
    	        obj4=document.getElementById("mydiv4");
    	        obj5=document.getElementById("mydiv5");
    	        uslugia=document.getElementById("uslugi");
    	        uslugib=document.getElementById("uslugi1");
    	        if (a == 1 || a == 2 || a == 3 || a == 4) {obj1.style.display="block"; uslugia.style.display="block"; infa.style.display="block";
    	        obj5.style.display="none"; uslugib.style.display="none";
    			}
    			if (a == 5) {obj5.style.display="block"; infa.style.display="block";
    	        obj1.style.display="none"; uslugia.style.display="none";
    			}
    			calc ();
    		}
    
    	function ShowServices(a) { 		
    			if (a == 'premium') {
    				console.log ("a")
    				us1.checked = us2.checked = us3.checked = us4.checked = us5.checked = false
    				us1.disabled = us2.disabled = us3.disabled = us4.disabled = us5.disabled = true;
    			} else {
    				console.log ("b")
    				us1.disabled = us2.disabled = us3.disabled = us4.disabled = us5.disabled = false;
    			}
    			if (a == 'premium5') {
    				uslugi1.style.display="block"
    			} else {
    				uslugi1.style.display="none"
    			}
    			if (a == 'min' || a == 'stan' || a == 'premium' || a == 'min5' || a == 'stan5' || a == 'premium') {
    				infa.style.display="none";
    			} 
    
    
    			calc ();
    		}
    
    	function ShowUs(a) {
    			{calc();};
    		}
    
    	function ShowV (a) {
    			if (a == 1 || a == 2 || a == 3 || a == 4) {
    				min5.checked = stan5.checked = prem5.checked = false;
    			} 
    			if (a == 5) {
    				min1.checked = stan1.checked = prem1.checked = false;
    			}
    		}
    
    	function calc() {
    			var d = document, usl1 = usl2 = usl3 = usl4 = usl5 = ull1 = ull2 = 0;
    			var 
    			min1 = d.getElementById("min1"),
    			stan1 = d.getElementById("stan1"),
    			prem1 = d.getElementById("prem1"),
    			min5 = d.getElementById("min5"),
    			stan5 = d.getElementById("stan5"),
    			prem5 = d.getElementById("prem5"),
    			us1 = d.getElementById("us1"),
    			us2 = d.getElementById("us2"),
    			us3 = d.getElementById("us3"),
    			us4 = d.getElementById("us4"),
    			us5 = d.getElementById("us5"),
    			result = d.getElementById("result");
    
    			console.log ('c');
    
    			if (us1.checked) usl1 = +us1.value;
    			if (us2.checked) usl2 = +us2.value;
    			if (us3.checked) usl3 = +us3.value;
    			if (us4.checked) usl4 = +us4.value;
    			if (us5.checked) usl5 = +us5.value;
    			if (min1.checked) cina = +min1.value;
    			if (stan1.checked) cina = +stan1.value;
    			if (prem1.checked) cina = +prem1.value;
    			if (min5.checked) cina = +min5.value;
    			if (stan5.checked) cina = +stan5.value;
    			if (prem5.checked) cina = +prem5.value;
    			if (ul1.checked) ull1 = +ul1.value;
    			if (ul2.checked) ull2 = +ul2.value;
    			
    			result.innerHTML = Math.ceil(cina + usl1 + usl2 + usl3 + usl4 + usl5 + ull1 +ull2);
    		};
    
    
    	document.body.onload = function() {
    			console.log ('d');
    			calc ();
    		}
    
    </script>

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

    MegaMax, 14 Мая 2015

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