1. C++ / Говнокод #20326

    +3

    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
    template<class... Bases>
    struct MaminVisitor: public boost::static_visitor<>, public Bases... {
        MaminVisitor(Bases&&... bases) : Bases(std::move(bases))... { }
    };
    
    
    template<class Variant, class... F>
    void match(Variant &&v, F &&... functors) {
        typedef MaminVisitor<typename std::decay<F>::type...> visitor_t;
        boost::apply_visitor(visitor_t(std::move(functors)...), std::forward<Variant>(v));
    }
    
    
    int main() {
        boost::variant<int, double, std::string> v = "ololo";
    
        match(v,
            [&](auto x) {
                std::cout << "auto branch " << x << std::endl;
            },
            [&](double x) {
                std::cout << "double branch " << x << std::endl;
            }
        );
    
        return 0;
    }

    Сделал няшный матч, а на гцц не конпелируется.
    http://ideone.com/J9ulsr

    kurwa-nextgen, 05 Июля 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    if (Expires != 0 && Expires.ToString() != "9223372036854775807")
    {
            ...
    }

    Expires типа long

    Pointerjkeee, 05 Июля 2016

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

    +1

    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
    header.php
    
     <?$APPLICATION->IncludeComponent(
                    "lenal:lenal.menu",
                    "mobile",
                    array(
                        "VIEW_MODE" => "LINE",
                        "SHOW_PARENT_NAME" => "Y",
                        "IBLOCK_TYPE" => "catalog",
                        "IBLOCK_ID" => "39",
                        "SECTION_ID" => $_REQUEST["SECTION_ID"],
                        "SECTION_CODE" => "",
                        "SECTION_URL" => "",
                        "COUNT_ELEMENTS" => "N",
                        "TOP_DEPTH" => "1",
                        "SECTION_FIELDS" => array(
                            0 => "",
                            1 => "",
                        ),
                        "SECTION_USER_FIELDS" => array(
                            0 => "UF_MOST_POPULAR",
                            1 => "",
                        ),
                        "ADD_SECTIONS_CHAIN" => "Y",
                        "CACHE_TYPE" => "A",
                        "CACHE_TIME" => "36000000",
                        "CACHE_GROUPS" => "Y",
                        "COMPONENT_TEMPLATE" => "ds_main_menu",
                        "MAX_COUNT" => "12",
                        "MAX_ACTIONS" => "4",
                        "MAX_POPULAR" => "5"
                    ),
                    false
                );?>
    
    /**************************************************************/
    
    component.php
    
    if(!isset($arParams["CACHE_TIME"]))
    	$arParams["CACHE_TIME"] = 36000000;
    
    if($this->StartResultCache(false, ($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups())))
    {
    
    	if(!\Bitrix\Main\Loader::includeModule("iblock"))
    	{
    		$this->AbortResultCache();
    		ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
    		return;
    	}
    
    /**************************************************************/

    В параметрах стоит "SECTION_ID" => $_REQUEST["SECTION_ID"] и единственным условием сброса кеша ("CACHE_TIME" => "36000000") является отсутствие одного из основных модулей.

    Результат: по 99 460 файлов кеша на каждый сайт. И это - простое МЕНЮ.

    Производство компания Lenal, платформа 1С-Битрикс

    lscin, 04 Июля 2016

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

    0

    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
    header.php
    
     <?$APPLICATION->IncludeComponent(
                    "lenal:lenal.menu",
                    "mobile",
                    array(
                        "VIEW_MODE" => "LINE",
                        "SHOW_PARENT_NAME" => "Y",
                        "IBLOCK_TYPE" => "catalog",
                        "IBLOCK_ID" => "39",
                        "SECTION_ID" => $_REQUEST["SECTION_ID"],
                        "SECTION_CODE" => "",
    
    ..................................................
    
    
    component.php
    
    if(!isset($arParams["CACHE_TIME"]))
    	$arParams["CACHE_TIME"] = 36000000;
    
    if($this->StartResultCache(false, ($arParams["CACHE_GROUPS"]==="N"? false: $USER->GetGroups())))
    {
    	/*
    	 * Lenal вы гребаные идиоты, у вас в параметрах стоит  "SECTION_ID" => $_REQUEST["SECTION_ID"] и
    	 * единственным условием у вас сброса кеша ("CACHE_TIME" => "36000000"!!!!!! бля)
    	 * ВОТ ЭТО?! Отсутствие модуля iblock ?!? 
    	 * Чтоб вы всю жизнь на жевачку работали, придурки!
    	 * 
    	 * 100 000 файлов кеша на ОДНО МЕНЮ ОДНОГО САЙТА! 
    	 * 
    	 * Дегенераты.
    	 * 
    	 */ 
    	if(!\Bitrix\Main\Loader::includeModule("iblock"))
    	{
    		$this->AbortResultCache();
    		ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED"));
    		return;
    	}
    /*********************

    Компонент меню на публичной части от компании Lenal (платформа 1С-Битрикс)

    lscin, 04 Июля 2016

    Комментарии (4)
  5. C++ / Говнокод #20321

    +1

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    while (cycle) {
    		#if DEBUG == 1
    		mvprintw(0, 0, "cn: %i", cn);
    		mvprintw(all_lines + 7, 0, "max_line: %i\nMaxX: %i\nMaxY: %i", max_line, maxX, maxY);
    		#endif
    
    		if (active_input == 1)
    			attron(COLOR_PAIR(color_selected) | A_BOLD);
    
    		if (active_input != 1)
    			attron(COLOR_PAIR(dlgcfg.style) | A_BOLD);
    
    		if (dlgcfg.keys > 1) {
    			mvprintw(i + 3 + title_fix, left_border_x + 2, " %s ", dlgcfg.f_button.c_str()); // Первая кнопка
    		} else {
    			mvprintw(i + 3 + title_fix, maxX / 2 - (dlgcfg.f_button.length() / 2) - 1, " %s ", dlgcfg.f_button.c_str()); // Центровка первой кнопки (Если она одна)
    		}
    
    		if (active_input != 1)
    			attroff(COLOR_PAIR(dlgcfg.style) | A_BOLD);		
    
    		if (active_input == 1)
    			attroff(COLOR_PAIR(color_selected) | A_BOLD);
    
    		if (dlgcfg.keys  == 2) {
    			if (active_input == 2)
    				attron(COLOR_PAIR(color_selected) | A_BOLD);
    
    			if (active_input != 2)
    				attron(COLOR_PAIR(dlgcfg.style) | A_BOLD);
    
    			mvprintw(i + 3 + title_fix, maxX / 2 + (max_line / 2) - dlgcfg.s_button.length() - 3 - fix, " %s ", dlgcfg.s_button.c_str()); // Вторая кнопка
    
    			if (active_input != 2)
    				attroff(COLOR_PAIR(dlgcfg.style) | A_BOLD);
    
    			if (active_input == 2)
    				attroff(COLOR_PAIR(color_selected) | A_BOLD);
    		}
    
    		if (dlgcfg.keys  == 3) {
    			if (active_input == 2)
    				attron(COLOR_PAIR(color_selected) | A_BOLD);
    
    			if (active_input != 2)
    				attron(COLOR_PAIR(dlgcfg.style) | A_BOLD);
    
    			mvprintw(i + 3 + title_fix, s_key_pos - dlgcfg.s_button.length() / 2, " %s ", dlgcfg.s_button.c_str()); // Вторая кнопка
    
    			if (active_input != 2)
    				attroff(COLOR_PAIR(dlgcfg.style) | A_BOLD);
    
    			if (active_input == 2)
    				attroff(COLOR_PAIR(color_selected) | A_BOLD);
    
    			if (active_input == 3)
    				attron(COLOR_PAIR(color_selected) | A_BOLD);
    
    			if (active_input != 3)
    				attron(COLOR_PAIR(dlgcfg.style) | A_BOLD);
    
    			mvprintw(i + 3 + title_fix, maxX / 2 + (max_line / 2) - dlgcfg.t_button.length() - 3 - fix, " %s ", dlgcfg.t_button.c_str()); // Вторая кнопка
    
    			if (active_input != 3)
    				attroff(COLOR_PAIR(dlgcfg.style) | A_BOLD);
    
    			if (active_input == 3)
    				attroff(COLOR_PAIR(color_selected) | A_BOLD);
    		}
    		cn	= getch();
    		switch (cn) {
    			case CtrlF1:	info_win();
    							break;
    
    			case KEY_LEFT:	if (active_input != 1)
    								active_input--;
    							break;
    
    			case KEY_RIGHT:	if (active_input != dlgcfg.keys)
    								active_input++;
    							break;
    
    			case TAB_KEY:	if (active_input != dlgcfg.keys) {
    								active_input++;
    							} else {
    								active_input = 1;
    							}
    							break;
    
    			case 27:		delete [] array;
    							return 0;
    							break;
    
    			case '\n':		if (active_input != 0) {
    								delete [] array;
    								return active_input;
    							}
    							break;
    		}
    И ещё ~400 строк такой же дичи)

    Даже если интерфейс кажется вам милым и опрятным, не распространяйте свои догадки на реализацию...

    viktorokh96, 04 Июля 2016

    Комментарии (19)
  6. Куча / Говнокод #20318

    +3

    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
    10097 32533  76520 13586  34673 54876  80959 09117  39292 74945
    37542 04805  64894 74296  24805 24037  20636 10402  00822 91665
    08422 68953  19645 09303  23209 02560  15953 34764  35080 33606
    99019 02529  09376 70715  38311 31165  88676 74397  04436 27659
    12807 99970  80157 36147  64032 36653  98951 16877  12171 76833
    66065 74717  34072 76850  36697 36170  65813 39885  11199 29170
    31060 10805  45571 82406  35303 42614  86799 07439  23403 09732
    85269 77602  02051 65692  68665 74818  73053 85247  18623 88579
    63573 32135  05325 47048  90553 57548  28468 28709  83491 25624
    73796 45753  03529 64778  35808 34282  60935 20344  35273 88435
    98520 17767  14905 68607  22109 40558  60970 93433  50500 73998
    11805 05431  39808 27732  50725 68248  29405 24201  52775 67851
    83452 99634  06288 98083  13746 70078  18475 40610  68711 77817
    88685 40200  86507 58401  36766 67951  90364 76493  29609 11062
    99594 67348  87517 64969  91826 08928  93785 61368  23478 34113
    65481 17674  17468 50950  58047 76974  73039 57186  40218 16544
    80124 35635  17727 08015  45318 22374  21115 78253  14385 53763
    74350 99817  77402 77214  43236 00210  45521 64237  96286 02655
    69916 26803  66252 29148  36936 87203  76621 13990  94400 56418
    09893 20505  14225 68514  46427 56788  96297 78822  54382 14598
    91499 14523  68479 27686  46162 83554  94750 89923  37089 20048
    80336 94598  26940 36858  70297 34135  53140 33340  42050 82341
    44104 81949  85157 47954  32979 26575  57600 40881  22222 06413
    12550 73742  11100 02040  12860 74697  96644 89439  28707 25815
    63606 49329  16505 34484  40219 52563  43651 77082  07207 31790
    61196 90446  26457 47774  51924 33729  65394 59593  42582 60527
    15474 45266  95270 79953  59367 83848  82396 10118  33211 59466
    94557 28573  67897 54387  54622 44431  91190 42592  92927 45973
    42481 16213  97344 08721  16868 48767  03071 12059  25701 46670
    23523 78317  73208 89837  68935 91416  26252 29663  05522 82562
    04493 52494  75246 33824  45862 51025  61962 79335  65337 12472
    00549 97654  64051 88159  96119 63896  54692 82391  23287 29529
    35963 15307  26898 09354  33351 35462  77974 50024  90103 39333
    59808 08391  45427 26842  83609 49700  13021 24892  78565 20106
    46058 85236  01390 92286  77281 44077  93910 83647  70617 42941
    32179 00597  87379 25241  05567 07007  86743 17157  85394 11838
    69234 61406  20117 45204  15956 60000  18743 92423  97118 96338
    19565 41430  01758 75379  40419 21585  66674 36806  84962 85207
    45155 14938  19476 07246  43667 94543  59047 90033  20826 69541
    94864 31994  36168 10851  34888 81553  01540 35456  05014 51176
    98086 24826  45240 28404  44999 08896  39094 73407  35441 31880
    33185 16232  41941 50949  89435 48581  88695 41994  37548 73043
    80951 00406  96382 70774  20151 23387  25016 25298  94624 61171
    79752 49140  71961 28296  69861 02591  74852 20539  00387 59579
    18633 32537  98145 06571  31010 24674  05455 61427  77938 91936
    74029 43902  77557 32270  97790 17119  52527 58021  80814 51748
    54178 45611  80993 37143  05335 12969  56127 19255  36040 90324
    11664 49883  52079 84827  59381 71539  09973 33440  88461 23356
    48324 77928  31249 64710  02295 36870  32307 57546  15020 09994
    69074 94138  87637 91976  35584 04401  10518 21615  01848 76938
    09188 20097  32825 39527  04220 86304  83389 87374  64278 58044
    90045 85497  51981 50654  94938 81997  91870 76150  68476 64659
    73189 50207  47677 26269  62290 64464  27124 67018  41361 82760
    75768 76490  20971 87749  90429 12272  95375 05871  93823 43178
    54016 44056  66281 31003  00682 27398  20714 53295  07706 17813
    08358 69910  78542 42785  13661 58873  04618 97553  31223 08420
    28306 03264  81333 10591  40510 07893  32604 60475  94119 01840
    53840 86233  81594 13628  51215 90290  28466 68795  77762 20791
    91757 53741  61613 62269  50263 90212  55781 76514  83483 47055
    89415 92694  00397 58391  12607 17646  48949 72306  94541 37408
    77513 03820  86864 29901  68414 82774  51908 13980  72893 55507
    19502 37174  69979 20288  55210 29773  74287 75251  65344 67415
    21818 59313  93278 81757  05686 73156  07082 85046  31853 38452
    51474 66499  68107 23621  94049 91345  42836 09191  08007 45449
    99559 68331  62535 24170  69777 12830  74819 78142  43860 72834
    33713 48007  93584 72869  51926 64721  58303 29822  93174 93972
    85274 86893  11303 22970  28834 34137  73515 90400  71148 43643
    84133 89640  44035 52166  73852 70091  61222 60561  62327 18423
    56732 16234  17395 96131  10123 91622  85496 57560  81604 18880
    65138 56806  87648 85261  34313 65861  45875 21069  85644 47277
    38001 02176  81719 11711  71602 92937  74219 64049  65584 49698
    37402 96397  01304 77586  56271 10086  47324 62605  40030 37438
    97125 40348  87083 31417  21815 39250  75237 62047  15501 29578
    21826 41134  47143 34072  64638 85902  49139 06441  03856 54552
    73135 42742  95719 09035  85794 74296  08789 88156  64691 19202
    07638 77929  03061 18072  96207 44156  23821 99538  04713 66994
    60528 83441  07954 19814  59175 20695  05533 52139  61212 06455
    83596 35655  06958 92983  05128 09719  77433 53783  92301 50498
    10850 62746  99599 10507  13499 06319  53075 71839  06410 19362
    39820 98952  43622 63147  64421 80814  43800 09351  31024 73167

    The RAND Corporation. A Million Random Digits with 100 000 Normal Deviates. – N.Y.: Free Press.

    Зачем?

    inkanus-gray, 03 Июля 2016

    Комментарии (32)
  7. Java / Говнокод #20317

    +1

    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
    public void notificationSuccess(String operation) {
            Logger.getLogger(this.getClass().getName()).log(Level.INFO, "Operation " + operation + " success");
            FacesMessage msg = null;
            msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Notification", "Success");
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    
        public void notificationError(Exception e, String operation) {
            Logger.getLogger(this.getClass().getName()).log(Level.ERROR, "Operation " + operation + " Error ", e);
            FacesMessage msg = null;
            msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Notification", "Error");
            FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    А не созавать ли мне новый экземпляр логгера при каждом уведомлении...

    proselyte, 03 Июля 2016

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ostringstream s;
    
    ...
    
    -    return s.str();
    +    return std::move(s.str());

    соптимизировано

    kurwa, 02 Июля 2016

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

    +5

    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
    public string GenerateKey(int length)
      {
        System.Random random = new System.Random();
        char[] chArray = new char[62]
        {
          'A',
          'B',
          'C',
          'D',
          'E',
          'F',
          'G',
          'H',
          'I',
          'J',
          'K',
          'L',
          'M',
          'N',
          'O',
          'P',
          'Q',
          'R',
          'S',
          'T',
          'U',
          'V',
          'W',
          'X',
          'Y',
          'Z',
          'a',
          'b',
          'c',
          'd',
          'e',
          'f',
          'g',
          'h',
          'i',
          'j',
          'k',
          'l',
          'm',
          'n',
          'o',
          'p',
          'q',
          'r',
          's',
          't',
          'u',
          'v',
          'w',
          'x',
          'y',
          'z',
          '0',
          '1',
          '2',
          '3',
          '4',
          '5',
          '6',
          '7',
          '8',
          '9'
        };
        string str = string.Empty;
        for (int index = 0; index < length; ++index)
          str += (string) (object) chArray[random.Next(0, 35)];
        return str;
      }

    Решил декомпилировать "Копатель Онлайн" ради лулзов.

    AlexGear, 02 Июля 2016

    Комментарии (15)
  10. Куча / Говнокод #20311

    +2

    1. 1
    https://whydoesitsuck.com/cpp-sucks-for-a-reason/

    laMer007, 01 Июля 2016

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