1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #17212

    +157

    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
    Здрасьте.
    
    Есть самая верхняя строчка на странице, так сказать, самый верхный header. В ней на сайтах часто располагается контактная информация (телефоны, адреса, прочее), так вот, мне нужно сделать так, чтобы элементы <a><img></a> были видны лишь спустя сотку-две пикселей прокрутки. Я призадумалась, поискала и нашла такой код:
    
    <?php function scroll_block(){
    var stop = (document.body.scrollTop || document.documentElement.scrollTop);
    var el=document.getElementById('menublock');
    if(stop>150){
    if(el.style.display!='block'){ 
    el.style.display='block'; 
    }
    }
    else 
    el.style.none='none';
    
    return false;
    }
    
    if (window.addEventListener){
    window.addEventListener("scroll", scroll_block, false);
    window.addEventListener("load", scroll_block, false);
    }
    else if (window.attachEvent){
    window.attachEvent("onscroll", scroll_block);
    window.attachEvent("onload", scroll_block);
    }
    
    <div id='menublock' style="display:none">а тут меню</div>
    ?>
    Затем я подумала, и теперь сделала сам элемент:
    
    <div id="hideousvar"> <a href="http://dev.zoldol.ru/vremya-raboty-sklonov"> <img class="varhid" style="padding: 0px 5px 12px 5px;height: 25px;" title="Время работы склонов" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/clock.png"></a>
    
    <a href="http://dev.zoldol.ru/webcamera"> <img class="varhid" style="padding: 0px 5px 10px 5px;height: 28px;" title="WEB-камера" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/camera.png"></a>
    
    <a href="http://dev.zoldol.ru/3d-tour"> <img class="varhid" style="padding: 0px 0px 5px 0px;height: 35px;" title="3D-тур" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/tour.png"></a>
    
    <a href="http://dev.zoldol.ru/scheme"> <img class="varhid" style="padding: 0px 5px 13px 5px; height: 24px;" title="Интерактивная карта склона" alt="" src="http://dev.zoldol.ru/wp-content/themes/subway-child/images/map.png"></a> </div>
    
    Функция:
    
    <?php function scroll_block(){ var stop = (document.body.scrollTop || document.documentElement.scrollTop); var el=document.getElementById('hideousvar'); if(stop>150){ if(el.style.display!='block'){ el.style.display='block'; } } else el.style.none='none';
    
            return false;
            }
    
        if (window.addEventListener){
            window.addEventListener("scroll", scroll_block, false);
            window.addEventListener("load", scroll_block, false);
                }
        else if (window.attachEvent){
            window.attachEvent("onscroll", scroll_block);
            window.attachEvent("onload", scroll_block);
            }
    
    <div id='hideousvar' style="display:none">а тут меню</div>
    ?>
    
    Но что-то не сработало. Подскажите, пожалуйста. Буду безмерно благодарна за помощь.

    Наткнулся на хешкоде на следующее чудо.
    Хоть и топик тот, судя по всему, писала девушка, но всё ж, блин, с более-менее профессиональной моей точки зрения, это совсем ужас :D
    Всё содержание топика точно скопипащено.:D

    RSLab, 28 Ноября 2014

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

    +160

    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
    /**
    * @param array $input
    * @return array
    * @throws Exception
    */
    protected function makeParams($input)
    {
        if (!is_array($input))
        {
            throw new \Exception('argument should be array');
        }
    
        $params = array();
    
        foreach ($input as $k=>$v)
        {
            $params[] = $v;
        }
    
        return $params;
    }

    свой array_values, с блекджеком и экзепшенами

    heyzea1, 21 Ноября 2014

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

    −161

    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
    Для А =0 по Значение.Количество()-1 Цикл
    				Попытка	
    					Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7)+"*"+Строка(Значение[А].поле8)+"*"+Строка(Значение[А].поле9)+"*"+Строка(Значение[А].поле10));
    					Табл.InsertParagraphAfter();
    				Исключение	
    					Попытка	
    						Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7)+"*"+Строка(Значение[А].поле8)+"*"+Строка(Значение[А].поле9));
    						Табл.InsertParagraphAfter();
    					Исключение
    						Попытка	
    							Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7)+"*"+Строка(Значение[А].поле8));
    							Табл.InsertParagraphAfter();
    						Исключение
    							
    							Попытка	
    								Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6)+"*"+Строка(Значение[А].поле7));
    								Табл.InsertParagraphAfter();
    							Исключение
    								Попытка	
    									Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5)+"*"+Строка(Значение[А].поле6));
    									Табл.InsertParagraphAfter();
    								Исключение	
    									Попытка	
    										Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4)+"*"+Строка(Значение[А].поле5));
    										Табл.InsertParagraphAfter();
    									Исключение	
    										Попытка	
    											Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3)+"*"+Строка(Значение[А].поле4));
    											Табл.InsertParagraphAfter();
    										Исключение
    											Попытка	
    												Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+Строка(Значение[А].поле2)+"*"+Строка(Значение[А].поле3));
    												Табл.InsertParagraphAfter();
    											Исключение
    												Попытка	
    													Табл.InsertAfter(Строка(Значение[А].поле1)+"*"+(Строка(Значение[А].поле2)));
    													Табл.InsertParagraphAfter();
    												Исключение
    													Попытка	
    														Табл.InsertAfter(Строка(Значение[А].поле1));
    														Табл.InsertParagraphAfter();
    													Исключение
    														Попытка	
    															Табл.InsertAfter(Строка(Значение[А].поле0));
    															Табл.InsertParagraphAfter();
    														Исключение
    														КонецПопытки;
    													КонецПопытки;	
    												КонецПопытки;
    											КонецПопытки;	
    										КонецПопытки;
    									КонецПопытки;
    								КонецПопытки;	
    							КонецПопытки;	
    						КонецПопытки;	
    					КонецПопытки;
    				КонецПопытки;
    			КонецЦикла;

    Ninomia, 15 Июля 2014

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

    +157

    1. 1
    2. 2
    3. 3
    if (strlen($arResult["ERROR_MESSAGE"]) <= 0){
    // любая ахинея
    }

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

    velosipedistorg, 30 Мая 2014

    Комментарии (62)
  6. Си / Говнокод #13490

    +133

    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
    void mb_sim_pix(uchar* IN, uchar* OUT, int *WH, int *bSize, int *A, int *pSize, float *threshold){
    	int pos = mb_calc_pos(A, WH, pSize);
    	int nPos;
    	int i, n;
    	int B[2];
    		
    	for(n = 0; n < 4; n++){
    		
    		switch(n){
    			case 0:
    				B[0] = A[0] + 1;
    				B[1] = A[1];
    			
    			case 1:
    				B[0] = A[0];
    				B[1] = A[1] - 1;
    			
    			case 2:
    				B[0] = A[0];
    				B[1] = A[1] + 1;
    			
    			case 3:
    				B[0] = A[0] - 1;
    				B[1] = A[1];
    		}
    		
    		if(	B[0] >= 0 && B[0] < WH[0] &&
    			B[1] >= 0 && B[1] < WH[1]){
    			nPos = mb_calc_pos(B, WH, pSize);
    			if(mb_val_pix(OUT, &nPos, pSize) == 0){
    				if(mb_sim_pack(IN, &pos, &nPos, pSize) >= *threshold){
    					for(i = 0; i < *pSize; i++) OUT[nPos + i] = IN[nPos + i];
    					mb_sim_pix(IN, OUT, WH, bSize, B, pSize, threshold);
    				}
    			}
    		}
    	}
    }

    Тоже самое через if работает, а через switch проваливается на значении 0 все итерации. Почему?

    Stertor, 27 Июля 2013

    Комментарии (62)
  7. C++ / Говнокод #12694

    +18

    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
    //main.cpp:
    #define THREAD_COUNT 2
    #include "winparallel.h"
    
    main1()
    {
        lock(1);
        int i=0; while(i++<10)
        printf("1: %d\n", i);
        unlock(1);
    }
    
    main2()
    {
        lock(1);
        int i=0; while(i++<10)
        printf("2: %d\n", i);
        unlock(1);
    }
    
    main3(){};
    main4(){};
    main5(){};
    main6(){};
    main7(){};
    main8(){};
    
    
    
    //=====================================================================================
    //winparallels.h:
    #include <windows.h>
    #define _MAX_CORES 8
    LPVOID _void;
    #define main1() DWORD WINAPI _main1(LPVOID lpParam)
    #define main2() DWORD WINAPI _main2(LPVOID lpParam)
    #define main3() DWORD WINAPI _main3(LPVOID lpParam)
    #define main4() DWORD WINAPI _main4(LPVOID lpParam)
    #define main5() DWORD WINAPI _main5(LPVOID lpParam)
    #define main6() DWORD WINAPI _main6(LPVOID lpParam)
    #define main7() DWORD WINAPI _main7(LPVOID lpParam)
    #define main8() DWORD WINAPI _main8(LPVOID lpParam)
    DWORD WINAPI _main1(LPVOID);
    DWORD WINAPI _main2(LPVOID);
    DWORD WINAPI _main3(LPVOID);
    DWORD WINAPI _main4(LPVOID);
    DWORD WINAPI _main5(LPVOID);
    DWORD WINAPI _main6(LPVOID);
    DWORD WINAPI _main7(LPVOID);
    DWORD WINAPI _main8(LPVOID);
    HANDLE _locks[_MAX_CORES];
    int _argc; char **_argv;
    void lock(int n) { DWORD res = WaitForSingleObject(_locks[n], INFINITE); }
    void unlock(int n) { ReleaseMutex(_locks[n]); }
    int main(int argc,char **argv) {
        HANDLE threads[_MAX_CORES];
        DWORD id;
        int THREADS = THREAD_COUNT;
        if (THREADS<=0) {
            SYSTEM_INFO sysinfo;
            GetSystemInfo(&sysinfo);
            THREADS = sysinfo.dwNumberOfProcessors;
            if (THREADS>_MAX_CORES) THREADS = _MAX_CORES;
        }
        _argc = argc; _argv = argv;    
        _locks[0] = CreateMutex(NULL,FALSE,NULL);
        _locks[1] = CreateMutex(NULL,FALSE,NULL);
        _locks[2] = CreateMutex(NULL,FALSE,NULL);
        _locks[3] = CreateMutex(NULL,FALSE,NULL);
        _locks[4] = CreateMutex(NULL,FALSE,NULL);
        _locks[5] = CreateMutex(NULL,FALSE,NULL);
        _locks[6] = CreateMutex(NULL,FALSE,NULL);
        _locks[7] = CreateMutex(NULL,FALSE,NULL);    
        threads[0]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main1,NULL,0,&id);
        if (THREADS>=2) 
        threads[1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main2,NULL,0,&id);
        if (THREADS>=3) 
        threads[2]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main3,NULL,0,&id);
        if (THREADS>=4) 
        threads[3]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main4,NULL,0,&id);
        if (THREADS>=5) 
        threads[4]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main5,NULL,0,&id);
        if (THREADS>=6) 
        threads[5]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main6,NULL,0,&id);
        if (THREADS>=7) 
        threads[6]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main7,NULL,0,&id);
        if (THREADS>=8) 
        threads[7]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)_main8,NULL,0,&id);
        WaitForMultipleObjects(THREADS, threads, TRUE, INFINITE);
        return 0;
    }

    >После этого всё что нужно освоить про потоки - работу с локами. Локи - это скандинавский бог приостановки потока.

    LispGovno, 05 Марта 2013

    Комментарии (62)
  8. C++ / Говнокод #12106

    +16

    1. 1
    2. 2
    3. 3
    struct WideParams
    {
        WideParams(size_t CountParameters...):

    Посоны, это бомба. Вот что я обнаружил в проекте.

    LispGovno, 12 Ноября 2012

    Комментарии (62)
  9. C++ / Говнокод #11952

    +24

    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
    #include <conio.h>
    #include <stdio.h>
     
     
    const int SIZE = 33;
     
    void DecToBin (unsigned int num, char *bin)
    {
       int i,j;
       char tmp[SIZE];
     
       for(i=0; num; num>>=1, i++)
               tmp[i] = (num&1)?('1'):('0');
       
       for(j=0; j<i; j++)
               bin[j] = tmp[i-j-1];
       bin[j]='\0';
    }
     
    unsigned int shl(unsigned int num, int shift)
    {
            return (num << shift) | (num >> 32 - shift);
    }
     
    void main()
    {
            int n, m;
            scanf("%d", &n);
            
            char bin[SIZE];
     
            DecToBin(n,bin);
            printf("%s\n", bin);
     
            m = shl(n, 35);
            DecToBin(m,bin);
        printf("%s\n", bin);
            _getch();
    }

    Еще одна очередная лаба, но уже код преподавателя, который он дал в качестве примера. Сказал что код на C++ (к вопросу, где здесь с++), и что нам нужно переписать его на "яве".

    maksim_ovcharik, 18 Октября 2012

    Комментарии (62)
  10. C# / Говнокод #11621

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public int getFileRowsCount(string pathToFile)
    {
           System.IO.TextReader streamReader = new System.IO.StreamReader(pathToFile);
           int rowsCounter = 0;
           while ((streamReader.ReadLine()) != null)
           {
               rowsCounter++;
           }
           streamReader.Close();
           return rowsCounter;
    }

    Из http://habrahabr.ru/post/149877/
    И коммент афтора - "Здесь всё просто: пока не дойдём до пустой строки, прибавляем к счётчику строк единичку. Функция возвращает количество строк."

    phoenixx, 20 Августа 2012

    Комментарии (62)
  11. C# / Говнокод #10055

    +122

    1. 1
    Console.WriteLine(Math.Sin(long.MaxValue));

    Выведет 9,22337203685478E+18

    koodeer, 26 Апреля 2012

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