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

    −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
    namespace spine {
    
    static SkeletonBatch* instance = nullptr;
    
    void SkeletonBatch::setBufferSize (int vertexCount) {
    	if (instance) delete instance;
    	instance = new SkeletonBatch(vertexCount);
    }
    
    SkeletonBatch* SkeletonBatch::getInstance () {
    	if (!instance) instance = new SkeletonBatch(8192);
    	return instance;
    }
    
    SkeletonBatch::SkeletonBatch (int capacity) :
    	_capacity(capacity), _position(0)
    {
    	_buffer = new V3F_C4B_T2F[capacity];
    	_firstCommand = new Command();
    	_command = _firstCommand;
    
    	Director::getInstance()->getScheduler()->scheduleUpdate(this, -1, false);
    }
    
    SkeletonBatch::~SkeletonBatch () {
    	Director::getInstance()->getScheduler()->unscheduleUpdate(this);
    
    	Command* command = _firstCommand;
    	while (command) {
    		Command* next = command->next;
    		delete command;
    		command = next;
    	}
    
    	delete [] _buffer;
    }

    https://github.com/EsotericSoftware/spine-runtimes/blob/master/spine-cocos2dx/3/src/spine/SkeletonBatch.cpp
    Это просто шедевЕр! Течет как ссаные тряпки...

    MarkusD, 08 Июня 2016

    Комментарии (25)
  2. PHP / Говнокод #20154

    +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
    <?php
    /*
    You can place here your functions and event handlers
    
    AddEventHandler("module", "EventName", "FunctionName");
    function FunctionName(params)
    {
            //code
    }
    */
    
    AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');
    CModule::IncludeModule('cleantalk.antispam');
    
    function my_onBeforeResultAdd($WEB_FORM_ID, $arFields, $arrVALUES) {
     $ct_status = COption::GetOptionString('cleantalk.antispam', 'status', '0');
     if ($ct_status == 1) {
      global $APPLICATION;
      $aParams = array();
      $aParams['type'] = 'comment';
      $aParams['sender_email'] = isset($arrVALUES['email']) ? $arrVALUES['email'] : '';
      $aParams['sender_nickname'] = isset($arrVALUES['nickname']) ? $arrVALUES['nickname'] : '';
      $aParams['message_title'] = isset($arrVALUES['title']) ? $arrVALUES['title'] : '';
      $aParams['message_body'] = isset($arrVALUES['message']) ? $arrVALUES['message'] : '';
      $aResult = CleantalkAntispam::CheckAllBefore($aParams, FALSE);
      if (isset($aResult) && is_array($aResult)) {
       if ($aResult['errno'] == 0) {
        if ($aResult['allow'] == 1) {
            //Not spammer - just return;
            return;
        } else {
         if (preg_match('//u', $aResult['ct_result_comment'])) {
          $err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/iu','',$aResult['ct_result_comment']);
          $err_str=preg_replace('/<[^<>]*>/iu', '', $err_str);
         } else {
          $err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/i','',$aResult['ct_result_comment']);
          $err_str=preg_replace('/<[^<>]*>/i', '', $err_str);
         }
         $APPLICATION->ThrowException($err_str);
         return false;
        }
       }
      }
     }
    }
    ?>

    Четкая конторка написала четкий антиспам-модуль для битрикса и показывает как его нужно использовать. Тут все в одном флаконе - от игнорирования всех стандартов PSR разом до иррациональной реализации ... Пост на хабре: https://habrahabr.ru/company/cleantalk/blog/302800/

    zenn1989, 08 Июня 2016

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

    +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
    <name>customer_language_iso</name>
                          <value>
                            <string>en</string>
                          </value>
                        </member>
                      </struct>
                    </value>
                  </data>
                </array>
              </value>
            </data>
          </array>
        </value>
      </param>
    </params>

    За 7 лет в туризме ни разу не видел человеческого api.
    Страшнющие нечитабельные SOAP, фантастическая вложенность, json внутри xml, время ответа доходит до нескольких минут и прочее, прочее.

    tablecell, 07 Июня 2016

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

    −103

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Таб = Документ.ПолучитьОбъект().РаботникиОрганизаций;
    Таб.Очистить();
    // блабла...
    
    Таб = Документ.ПолучитьОбъект().РаботникиОрганизаций;
    Раб = Таб.Добавить();
    // Далее идет заполнение строки ТЧ...
    
    Док = Документ.ПолучитьОбъект();
    Док.Записать(РежимЗаписиДокумента.Проведение);

    "А чо у миня ничо ни записываецца????!!!!1111"
    "Ну у миня документ через COM-соединение... наверное изза этово..."
    Ну или, проще говоря, стандартная баба с красным дипломом программиста...

    mrbus, 07 Июня 2016

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    код в файле load.php который блокирует установку
    
    if ( ! extension_loaded( 'mysql' ) && ! file_exists( WP_CONTENT_DIR . '/db.php' ) ) {
            wp_load_translations_early();
            die( __( 'Your PHP installation appears to be missing the MySQL extension which is required by WordPress.' ) );
        }

    Приветы! Есть такая ситуация: на хостинг надо установить не очень новую версию вордпрсса, на хосте установлена mysqli, но эта версия вордпресса (а нужна именно эта версия) не поддерживает mysqli, поэтому я планирую работать с удаленной базой mysql. Так вот проблема в том, что при установке вордпресса ирнсталлятор проверяет какой тип базы установлен, конечно же он видит mysqli и выдает ошибку Your PHP installation appears to be missing the MySQL extension which is required by WordPress....В файле load.php пытался закомментировать код отвечающий за проверку, но сайт после этого вообще никаких признаков жизни не падает. Как можно отключить эту проверку? Спасибо)

    viromax, 07 Июня 2016

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public function getAllParentCategories($category_id,&$parents = array()) {
    	$parent_id = $this->db->query("SELECT parent_id FROM " . DB_PREFIX . "category WHERE category_id = '" . (int)$category_id . "'")->row['parent_id'];
    	if ($parent_id == 0)
    		return $parents;
    	else {
    		$parents[] = $parent_id;
    		return $this->getAllParentCategories($parent_id,$parents);
    	}
    }

    рекурсивная функция с sql запросом, что может быть лучше?

    php73, 07 Июня 2016

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

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // on every year that is evenly divisible by 4
    // except every year that is evenly divisible by 100
    // unless the year is also evenly divisible by 400
    pub fn is_leap_year(year: usize) -> bool {
        match ((year % 4), (year % 100), (year % 400)) {
            (0, 0, 0) => true,
            (0, 0, _) => false,
            (0, _, _) => true,
            (_, _, _) => false,
        }
    }

    Интересный способ использовать сопоставление с образцом.

    PS
    Добавьте плиз Rust.

    gorthauer87, 07 Июня 2016

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    string tempFolder = DateTime.Now.Year.ToString("0000") 
    	+  DateTime.Now.Month.ToString("00")
    	+ DateTime.Now.Day.ToString("00")
    	+ "-" + DateTime.Now.Hour.ToString("00")
    	+ DateTime.Now.Minute.ToString("00")
    	+ DateTime.Now.Second.ToString("00");

    Kronic, 07 Июня 2016

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (!CModule::IncludeModule("iblock")) die();//7-оборудование. 8-отрасли. 5-разработки. 6-проекты.
    $a=0;if(strpos($_SERVER['REQUEST_URI'], '/development/')!==false) $a=5;
    elseif(strpos($_SERVER['REQUEST_URI'], '/projects/')!==false) $a=6;
    elseif(strpos($_SERVER['REQUEST_URI'], '/serial-production/')!==false) $a=13;
    elseif(strpos($_SERVER['REQUEST_URI'], '/control-systems/')!==false) $a=7;
    elseif(strpos($_SERVER['REQUEST_URI'], '/industry/')!==false) $a=8;

    Классика битрикс - разработки в индусском стиле. Проект стоил 500к+ дерева, не считая поддержки.

    ajiko, 07 Июня 2016

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

    +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
    private string GetMinutes() 
    { 
          string minute = (DateTime.Now.Minute < 10) ? "0" + DateTime.Now.Minute.ToString() : DateTime.Now.Minute.ToString();  
    
          return minute; 
    }
    
    private string LogPath(string minute) 
    { 
         string logPath = Param.directory + @"\log(" + DateTime.Now.ToShortDateString() + " " 
                    + DateTime.Now.Hour.ToString() + "." + minute + ").txt"; 
         return logPath; 
    }
    
    string minute = GetMinutes(); //Минуты формата "мм" для имени файла ЛОГа. 
    return LogPath(minute);       //Путь файла ЛОГа

    dreamer, 06 Июня 2016

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