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

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

    +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
    class Yandex{
      require_once _DIR_ . '/vendor/autoload.php';
      class_alias('\Arhitector\Yandex\Disk', 'Yandex');
    
    
      // передать OAuth-токен зарегистрированного приложения.
      $disk = new Yandex('AQAAAAAeTQ-yAARKyGCP7TY2MU0aggYZ7ucZFwI');
    
      /**
       * Получить Объектно Ориентированное представление закрытого ресурса.
       * @var  Arhitector\Yandex\Disk\Resource\Closed $resource
       */
      $resource = $disk->getResource('0000 Техническое задание (2).pdf');
    
      // проверить сущестует такой файл на диске ?
      $resource->has(); // вернет, например, false
    
      // загрузить файл на диск под имененм "новый файл.txt".
      $resource->upload(__DIR__ . '/0000 Техническое задание (1).pdf');
    
      // файл загружен, вывести информацию.
      echo '<pre>';
      var_dump($resource->toArray());
    }

    Нашёл на работе

    slexx1234, 17 Ноября 2017

    Комментарии (10)
  3. Java / Говнокод #23533

    +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
    ...
        private enum CSPTitle {
            CONTENT_SECURITY_POLICY, X_CONTENT_SECURITY_POLICY, X_WEBKIT_CSP;
    
            public String getName() {
                return WordUtils.capitalizeFully(this.name(), new char[] { '_' }).replace('_', '-');
            }
        }
    ...
       public Map<String, String> getHeaders(boolean disableXWebkitCspHeader, StringBuilder cspHeaderBodyBuilder){
            Map<String, String> cspHeaders = new HashMap<>();
            for (CSPTitle cspTitle : CSPTitle.values()) {
                if (disableXWebkitCspHeader && CSPTitle.X_WEBKIT_CSP.equals(cspTitle)) {
                    continue;
                }
    
                String cspHeaderBody = cspHeaderBodyBuilder.toString();
                if (CSPTitle.X_CONTENT_SECURITY_POLICY.equals(cspTitle)) {
                    cspHeaderBody = processXCSPHeader(cspHeaderBody);
                }
                cspHeaders.put(cspTitle.getName(), cspHeaderBody.trim());
            }
            return cspHeaders;
      }
    ....

    reizy, 14 Ноября 2017

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static int CalcCheckSum(byte[] BinFile)
    {
          int length = ((IEnumerable<byte>) BinFile).Count<byte>();
          if (length > 0)
          {
                int num = 0;
                for (int index = 0; index < length; ++index)
                      num = num + (int) BinFile[index] & (int) ushort.MaxValue;
          }
          return num;
    }

    Израильский инновационный вариант rolling hash'а :facepalm:
    Здесь есть всё: и альтернативное определение длины массива, и обилие приведений к инту, и придающая особую таинственность битовая операция &
    На первый взгляд может показаться, что результатом будет простая сумма всех байт, но не дайте себя обмануть! Результат - это суперсекретная(!!!11) сумма всех байт.

    PsychoTeras, 14 Ноября 2017

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

    +1

    1. 1
    ideone.com/LfENd1

    Вот мне всегда говорили, что NaN не равен ничему включая себя, но PHP перевернул мой мир

    d_fomenok, 12 Ноября 2017

    Комментарии (13)
  6. 1C / Говнокод #23514

    +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
    ДействующиеПостановления = Новый Структура;
    			ДействующиеПостановления.Вставить("Постановление914",  ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137);
    			ДействующиеПостановления.Вставить("Постановление1137", НЕ (ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137));
    			ДействующиеПостановления.Вставить("Постановление1137_625", ВедетсяУчетНДСПоФЗ56(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
    			ДействующиеПостановления.Вставить("Постановление981", ДействуетПостановление981(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
    			
    			ОпцииПечатиСчетаФактуры.Вставить("ДействующиеПостановления", ДействующиеПостановления);
    			
    			Если ДанныеПечати.КорректировочныйСчетФактура Тогда
    				Если ДействующиеПостановления.Постановление981 Тогда
    					Макет = МакетКорр_981;
    					ЕстьПостановление981 = Истина;
    				ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
    					Макет = МакетКорр_625;
    					ЕстьПостановление1137_625 = Истина;
    				Иначе
    					Макет = МакетКорр;
    					ЕстьПостановление1137 = Истина;
    				КонецЕсли;
    			ИначеЕсли ДействующиеПостановления.Постановление914 Тогда
    				Макет = Макет451;
    				ЕстьПостановление914 = Истина;
    			ИначеЕсли ДействующиеПостановления.Постановление981 Тогда
    				Макет = Макет981;
    				ЕстьПостановление981 = Истина;
    			ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
    				Макет = Макет1137_625;
    				ЕстьПостановление1137_625 = Истина;
    			Иначе
    				Макет = Макет1137;
    				ЕстьПостановление1137 = Истина;
    			КонецЕсли;
    			
    			Если (ЕстьПостановление914 И ЕстьПостановление1137) 
    				ИЛИ (ЕстьПостановление914 И ЕстьПостановление981)
    				ИЛИ ((ЕстьПостановление1137 ИЛИ ЕстьПостановление1137_625) И ЕстьПостановление981) Тогда
    				
    				Текст = НСтр("ru = 'Недоступна одновременная печать счетов-фактур, сформированных по разным постановлениям Правительства РФ'");
    				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    					Текст,
    					ДанныеПечати.Ссылка);
    				
    				ТабличныйДокумент.Очистить();
    				Прервать;
    				
    			КонецЕсли;

    Типовая УТ 11.3.4.93, ПечатьОбщихФорм, модуль менеджера

    Что проверяют эти "Если"? Не ошибся ли программист?
    Постановление определяется по дате счета-фактуры. Интересно, как можно сформировать счет-фактуру одновременно "по разным постановлениям Правительства РФ"?

    И мало того, что вторая и третья строки всегда дают противоположный результат. Нет, на всякий случай проверим "Если (ЕстьПостановление914 И ЕстьПостановление1137)".
    Интересно также, как после ИначеЕсли ожидали получить сочетание разных "постановлений"? И почему проверяется всего три неправильных сочетания? Надо больше кода!

    Еще понравилась оригинальная идея завести на каждый элемент структуры отдельную переменную, потом присвоить этой переменной то же, что и в структуре, а потом проверить сочетание этих переменных. Надо заметить, что переменные ЕстьПостановлениеYYYY больше нигде не используются.

    romanvk, 10 Ноября 2017

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

    +1

    1. 1
    Поцаны, шестой уровень вложенности - это ок или говнокод?

    У вас обычно сколько?

    subaru, 08 Ноября 2017

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

    +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
    // https://github.com/telegramdesktop/tdesktop/blob/5f5770dd46491133b135a71fc2d4f92d13107ade/Telegram/SourceFiles/history.cpp#L1455
    
    int History::countUnread(MsgId upTo) {
    	int result = 0;
    	for (auto i = blocks.cend(), e = blocks.cbegin(); i != e;) {
    		--i;
    		for (auto j = (*i)->items.cend(), en = (*i)->items.cbegin(); j != en;) {
    			--j;
    			if ((*j)->id > 0 && (*j)->id <= upTo) {
    				break;
    			} else if (!(*j)->out() && (*j)->unread() && (*j)->id > upTo) {
    				++result;
    			}
    		}
    	}
    	return result;
    }
    
    void History::updateShowFrom() {
    	if (showFrom) return;
    
    	for (auto i = blocks.cend(); i != blocks.cbegin();) {
    		--i;
    		for (auto j = (*i)->items.cend(); j != (*i)->items.cbegin();) {
    			--j;
    			if ((*j)->id > 0 && (!(*j)->out() || !showFrom)) {
    				if ((*j)->id >= inboxReadBefore) {
    					showFrom = *j;
    				} else {
    					return;
    				}
    			}
    		}
    	}
    }

    очередная порция говнеца из телесрамного клиента

    j123123, 07 Ноября 2017

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

    +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
    $probabilities=array();
    $get_items=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' ORDER BY `probability` DESC;");
    while($item=mysql_fetch_assoc($get_items)){
    $probabilities[$item['probability']]=0;
    }
    $dices=$probabilities;
    for($pi=100;$pi>=0;$pi--){
    foreach($probabilities as $probability=>$pstate){
    if(rand(1, 2)==2){
    if($pi<=$probability){
    $dices[$probability]=$dices[$probability]+1;
    }
    }	
    }
    }
    arsort($dices, SORT_NUMERIC);
    $probability=reset(array_keys($dices));
    $get_prize=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' AND `probability`='".$probability."' ORDER BY RAND() LIMIT 1;");

    Написал с нуля на заказ движок для очередного детского говноказино (розыгрыш пикселей для игр в "Steam").
    Заказчик умолял сделать возможность управления вероятностью выпадения того или иного предмета (в процентах), что я и сделал. Вышеприведённый алгоритм как раз отвечает за выбор приза в соответствии с прописанными в настройках вероятностями. Сейчас кажется, что решение не самое "изящное".
    Есть, что заметить по поводу алгоритма?

    AnalPerOral, 02 Ноября 2017

    Комментарии (79)
  10. bash / Говнокод #23474

    +1

    1. 1
    Кегдан вернулся, давайте радоваться вместе!

    d_fomenok, 01 Ноября 2017

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

    +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
    function CountBack_slider(secs,iid,j_timer) {
    	if (secs < 0) {
    		document.getElementById(iid).innerHTML = FinishMessage;
    		document.getElementById('caption'+j_timer).style.display = "none";
    		document.getElementById('heading'+j_timer).style.display = "none";
    		return;
    	}
    	DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
    	DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
    	DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
    	DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));
    	
    	var elems = document.getElementsByTagName('*'), i;
    	for (i in elems) {
    		if((' ' + elems[i].className + ' ').indexOf(' ' + iid + ' ')
    				> -1) {
    			elems[i].innerHTML = DisplayStr;
    		}
    	}
    	
    	jQuery('.'+iid).innerHTML = DisplayStr;
    	  if (CountActive)
    		setTimeout(function(){CountBack_slider((secs+CountStepper),iid,j_timer)}, SetTimeOutPeriod);
    }

    Работаю с купленным html5-шаблоном.
    В шаблоне jq (и еще куча всякого хлама) подключен.
    Кодили с мыслью "работает и *уй с ним".

    Developer, 27 Октября 2017

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