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

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

    +137

    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
    #define SQR(x)                  ((x)*(x))
    #define RANGE(x1, y1, x2, y2)   (sqrt(SQR(x1-x2) + SQR(y1-y2)))
    #define bestz                   z_b[b_iz]
    #define bestv                   v_b[b_iv]
    #define curz                    z_b[it]
    #define curv                    v_b[i]
    #define best_range              (bestz.rast + RANGE(bestz.x, bestz.y, bestv.x, bestv.y) + bestv.rast)
    #define current_range           (curz.rast + RANGE(curz.x, curz.y, curv.x, curv.y) + curv.rast)
    #define fci                     (l + ((r - l) / 3))
    #define sci                     (r - ((r - l) / 3))
    #define fc                      z_b[fci]
    #define sc                      z_b[sci]
    #define from                    v_b[i]
    #define range_1                 (from.rast + RANGE(from.x, from.y, fc.x, fc.y) + fc.rast)
    #define range_2                 (from.rast + RANGE(from.x, from.y, sc.x, sc.y) + sc.rast)

    jyree, 04 Февраля 2015

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php // if you delete this the sky will fall on your head
    endwhile; //endwhile have_posts()
    else: //have_posts()
    ?>
    <p>Sorry, no posts matched your criteria.</p>
    <?php endif; ?>
    <!-- // this is just the end of the motor - don't touch that line either :) -->

    ...мм, Ок!

    elvis, 04 Февраля 2015

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

    +145

    1. 1
    !String.valueOf(TDContractualMD).equals("null date")

    Проверка даты на null

    Albo1843, 03 Февраля 2015

    Комментарии (1)
  5. Ruby / Говнокод #17559

    −157

    1. 1
    patient_id = MedProgram.where(:id => params[:med_program_id]).limit(1).pluck(:patient_id).first

    FancyDancy, 02 Февраля 2015

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

    +131

    1. 1
    2. 2
    3. 3
    <style>
    .newObjectHref #getNewObject_btn{font-size:18px}
    </style>

    clgs, 29 Января 2015

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

    −113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    def convert_get_to_post(header='HTTP_X_GET_DATA'):
        def decorator(function):
            @wraps(function)
            def wrapper(request, *args, **kwargs):
                if header in request.META:
                    request.method = 'GET'
                    request.GET = request.POST
                return function(request, *args, **kwargs)
            return wrapper
        return decorator

    Как избежать проблему с большим количеством параметров в URL при GET запросе...

    winter, 27 Января 2015

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

    −127

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //200114		
    //ОбластьКонОстаткиДоговор.Параметры.ПеременныйДоговор = ВыборкаДоговор.Договор;  //Убери рем когда договор опять нужен будет 
    
    //210014
    //ОбластьКонОстаткиДоговор.Параметры.ПеенныйДоговор = ВыборкаДоговор.Договор;  //Убери рем когда договор опять нужен будет

    Пенный договор вновь вступил в силу..

    gStill, 27 Января 2015

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

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Функция ПереформатироватьДату(Дата)
     Год  = Формат(Дата, "ДФ=гггг");
     Месяц = Формат(Дата, "ДФ=ММ");
     День = Формат(Дата, "ДФ=дд");
     Час  = Формат(Дата, "ДФ=Ч") ;
     Минута  = Формат(Дата, "ДФ=мм");
     Секунда = Формат(Дата, "ДФ=сс");
     ПолученнаяДата = Год+Месяц+День+Час+Минута+Секунда;
     Возврат ПолученнаяДата; 
    КонецФункции

    Творчечство стажера. Надо было в скл -запрос подсунуть дату в виде строки. Должно быть Формат(Дата, "ДФ=yyyyMMddhhmmss"). Да и отдельной функции не надо

    delph1ct, 26 Января 2015

    Комментарии (1)
  10. ActionScript / Говнокод #17515

    −90

    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
    public static function padToTwoDigits(value:int):String
    {
    	if(value < 10)
    		return "0" + value.toString();
    	else
    		return value.toString();
    }
    
    /**
     * returns 00:00 format
     * 
     * @param  miliseconds 
     */
    public static function time_format(miliseconds:Number):String{
    	var recorded_time_lbl:String = '';
    	
    	var seconds:Number = miliseconds/1000;
    	var minutes:uint = seconds / 60;
    
    	var seconds_remain:uint = seconds - (minutes*60);
    
    	var sec_lbl:String = '';
    	if(seconds_remain<10){
    		sec_lbl = '0'+seconds_remain;
    	}else{
    		sec_lbl = ''+seconds_remain;
    	}
    	var min_lbl:String = '';
    	if(minutes<10){
    		min_lbl = '0'+minutes;
    	}else{
    		min_lbl = ''+ minutes;
    	}
    	
    	recorded_time_lbl = min_lbl + ':' + sec_lbl;
    	return recorded_time_lbl;
    	//--
    	var recorded_time:String = (miliseconds/100000).toFixed(2) ;
    	
    	if(recorded_time.length == 5) // 23.22
    		recorded_time_lbl = recorded_time.substr(0,2)+':'+recorded_time.substr(3);
    	else if(recorded_time.length == 4) // 4.26
    		recorded_time_lbl = '0'+recorded_time.substr(0,1)+':'+recorded_time.substr(2);
    	
    	return recorded_time_lbl;
    }
    /**
    * limits a string to a specified length and adds '...' at the end of it
    */ 
    public static function trim(s:String,limit:uint):String{
    	if(s.length > limit){
    		s = s.substr(0,limit-4) + '...';
    	}
    	return s;
    }
    
    public static function formatTime(value: Number): String
    {
    	if (isNaN(value) || (value < 0))
    	{
    		return "0:0";
    	}
    	var formatedTime: Array = formateTimeToIntArr(value);
    	var minutes: int = formatedTime[1];
    	if (minutes < 0)
    	{
    		return "0:0";
    	}
    	var seconds: int = formatedTime[0];
    	var timevalue: String = minutes + ":";
    
    	if (seconds < 10)
    	{
    		timevalue += "0";
    	}
    
    	timevalue = timevalue + seconds;
    
    	return timevalue;
    }
    
    public static function formateTimeToIntArr(value: Number): Array
    {
    	var result: Array = [0, 0];
    	if (!isNaN(value))
    	{
    		var minutes: int = value / 60;
    		var seconds: int = value % 60;
    		if (!(minutes < 0))
    		{
    			result = [seconds, minutes];
    		}
    	}
    	return result;
    }

    Я понимаю, что много, но количество тут играет определенную роль. Это только небольшая часть файла вспомогательных функций для форматирования времени, дат и т.п. В какой-то степени удручает еще и неизобретательность автора, последовательно наступающих на те же самые грабли и даже ни на секунду не задумавшегося о предназначении...

    wvxvw, 25 Января 2015

    Комментарии (1)
  11. Си / Говнокод #17507

    +137

    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
    // For a portable version of timegm(), set the TZ environment variable  to
    // UTC, call mktime(3) and restore the value of TZ.  Something like
    
    #include <time.h>
    #include <stdlib.h>
    
    time_t
    my_timegm(struct tm *tm)
    {
        time_t ret;
        char *tz;
    
        tz = getenv("TZ");
        if (tz)
            tz = strdup(tz);
        setenv("TZ", "", 1);
        tzset();
        ret = mktime(tm);
        if (tz) {
            setenv("TZ", tz, 1);
            free(tz);
        } else
            unsetenv("TZ");
        tzset();
        return ret;
    }

    Цитата из man timegm. Сборка unix timestamp из компонент (год, месяц и т.п.).

    Удобно, наглядно, потокобезопасно.

    bormand, 23 Января 2015

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