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

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

    +21

    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
    if(m_bitRate < DSS_LOW_RATE/1000000.)
    {
        m_bitRate = DSS_LOW_RATE/1000000.;
    }
    else if(m_bitRate > DSS_HIGH_RATE/1000000.)
    {
        m_bitRate = DSS_HIGH_RATE/1000000.;
    }
    else if(m_bitRate > (.5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE)/1000000.)
    {
        m_bitRate = DSS_HIGH_RATE/1000000.;
    }
    else
    {
        m_bitRate = DSS_LOW_RATE/1000000.;
    }

    умиляет. ну хотя бы, упростить .5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE) до (DSS_HIGH_RATE + DSS_LOW_RATE)/2 -- понятнее, да? тогда и if(m_bitRate > DSS_HIGH_RATE/1000000.) можно убрать за ненадобносью (ибо число которое больше чем максимальное из двух точно больше чем среднее из этих жвух), и самое верхнее if(m_bitRate < DSS_LOW_RATE/1000000.) можно убрать ибо в else у нас то же самое произойдет - и сразу как бы читаестя с ходу и понимается, не надо напрягаться.
    Боже, как я люблю крупные проприетарные проекты написанные людьми выбравшими для себя не свою профессию разработчика софта...

    Pencioner, 11 Октября 2012

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

    +29

    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
    template <class Monad>
       struct XMapM {
          template <class F, class M> struct Sig : FunType<F,M,
             typename RT<typename ::fcpp::BindM<Monad>::Type,M,typename LEType<
                LAM<LV<1>,CALL<typename ::fcpp::UnitM<Monad>::Type,
                CALL<F,LV<1> > > > >::Type>::ResultType> {};
          template <class F, class M>
          typename Sig<F,M>::ResultType
          operator()( const F& f, const M& m ) const {
             LambdaVar<1> A;
             return bindM<Monad>()( m, lambda(A)[ unitM<Monad>()[f[A]] ] );
          }
       };

    Хаскель не нужен.

    serpinski, 05 Октября 2012

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

    +59

    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
    99. 99
    function Base($what, $field, $where, $id="", $special="") {
    //Соединились. Бльоооо
        $DBConnection=connect();
    
        //Чистим от лишнего входные данные
        $what=sanitize($what);
        $where=sanitize($where);
        if (isset($id)) {
            $id=sanitize($id);
        }
        if (isset($id)) {
            $special=sanitize($special);
        }
        if (isset($field)) {
            $field=sanitize($field);
        }
        //Бльоооооо
        if (!$field) {
            $field="*";
        }
    
        //Смотрим и выбираем что нам делать
        switch($what) {
            case 'sel': $query="SELECT ".$field;
                break; //Вытаскивать
            case 'del': $query="DELETE";
                break; //Удалять
        }
    
        //Формируем запрос, вставляем имя таблицы с которой мы работаем
        $query.=" FROM ".$where."s";
    
        //Проверяем есть ли условие выбора (т.е. всё мы вытаскиваем или нет
        if (isset($id) and $id!='') {
            //Если не указан параметр выбора, то автоматически заставляем выбирать по индетефикатору
            if (!isset($special) or $special=="") {
                $special=$where."_id";
            } else {
                $special=$where."_".$special;
            }
            //Формируем условие выбора
            $query.=" WHERE ".$special."='".$id."'";
        }
    
        //Нахрена вот это я ващеееее не понял, пацаныы (прим МТК)
        //трицератопс велел (прим Граф)
        if ($what=='del') {
            $query.=" LIMIT 1;";
        }
        //Исполняем запрос
        $resultId=@mysql_query($query, $DBConnection);
        //Если мы выбирали из базы
        if ($what=="sel") {
            //Но ничего не выбралось
            if(!$resultId) {
                //Возвращаем ЛОЖЬ и выходим
                return FALSE;
            }
            ;
            //Если всё ок - забиваем результат в массив
            $result=array();
            while(($currentRow=@mysql_fetch_assoc($resultId))!=false) {
                $result[]=$currentRow;
            }
            ;
    
            //И возвращаем испечённый результат
            return $result;
        }
        //Если же мы удаляли
        else {
            //Возвращаем результат.
            return $resultId;
        }
    
    }
    
    //Ебанутая функция №2
    function Base2($where, $ids="") {
        $DBConnection=connect();
        $where=sanitize($where);
        if (isset($ids)) {
            $ids=sanitize($ids);
        }
        $query="SELECT * FROM ".$where."s";
        if (isset($ids) and $ids!='') {
            $ids=explode(',', $ids);
            $query.=" WHERE ";
            $x=0;
            foreach($ids as $fieldName=>$fieldValue) {
                if ($x>0) {
                    $query.=" AND ";
                }
                //elseif ($x>1)
                //	{ $query.=","; }
                $param=explode("=", $fieldValue);
                if ($param[0]!='last_time') {
                    $query.=$where."_".$param[0]."='".$param[1]."'";
                }

    ActiveRecord? DataMapper? DAO? Ну может хотя бы PDO? )) Не, не слышали!
    Кстати, на функциях Base(), Base2() дело не закончилось,есть еще Base3(), BaseWrite(), BaseWrite2() . Я уже не стал выкладывать их код - и так понятно что там.

    WinnerWolf, 08 Сентября 2012

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

    +45

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Matrix::~Matrix()
    {    
    	data = NULL;
    	delete [] data;
    };

    no comments

    coll3ctor, 07 Сентября 2012

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

    +35

    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
    function month_name($m) { 
      switch ($m) { 
        case 1:  
          return 'January';  
          break; 
        case 2:  
          return 'February';  
          break; 
        case 3:  
          return 'March';  
          break; 
    // ...
      } 
    }

    С PHPClasses. Номинировано на что-то там
    http://www.phpclasses.org/browse/file/41300.html

    Tairesh, 04 Сентября 2012

    Комментарии (16)
  7. JavaScript / Говнокод #11695

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    функция foo( arr ) {
      для( пер i = 0; i < arr.length; i++ ) {
        если( arr[ i ] === неопредел ) {
          arr[ i ] = нуль;
        }
      }
      возврат arr;
    }

    http://eclipsesource.com/blogs/2012/09/03/js-i18n/ говорит, что мы можем писать такой джяваскрипт при условии использования http://fhtr.org/js-i18n/

    makc3d, 03 Сентября 2012

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

    +4

    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
    #include <iostream>
    using std::cin;
    using std::cout;
    using std::endl;
    
    #include <cmath>
    
    double mySqrt( float, float );
    
    int main() {
        float a, n;
        cin >> a >> n;
        
        cout << mySqrt( a, n ) << endl;
        return 0;    
    }
    
    double mySqrt( float a, float n ) {
        const double EPSILON = 0.00001;
        double precision;
        
        double x = 0, x_prev = 1.0;
        
        do {
            x = (x_prev * (n - 1.0) + a / pow( x_prev, n - 1.0 )) / n;
            precision = fabs( x - x_prev );
            
            x_prev = x;
        } while( precision > EPSILON );
        
        return x;
    }

    Студентота, да.
    Извлечение корней.

    vortexx1, 28 Июля 2012

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

    +100

    1. 1
    2. 2
    3. 3
    synchronized(new Object()){
    ...
    }

    http://stackoverflow.com/questions/9840959/how-to-judge-which-object-to-be-synchronized-in-java-thread

    3.14159265, 27 Июля 2012

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

    +19

    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
    // хелпер чтобы конвертить типы строк
    template <class S1, class S2>
    struct str_convert {
    	static S1 conv(S2 const & s2) { return str_convert<S2, S1>::conv(s2); }		// по умолчанию ищет специализацию для пары S2, S1
    	static S2 conv(S1 const & s1) { return str_convert<S2, S1>::conv(s1); }
    };
    
    // специализация, чтобы не конвертить одно в одно
    template <class S>
    struct str_convert<S, S> {
    	static S const & conv(S const & s) { return s; };
    };
    
    // специализация, чтобы конвертить std::string <-> std::wstring
    template <>
    struct str_convert<std::string, std::wstring> {
    	static std::string conv(std::wstring const & ws) { return boost::locale::conv::utf_to_utf<char>(ws); }
    	static std::wstring conv(std::string const & s)  { return boost::locale::conv::utf_to_utf<wchar_t>(s); }
    };
    
    // специализация QString <-> std::string
    // skipped
    
    template <class StringType = std::string>
    struct some 
    {
    	typedef StringType		string_type;
    	typedef std::string		utf8_string_type;
    
    	some(string_type const & s = string_type())
    		: inner_string_(s)
    	{}
    
    	template <class S>
    	some(S const & s)
    		: inner_string_(str_convert<S, string_type>::conv(s))
    	{}
    
    	string_type inner_string_;
    };
    
    int main()
    {
    	std::string s = "hello!";
    	some<> test0(s);		  // ok
    	some<> test2("hello!"); // ха-ха, вот еще, пытаться самостоятельно привести к std::string, пиши специализацию для массивов, сука!
    	return 0;
    }

    сегодня ради красоты передачи "literal" в конструктор писал говноспециализации для PodType[N]

    defecate-plusplus, 04 Июля 2012

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

    −33

    1. 1
    2. 2
    bool operator()(int x,int y)
    {return x<y;}

    Вторая часть) реально интересуются люди
    "надо два объекта моего класса сравнить, так?"
    ну, вообще жесть

    Diss, 11 Июня 2012

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