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

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

    +66

    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
    package util;
    
    import play.db.jpa.JPA;
    import play.db.jpa.Model;
    import play.mvc.Http;
    import play.mvc.Router;
    import play.mvc.Scope;
    
    import javax.persistence.Query;
    import javax.persistence.EntityManager;
    import java.lang.reflect.Field;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * Page of results for model classes (because paginate module looks too buggy).
     * It is not generic solution but it fits the needs.
     * @author <a href="mailto:[email protected]">Roman Kashitsyn</a>
     */
    public class Page<M extends Model> implements PageBuilder<M> {
        
        public static final int MAX_PAGE_SIZE = 20;
        public static final int DEFAULT_PAGE_SIZE = 10;
        public static final int DEFAULT_PAGE_NUMBER = 1;
    
        public static final String PAGE_NUMBER_PARAM = "page";
        public static final String PAGE_SIZE_PARAM = "psize";
        public static final String ORDER_PARAM = "order";
        public static final String ORDER_BY_PARAM = "orderBy";
        
        private static final String ASC = "asc";
        private static final String DESC = "desc";
        private static final List<String> ALLOWED_ORDERS = Arrays.asList(ASC, DESC);
    
        private int pageSize = DEFAULT_PAGE_SIZE;
        private int pageNumber = DEFAULT_PAGE_NUMBER;
        private int total;
        private String orderBy;
        private String order;
        private final Http.Request request;
        private final Map<String, Object> params;
        private List<M> results;
        private final Class<M> clazz;
    
        public class SizeSwitcher {
            private final Map<String, Object> params;
    
            private SizeSwitcher() {
                // making defensive copy
                params = new HashMap<String, Object>(Page.this.params);
                // list of different size should always begin with 1 page
                params.put(PAGE_NUMBER_PARAM, 1);
            }
    
            public String urlToSwitchSize(int newSize) {
                params.put(PAGE_SIZE_PARAM, newSize);
                return Router.reverse(Page.this.request.action, params).url;
            }
    
            public int currentSize() {
                return Page.this.pageSize;
            }
        }
    
        private Page(Class<M> clazz) {
            this.clazz = clazz;
            request = Http.Request.current();
            params = new HashMap<String, Object>(Scope.Params.current().allSimple());
        }
        
        public static <M extends Model> PageBuilder<M> of(Class<M> modelClass) {
            return new Page<M>(modelClass);
        }
        
        public PageBuilder<M> withParams(Map<?, ?> params) {
            pageNumber = limit(params.get(PAGE_NUMBER_PARAM), pageNumber, Integer.MAX_VALUE);
            pageSize = limit(params.get(PAGE_SIZE_PARAM), pageSize, MAX_PAGE_SIZE);
            Object orderByParam = params.get(ORDER_BY_PARAM);
            if (orderByParam != null) {
                orderBy(getSingleValue(orderByParam).toString());
            }
            Object orderParam = params.get(ORDER_PARAM);
            if (orderParam != null) {
                String proposedValue = getSingleValue(orderParam).toString();
                if (ALLOWED_ORDERS.contains(proposedValue)) {
                    order = getSingleValue(orderParam).toString();
                }
            }
            return this;
        }
    
        public PageBuilder<M> withNumber(int num) {
            this.pageNumber = num;
            return this;
        }

    Govnisti_Diavol, 03 Мая 2012

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

    +88

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if ( ($cache = isset($this->cache[0]) ? $this->cache[0] : null) != null ) {
            $isNeedCache = $cache->isNeedCache($plug);
        }
        
        if ( !$isNeedCache || !$cache->getPlugCache($plug, $plugInfo) ) {
          
          /** processing: running plug */
          $this->dispatcher->processPlug($request, $response);
          
          if ($isNeedCache)
            $cache->setPlugCache($plug, $plugInfo);
        }

    hwtech, 02 Мая 2012

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

    +79

    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
    function exeSQL($inSQL,$withDebug = true,$iniDb = '') {
    	global $db;
    	
    	$tmp_db = $db;
    	if ($iniDb != '') {
    		$tmp_db = $iniDb;
    	}
    
    	if (isset($_SESSION['HIDDEN']) and is_numeric($_SESSION['HIDDEN']['HIDDEN']) and $_GET['HIDDEN'] == 'YES') {
    		echo "
    		<br>---------------------------------------------------------------------
    		BEG_TIME: " . date('h:i:s A');
    				print "<pre>";
    				print_r($inSQL);
    		echo "<br>END_TIME: " . date('h:i:s A') . "<br>
    		------------------------------------------------------------------------";		
    	}
    	
    	$result = mysql_query($inSQL, $tmp_db);
    
        $error = mysql_error($tmp_db);
        
        if ($error) {
        	if (strpos($inSQL, 'USD-CODED_RECORD:V') !== false) {
        		$strSQL = util::decodeRecord($inSQL);
        		exeSQL($strSQL, $withDebug);
        		return ;
        	}
        	if ($withDebug) {    
    	   	//	if (!is_dir("d:/temp") and $_GET['debug2'] != 'Y') {
    		 //   	echo file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/index.html');
    		//		die(); 		
    	   	//	}
        			
    	    	echo $error;
    			print "<pre>";
    			print ($inSQL);
    	    	die();    	
        	}
        }
        
        // -- CHECK IF IT WAS INSERTION ---
        
        // -- TRY TO RETURN DATASET
         $arr = @mysql_fetch_array($result);
        // -- NO RESULT AT ALL
        if (is_array($arr)) {
        
    	    // -- RETURN AS VARCHAR ----
    	    if (count($arr) <= 2) return $arr[0];
    	    
    	    // FORM RESULT ARRAY TO RETURN TO USER
    	    $res = array();
    	    while ($arr) {
    	    	$res[] = $arr;
    	    	$arr = mysql_fetch_array($result);
    	    }
    	           
    	    return $res;
        } else {
        	return '';
        	$id = mysql_insert_id($tmp_db);
    		if ($id > 0) {
    		  	return $id;
    		}    	
        }
        
        return '';
    }

    Работа с СУБД.

    nethak, 28 Апреля 2012

    Комментарии (14)
  5. Pascal / Говнокод #10066

    +107

    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
    function Ns(ds: char; var vs: byte): boolean;
    begin
       case ds of
    'Q': vs:= 81;
    'W': vs:= 87;
    'E': vs:= 69;
    'R': vs:= 82;
    'T': vs:= 84;
    'Y': vs:= 89;
    'U': vs:= 85;
    'I': vs:= 73;
    'O': vs:= 79;
    'P': vs:= 80;
    'A': vs:= 65;
    'S': vs:= 83;
    'D': vs:= 68;
    'F': vs:= 70;
    'G': vs:= 71;
    'H': vs:= 72;
    'J': vs:= 74;
    'K': vs:= 75;
    'L': vs:= 76;
    'Z': vs:= 90;
    'X': vs:= 88;
    'C': vs:= 67;
    'V': vs:= 86;
    'B': vs:= 66;
    'N': vs:= 78;
    'M': vs:= 77;
    else vs:= 0;
      end;
     if vs = 0 then Result:= false else Result:= true;
     end;

    Определение кода виртуальных клавиш, вот что бывает, когда кто-то не знает матчасть, вся эта белиберда легко заменяется на :

    function Ns(ds: char; var vs: byte): boolean;
    begin
    case ds of
    'A'..'Z': vs:= byte(ds);
    else vs:= 0;
    end;
    if vs = 0 then Result:= false else Result:= true;
    end;

    И не лень же было клаву мучить!

    Alegun, 27 Апреля 2012

    Комментарии (14)
  6. VisualBasic / Говнокод #10045

    −92

    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
    Sub Ìàêðîñ1()
      Sheets("Îò÷åò_Âêë.1_15-98").Select
        For i = 0 To 25 Step 1
            Sheets(Sheets.Count).Select
            If i = 0 Then
                Range("A:A, B:B").Select
            ElseIf i = 1 Then
                Range("A:A, C:C").Select
            ElseIf i = 2 Then
                Range("A:A, D:D").Select
            ElseIf i = 3 Then
                Range("A:A, E:E").Select
            ElseIf i = 4 Then
                Range("A:A, F:F").Select
            ElseIf i = 5 Then
                Range("A:A, G:G").Select
            ElseIf i = 6 Then
                Range("A:A, H:H").Select
            ElseIf i = 7 Then
                Range("A:A, I:I").Select
            ElseIf i = 8 Then
                Range("A:A, J:J").Select
            ElseIf i = 9 Then
                Range("A:A, K:K").Select
            ElseIf i = 10 Then
                Range("A:A, L:L").Select
            ElseIf i = 11 Then
                Range("A:A, M:M").Select
            ElseIf i = 12 Then
                Range("A:A, N:N").Select
            ElseIf i = 13 Then
                Range("A:A, O:O").Select
            ElseIf i = 14 Then
                Range("A:A, P:P").Select
            ElseIf i = 15 Then
                Range("A:A, Q:Q").Select
            ElseIf i = 16 Then
                Range("A:A, R:R").Select
            ElseIf i = 17 Then
                Range("A:A, S:S").Select
            ElseIf i = 18 Then
                Range("A:A, T:T").Select
            ElseIf i = 19 Then
                Range("A:A, U:U").Select
            ElseIf i = 20 Then
                Range("A:A, V:V").Select
            ElseIf i = 21 Then
                Range("A:A, W:W").Select
            ElseIf i = 22 Then
                Range("A:A, X:X").Select
            ElseIf i = 23 Then
                Range("A:A, Y:Y").Select
            ElseIf i = 24 Then
                Range("A:A, Z:Z").Select
            ElseIf i = 25 Then
                Range("A:A, AA:AA").Select
            End If
            Selection.Copy
            Sheets.Add
            Sheets(Sheets.Count - 1).Select
            Columns("A:A").Select
            ActiveSheet.Paste
        Next i
    End Sub

    Макрос для копирования подряд расположенных столбцов на отдельные листы

    usstass, 25 Апреля 2012

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

    +96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public void setWeather(WeatherData[] weather) {
    		weatherInfo.setWeather(weather[0]);
    		weatherInfo.setTomorrowWeather(weather[1]);
    		weatherInfo.setDayAfterTomorrowWeather(weather[2]);
    		weatherInfo.setDayAfterDayAfterTomorrowWeather(weather[3]);
    		weatherInfo.setDayAfterDayAfterDayAfterTomorrowWeather(weather[4]);
    		weatherInfo.setDayAfterDayAfterDayAfterDayAfterTomorrowWeather(weather[5]);
    	}

    Студенты такие студенты....

    b3er, 23 Апреля 2012

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

    +110

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int[] k = new int[docArr.Length];
    int index = 0;
    
    foreach (var item in docArr)
    {
          k[index] = (int)item;
          index++;
    }
    
    var l = k.ToArray().OrderByDescending(i => i);

    True сортировка массива.

    partizan, 23 Апреля 2012

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

    +122

    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
    <?php
    $pictures =new Array(4);
    pictures[0]="1.jpg";
    pictures[1]="2.png";
    pictures[2]="3.jpg";
    pictures[3]="4.jpg";
    global $i=0;
    function Next(){
    if($i==3)
    $i=0;
    else
    $i++;
    document.getElementById('pic').setAttribute("src", picture[i]);
    }
    function Prev(){
    if($i==0)
    $i=3;
    else
    $i--;
    document.getElementById('pic').setAttribute("src", picture[i]);
    }
    ?>

    Отличный салат.

    cthulhu25, 22 Апреля 2012

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

    +77

    1. 1
    2. 2
    Superclass s = new Subclass();
    ((Subclass)s).useSubclassMethod();

    Чудеса полиморфизма.

    thePooh, 11 Апреля 2012

    Комментарии (14)
  11. Python / Говнокод #9908

    −100

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    def del_space_both(t):
            return del_space_end(del_space_begin(t))
    
    def del_space_begin(text):
            if len(text):
                    while text[:1] == ' ': text = text[1:]
            return text
     
    def del_space_end(text):
            if len(text):
                    while text[-1:] == ' ': text = text[:-1]
            return text

    религия не позволяет использовать strip(), lstrip() и rstrip

    lebutirate, 09 Апреля 2012

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