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

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

    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
    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
    #include <fstream>
    #include <iostream>
    #include <string>
    #include <list>
    #include <vector>
    #include <set>
    #include <algorithm>
    
    std::vector<std::string> split(const std::string &text, char sep) {
    	std::vector<std::string> tokens;
    
    	std::size_t start = 0, end = 0;
    	while ((end = text.find(sep, start)) != std::string::npos) {
    		std::string temp = text.substr(start, end - start);
    		if (temp != "") tokens.push_back(temp);
    		start = end + 1;
    	}
    	std::string temp = text.substr(start);
    	if (temp != "") tokens.push_back(temp);
    	return tokens;
    
    }
    
    void ReplaceStringInPlace(std::string& subject, const std::string& search,
    	const std::string& replace) {
    	size_t pos = 0;
    	while ((pos = subject.find(search, pos)) != std::string::npos) {
    		subject.replace(pos, search.length(), replace);
    		pos += replace.length();
    	}
    }
    
    
    using namespace std;
    using std::vector;
    using std::list;
    using std::set;
    
    int main()
    {
    	setlocale(LC_ALL, "rus");
    
    	// задание 1
    	string buff;
    	list<string> allText;
    
    	//задание 2
    	list<string> chap1;
    	list<string> chap2;
    	list<string> chap3;
    	list<string> chap4;
    	list<string> chap5;
    	string::size_type n;
    	int chapter = 0;
    
    	//задание 5
    
    	vector<string> textWord;
    	vector<string> rezult;
    	vector <string>::size_type kolvotext=0;
    	set<string>Unique_word;
    	vector<string>::iterator j;
    
    	ifstream fin("D:\\lab_c__5_text.txt");
    	if (!fin.is_open())
    		cout << "Файл не может быть открыт!\n";
    	else {
    
    		while (getline(fin, buff)) {
    			allText.push_back(buff);
    			//разбиение по главам
    			n = buff.find("CHAPTER");
    			if (n == 0) {
    				chapter++;
    			}
    			if (chapter == 1) {
    				chap1.push_back(buff);
    			}
    			else if (chapter == 2) {
    				chap2.push_back(buff);
    			}
    			else if (chapter == 3) {
    				chap3.push_back(buff);
    			}
    			else if (chapter == 4) {
    				chap4.push_back(buff);
    			}
    			else if (chapter == 5) {
    				chap5.push_back(buff);
    			}
    			//разбиение по словам
    			
    			ReplaceStringInPlace(buff, ".", "");
    			ReplaceStringInPlace(buff, "!", "");
    			ReplaceStringInPlace(buff, "?", "");
    			ReplaceStringInPlace(buff, ",", "");
    			ReplaceStringInPlace(buff, ";", "");
    			ReplaceStringInPlace(buff, ":", "");

    http://cpp.sh/3nlm6
    Хз что там за задание, какая-то долгая и муторная работа с текстом.

    Fluttie, 12 Мая 2016

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // установлен ли модуль?
      public static function isInstall($module) {
        $data = COption::GetOptionString('main', 'heretic/'.$module, 'N');
        return $data == 'Y';
      }

    И снова гитхаб радует битрикс шлаком. В этот раз, нас радует репозиторий с говорящим описание "Битрикс Еретик" https://github.com/dbfun/bitrix-heretic/blob/master/lib/BHProto.php
    А установлен ли модуль? Таки да. Всегда- да!

    Keeper, 05 Мая 2016

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

    +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
    public class MyEnglishRadGridLocalizationProvider : RadGridLocalizationProvider
    {
        public override string GetLocalizedString(string id)
        {
            switch (id)
            {
                case RadGridStringId.ConditionalFormattingPleaseSelectValidCellValue: return "Please select valid cell value";
                case RadGridStringId.ConditionalFormattingPleaseSetValidCellValue: return "Please set a valid cell value";
                case RadGridStringId.ConditionalFormattingPleaseSetValidCellValues: return "Please set a valid cell values";
                case RadGridStringId.ConditionalFormattingPleaseSetValidExpression: return "Please set a valid expression";
                case RadGridStringId.ConditionalFormattingItem: return "Item";
                case RadGridStringId.ConditionalFormattingInvalidParameters: return "Invalid parameters";
                case RadGridStringId.FilterFunctionBetween: return "Between";
                case RadGridStringId.FilterFunctionContains: return "Contains";
                case RadGridStringId.FilterFunctionDoesNotContain: return "Does not contain";
                case RadGridStringId.FilterFunctionEndsWith: return "Ends with";
                case RadGridStringId.FilterFunctionEqualTo: return "Equals";
                case RadGridStringId.FilterFunctionGreaterThan: return "Greater than";
                case RadGridStringId.FilterFunctionGreaterThanOrEqualTo: return "Greater than or equal to";
                case RadGridStringId.FilterFunctionIsEmpty: return "Is empty";
                case RadGridStringId.FilterFunctionIsNull: return "Is null";

    Зачем мне ресурсы и конфиги локализации, у меня нет времени чтобы ебаться с ними!
    Лучше я захардкожу локализацию ещё раз!

    http://docs.telerik.com/devtools/winforms/gridview/localization/localization

    gost, 12 Апреля 2016

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

    +2

    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
    // TODO: Refactor to one call of 'refineIndexes'
      std::vector<float32_t> *refined_left_1_3 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l1) * ATT_3dB, INTERP_LINEAR, CROSS_RISE);
      std::vector<float32_t> *refined_right_1_3 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r1) * ATT_3dB, INTERP_LINEAR, CROSS_RISE);
      std::vector<float32_t> *refined_left_1_6 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l1) * ATT_6dB, INTERP_LINEAR, CROSS_FALL);
      std::vector<float32_t> *refined_right_1_6 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r1) * ATT_6dB, INTERP_LINEAR, CROSS_FALL);
      std::vector<float32_t> *refined_left_2_3 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l2) * ATT_3dB, INTERP_PARABOLIC, CROSS_RISE);
      std::vector<float32_t> *refined_right_2_3 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r2) * ATT_3dB, INTERP_PARABOLIC, CROSS_RISE);
      std::vector<float32_t> *refined_left_2_6 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l2) * ATT_6dB, INTERP_PARABOLIC, CROSS_FALL);
      std::vector<float32_t> *refined_right_2_6 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r2) * ATT_6dB, INTERP_PARABOLIC, CROSS_FALL);
      
      bool exists_att_3dB = refined_left_1_3->size() > 0 && refined_right_1_3->size() > 0 && refined_left_2_3->size() > 0 && refined_right_2_3->size() > 0;
      bool exists_att_6dB = refined_left_1_6->size() > 0 && refined_right_1_6->size() > 0 && refined_left_2_6->size() > 0 && refined_right_2_6->size() > 0;
    
      if (exists_att_3dB || exists_att_6dB)  {
        float32_t rdTOA_l_3, rdTOA_r_3, rdBW_3, rdSW_3, rdTOA_l_6, rdTOA_r_6, rdBW_6, rdSW_6;
        if (exists_att_3dB && !exists_att_6dB) {
          rdTOA_l_6 = rdTOA_l_3 = refined_left_2_3->back() - refined_left_1_3->front();
          rdTOA_r_6 = rdTOA_r_3 = refined_right_2_3->back() - refined_right_1_3->front();
          rdBW_6 = rdBW_3 = refined_left_2_3->back() - refined_right_2_3->back();
          rdSW_6 = rdSW_3 = refined_left_1_3->front() - refined_right_1_3->front();
        } 
        else if (!exists_att_3dB && exists_att_6dB) {
          rdTOA_l_6 = rdTOA_l_3 = refined_left_2_6->back() - refined_left_1_6->front();
          rdTOA_r_6 = rdTOA_r_3 = refined_right_2_6->back() - refined_right_1_6->front();
          rdBW_6 = rdBW_3 = refined_left_2_6->back() - refined_right_2_6->back();
          rdSW_6 = rdSW_3 = refined_left_1_6->front() - refined_right_1_6->front();
        }
        else {
          rdTOA_l_3 = refined_left_2_3->back() - refined_left_1_3->front();
          rdTOA_r_3 = refined_right_2_3->back() - refined_right_1_3->front();
          rdBW_3 = refined_left_2_3->back() - refined_right_2_3->back();
          rdSW_3 = refined_left_1_3->front() - refined_right_1_3->front();
          rdTOA_l_6 = refined_left_2_6->back() - refined_left_1_6->front();
          rdTOA_r_6 = refined_right_2_6->back() - refined_right_1_6->front();
          rdBW_6 = refined_left_2_6->back() - refined_right_2_6->back();
          rdSW_6 = refined_left_1_6->front() - refined_right_1_6->front();
        }
        float32_t rdTOA_l = (rdTOA_l_3 + rdTOA_l_6) / 2f;
        float32_t rdTOA_r =(rdTOA_r_3 + rdTOA_r_6) / 2f;
        float32_t rdBW = (rdBW_3 + rdBW_6) / 2f;
        float32_t rdSW = (rdSW_3 + rdSW_6) / 2f;
    
        //TODO: Watch for group delay compensation!
        float32_t rdeltaTOA = (rdTOA_l + rdTOA_r - 2 * groupDelay) / (2.0 * AUDIO_SAMPLE_RATE_EXACT);
        float32_t rdeltaBlastWave = rdBW / AUDIO_SAMPLE_RATE_EXACT;
        float32_t rdeltaShockWave = rdSW / AUDIO_SAMPLE_RATE_EXACT;
        //..................................................
      if (sd_init_status == SD_OK && current_settings.log) logFile.close();
    
      refined_left_1_3->clear();
      refined_right_1_3->clear();
      refined_left_2_3->clear();
      refined_right_2_3->clear();
      refined_left_1_6->clear();
      refined_right_1_6->clear();
      refined_left_2_6->clear();
      refined_right_2_6->clear();
    
      delete refined_left_1_3;
      delete refined_right_1_3;
      delete refined_left_2_3;
      delete refined_right_2_3;
      delete refined_left_1_6;
      delete refined_right_1_6;
      delete refined_left_2_6;
      delete refined_right_2_6;

    50 часов без сна... Чувствую я пожалею завтра о том, что сегодня это написал.

    FMB, 06 Апреля 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <!--
    <?
    echo '11111111111';
    print_r($_POST);
    ?>
    -->

    Всем дебага. Найдено на странице с формой одного крупного проекта.

    fasterrr, 25 Марта 2016

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

    −99

    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
    Процедура СводПродажКоличество_Свод()
         ТаблицаПродаж.Очистить();
         //Здесь с учетом возвратов
         Запрос = Новый Запрос;
         Запрос.Текст = "ВЫБРАТЬ
                             |     ТоварыОрганизацийОбороты.Номенклатура,
                             |     ТоварыОрганизацийОбороты.КоличествоРасход КАК Количество
                             |ИЗ
                             |     РегистрНакопления.ТоварыОрганизаций.Обороты(&Период1, &Период2, Период, Склад = &Склад) КАК ТоварыОрганизацийОбороты";
         Запрос.УстановитьПараметр("Период1"     , НачалоДня(НачДата));
         Запрос.УстановитьПараметр("Период2"     , КонецДня(КонДата));
         Запрос.УстановитьПараметр("Склад"      , СкладПриемник);
         
         Рез=Запрос.Выполнить().Выбрать();
         Пока Рез.Следующий() Цикл
              Нов=ТаблицаПродаж.Добавить();
              Нов.Номенклатура=Рез.Номенклатура;
              Нов.Количество=Рез.Количество;
         КонецЦикла;     
        ТаблицаПродаж.Свернуть("Номенклатура","Количество");
    КонецПроцедуры

    Вот так некоторые суровые красноярские 1С-ники феерически говнокодят в вакууме!

    saturn5, 22 Февраля 2016

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

    +9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // получаем текущую дату (день)
    $now_day = $mysqli->query('SELECT DATE(NOW()) now');
    $now_day = $now_day->fetch_assoc();              //получаем текущий день
    $now_day = $now_day['now'];                        //в виде строки
    $now_day = '2016-01-14';

    Кастанедовский код.

    Ja_govnokoder, 02 Февраля 2016

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

    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
    #define EncryptAES256(sched) \
    		"pxor (%["#sched"]), %%xmm0 \n" \
    		"aesenc	16(%["#sched"]), %%xmm0 \n" \
    		"aesenc	32(%["#sched"]), %%xmm0 \n" \
    		"aesenc	48(%["#sched"]), %%xmm0 \n" \
    		"aesenc	64(%["#sched"]), %%xmm0 \n" \
    		"aesenc	80(%["#sched"]), %%xmm0 \n" \
    		"aesenc	96(%["#sched"]), %%xmm0 \n" \
    		"aesenc	112(%["#sched"]), %%xmm0 \n" \
    		"aesenc	128(%["#sched"]), %%xmm0 \n" \
    		"aesenc	144(%["#sched"]), %%xmm0 \n" \
    		"aesenc	160(%["#sched"]), %%xmm0 \n" \
    		"aesenc	176(%["#sched"]), %%xmm0 \n" \
    		"aesenc	192(%["#sched"]), %%xmm0 \n" \
    		"aesenc	208(%["#sched"]), %%xmm0 \n" \
    		"aesenclast	224(%["#sched"]), %%xmm0 \n"
    		
    	void ECBEncryptionAESNI::Encrypt (const ChipherBlock * in, ChipherBlock * out)
    	{
    		__asm__
    		(
    			"movups	(%[in]), %%xmm0 \n"
    			EncryptAES256(sched)
    			"movups	%%xmm0, (%[out]) \n"	
    			: : [sched]"r"(GetKeySchedule ()), [in]"r"(in), [out]"r"(out) : "%xmm0", "memory"
    		);
    	}

    https://github.com/PurpleI2P/i2pd/blob/openssl/Crypto.cpp принципиально новый подход - определять дефайном какое-то макроговно, чтобы потом его использовать внутри асмовставок

    j123123, 22 Января 2016

    Комментарии (9)
  10. Си / Говнокод #19280

    −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
    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
    // Add a UPnP port
    bool Win32UPnPAddPort(UINT outside_port, UINT inside_port, bool udp, char *local_ip, wchar_t *description, bool remove_before_add)
    {
    	bool ret = false;
    	HRESULT hr;
    	IUPnPNAT *nat = NULL;
    	wchar_t ip_str[MAX_SIZE];
    	BSTR bstr_ip, bstr_description, bstr_protocol;
    	wchar_t *protocol_str = (udp ? L"UDP" : L"TCP");
    	// Validate arguments
    	if (outside_port == 0 || outside_port >= 65536 || inside_port == 0 || inside_port >= 65536 ||
    		IsEmptyStr(local_ip) || UniIsEmptyStr(description))
    	{
    		return false;
    	}
    
    	StrToUni(ip_str, sizeof(ip_str), local_ip);
    	bstr_ip = SysAllocString(ip_str);
    	bstr_description = SysAllocString(description);
    	bstr_protocol = SysAllocString(protocol_str);
    
    	hr = CoCreateInstance(CLSID_UPnPNAT, NULL, CLSCTX_INPROC_SERVER, IID_IUPnPNAT, (void **)&nat);
    
    	if (SUCCEEDED(hr))
    	{
    		if (nat != NULL)
    		{
    			IStaticPortMappingCollection *collection = NULL;
    			hr = nat->get_StaticPortMappingCollection(&collection);
    
    			if (SUCCEEDED(hr))
    			{
    				if (collection != NULL)
    				{
    					IStaticPortMapping *mapping = NULL;
    
    					if (remove_before_add)
    					{
    						hr = collection->Remove((long)outside_port, bstr_protocol);
    					}
    
    					hr = collection->Add((long)outside_port, bstr_protocol, (long)inside_port,
    						bstr_ip, VARIANT_TRUE, bstr_description, &mapping);
    
    					if (SUCCEEDED(hr))
    					{
    						ret = true;
    
    						if (mapping != NULL)
    						{
    							mapping->Release();
    						}
    					}
    
    					collection->Release();
    				}
    				else
    				{
    					WHERE;
    				}
    			}
    			else
    			{
    				WHERE;
    			}
    
    			nat->Release();
    		}
    		else
    		{
    			WHERE;
    		}
    	}
    	else
    	{
    		WHERE;
    	}
    
    	SysFreeString(bstr_ip);
    	SysFreeString(bstr_description);
    	SysFreeString(bstr_protocol);
    
    	return ret;
    }

    Отсюда https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Cedar/Win32Com.cpp#L157
    Там еще много такого. https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/Cedar/Win32Com.cpp#L963 вот например тоже забавная хрень. Нашел эту штуку по ссылке с говнохабра http://habrahabr.ru/post/208782/

    j123123, 04 Января 2016

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

    +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
    componentDidMount() {
            this.clickListener = (e) => {
    
                var input = document.getElementById('searchInput');
                var filtersBar = document.getElementById('filters');
                var searchBar = document.getElementById('search');
                var clearButton = document.getElementById('suggestInputClearBtn');
                var isNav = e.target.className.indexOf('suggestNavBtn') >= 0;
    
                if(input == e.target || searchBar == e.target || filtersBar == e.target || clearButton == e.target || isNav || e.target.className.indexOf('tags-controller-wrapper') !== -1)
                    return;
    
                var classes = e.target.c†.split(' ');
    
                for(var cls of classes){
                    if(cls == 'autocompleteItem')
                    {
                        return;
                    }
                }
    
                if(this.props.isSuggestInputVisible)
                    this.props.onCloseAutosuggestion();
    
            };
            this.attachClickListener();
        }

    Я бы только за if без скобок прибил) Обратите внимание на 4 выборки по id которые можно было не делать каждый раз при клике, а если приглядеться то можно понять, что можно было совсем не выбирать ни разу, а если бы пионер знал что всплытие событие можно остановить то этот метод занял бы три строчки и на десерт обратите внимание как он перебирает значение className циклом - это при том что в этом проекте можно писать на es6 Это самый дебильный код который я видел в этом году

    inwebart, 29 Декабря 2015

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