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

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

    +73.8

    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
    public class Date extends java.util.Date{
        @Override
        public String toString(){
            return toLocaleString();
        }
        public Date(String s){
            super(s);
        }
        public Date(int year,int month,int date,int hrs,int min,int sec){
            super(year,month,date,hrs,min,sec);
        }
        public Date(int year,int month,int date,int hrs,int min){
            super(year,month,date,hrs,min);
        }
        public Date(int year,int month,int date){
            super(year,month,date);
        }
        public Date(long date){
            super(date);
        }
        public Date(){
        }
        public java.sql.Date getSQLDate(){
            return new java.sql.Date(getTime());
        }
    }

    из за переопределения и еще какого, а главное как:
    @Override
    public String toString(){
    return toLocaleString();
    }
    писать целый класс, это не каждый сможет.

    maxt, 09 Марта 2010

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

    +59.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
    m = 1;
    
    label:
    
    ...block1;
    
    if (m == 1)
    {
    	m++;
    	goto label;
    }
    else if (m == 2)
    {
    	m++;
    	...block2;
    	goto label;
    else
    {
    	...block3;
    }
    if (m == 3)
    	m = 1;
    else
    	m--;

    из реально работающей математической проги

    будет ли выполнено m--? ))

    glook, 08 Марта 2010

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

    +961.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    int[] a = new int[5];
                int i = 0;
                foreach (var b in a)
                {
                    a[i] = Convert.ToInt32(Console.ReadLine());
                    i++;
                }
                Console.ReadKey();

    Bor1k, 25 Февраля 2010

    Комментарии (11)
  5. Куча / Говнокод #2621

    +124.6

    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
    <item>
    	<title>Mixed Up and Maxi-ed Out at Peter Som</title>
    	<link>http://www.fashionwiredaily.com/first_word/fashion/article.weml?id=3056</link>
    	<description>Good news for gym-goers this fall: you can forget about the lunges, the squats and the leg presses,</description>
    	<pubDate>Sat, 13 Feb 2010 18:25:00 EST</pubDate>
    	<enclosure url="http://www.fashionwiredaily.com/common_images/feed_images/498955.jpg" length="20713" type="image/jpg" />
    </item>
    <item>
    	<title>Mixed Up and Maxi-ed Out at Peter Som</title>
    	<link>http://www.fashionwiredaily.com/first_word/fashion/article.weml?id=3056</link>
    	<description>Good news for gym-goers this fall: you can forget about the lunges, the squats and the leg presses,</description>
    	<pubDate>Sat, 13 Feb 2010 18:25:00 EST</pubDate>
    	<enclosure url="http://www.fashionwiredaily.com/common_images/feed_images/498953.jpg" length="21716" type="image/jpg" />
    </item>
    <item>
    	<title>Mixed Up and Maxi-ed Out at Peter Som</title>
    	<link>http://www.fashionwiredaily.com/first_word/fashion/article.weml?id=3056</link>
    	<description>Good news for gym-goers this fall: you can forget about the lunges, the squats and the leg presses,</description>
    	<pubDate>Sat, 13 Feb 2010 18:25:00 EST</pubDate>
    	<enclosure url="http://www.fashionwiredaily.com/common_images/feed_images/498951.jpg" length="22238" type="image/jpg" />
    </item>

    Опять же, обнаружилось на сателитном сайте нашей конторы. Обратите внимание, что все данные в rss повторяются по 3 раза за исключением картинок. Понятно, что rss генерится, но это ж каким... недалеким надо быть, чтобы так сгенерить...
    [url]http://www.fashionwiredaily.com/first_word/feed.xml[/url]

    wvxvw, 15 Февраля 2010

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

    +66.9

    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
    // Компилировать: g++ -o test reghead.cpp object1.cpp regtail.cpp main.cpp
    
    //================== object.h: ==================
    struct Object {
    	const char *name;
    	unsigned char props[0];
    };
    
    extern Object *head, *tail;
    enum {PROPTYPE_BYTE = 0x40, PROPTYPE_WORD = 0x80};
    enum {PROP_DESC = 1, PROP_LASTSTRING, PROP_COLOR, PROP_MASS, PROP_END = 0};
    
    #define DECLARE_OBJECT(name) \
    extern Object Object_##name, *name##_reg; \
    Object *name##_reg __attribute__((section("oreg"))) = &Object_##name;\
    Object Object_##name = {#name}; \
    namespace name##_props {
    
    #define PROP_BYTE(id, value) unsigned char id##_1 = id | PROPTYPE_BYTE, id##_2 = value;
    #define PROP_WORD(id, value) unsigned char id##_1 = id | PROPTYPE_WORD, id##_2[2] = {value & 0xff, value >> 8};
    #define PROP_STRING(id, value) unsigned char id##_1 = id; unsigned char id##_2[] = value;
    #define END_PROPS unsigned char final = PROP_END; }
    
    //================== reghead.cpp: ==================
    #include "object.h"
    Object *head __attribute__((section("oreg"))) = 0;
    
    //================== regtail.cpp: ==================
    #include "object.h"
    Object *tail __attribute__((section("oreg"))) = 0;
    
    //================== object1.cpp: ==================
    #include "object.h"
    
    DECLARE_OBJECT(object1)
    PROP_BYTE(PROP_COLOR, 14)
    PROP_WORD(PROP_MASS, 300)
    PROP_STRING(PROP_DESC, "description")
    END_PROPS
    
    //================== main.cpp: ==================
    #include <stdio.h>
    #include <string.h>
    #include "object.h"
    
    int main()
    {
    	Object **obj = &head;
    	while (++obj <= &tail) {
    		if (*obj == NULL)
    			continue;
    		printf("Object: %s\n", (*obj)->name);
    		unsigned char *props = (*obj)->props;
    		int id;
    		while ((id = *props) != PROP_END) {
    			if (id < PROP_LASTSTRING) {
    				char *value = (char *)props+1;
    				props = (unsigned char *)value + strlen(value) + 1;
    				switch (id) {
    				case PROP_DESC:
    					printf("    Description: %s\n", value);
    					break;
    				}
    			} else {
    				int value;
    				switch (id >> 6) {
    				case 1:
    					value = *((unsigned char *)(props+1));
    					props += 2;
    					break;
    				case 2:
    					value = *((unsigned short *)(props+1));
    					props += 3;
    					break;
    				}
    				switch (id & 63) {
    					case PROP_COLOR:
    						printf("    Color: %d\n", value);
    						break;
    					case PROP_MASS:
    						printf("    Mass:%d\n", value);
    						break;
    				}
    			}
    		}
    	}
    }

    Прошу прощения за длинный пример, но не мог не поделиться. Написано по мотивом кода из того же ZDaemon – примерно так там задаются и обрабатываются свойства объектов. Работает только с компилятором GCC. Если вы поняли, как это работает, а также почему подобный говнокод работает с gcc версии 3.2 и может зависать с более поздними версиями – можете по праву гордиться собой.

    Arseniy, 13 Февраля 2010

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

    +84.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
    public class Pair
      {
          private Object first;
          private Object second;
          private Object third;
    
          public Pair() { }
          public Pair( Object first, Object second, Object third )
          {
              this.first  = first;
              this.second  = second;
              this.third  = third;
          }
    
          public Object getFirst()  { return first; }
          public Object getSecond() { return second; }
          public Object getThird()  { return third; }
    
          public void setFirst( Object first  )  { this.first  = first; }
          public void setSecond( Object second ) { this.second  = second; }
          public void setThird( Object third  )  { this.third  = third; }
      }

    Что-то здесь не так...

    gvsmirnov, 11 Февраля 2010

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

    −117.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ТекВрем = Час(ТекущаяДата())*60+Минута(ТекущаяДата());
    ВремКурсов = 60;
    Если ТекВрем >= ВремКурсов Тогда
    	ВремКурсов = ВремКурсов + 24*60 - ТекВрем;
    Иначе
    	ВремКурсов = ВремКурсов - ТекВрем;
    КонецЕсли;
    ВремКурсов = 1;
    ПодключитьОбработчикОжидания("ЗагрузкаВалютИПересчетУЕ", ВремКурсов*60);

    Вычисляем ВремКурсов, а затем присваиваем этой переменной единицу и умножаем на 60. Рациональность, чорт побери! :-D

    KingOfShit, 11 Февраля 2010

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

    +144.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static List<KeyValuePair<string, string>> m_destinationUrlByRole = new List<KeyValuePair<string,string>>();
    
    ... 
    дальше по коду
    
    foreach(KeyValuePair<string, string> destination in m_destinationUrlByRole)
    {
         ...
    }

    Если честно, то долго пытался понять сакральный смысл типа приватного поля...

    iVoffka, 09 Февраля 2010

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

    +53.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
    #include <iostream>
    using namespace std;
    struct CandyBar
    {
      char name[20];
      float weight;
      int energy;
    };
    int main()
    {
      CandyBar * snack = new CandyBar;
      *snack =
      {
        "Moncha Munch",
        2.3,
        350
      };
      cout << "Имя = " << *snack->name;
      cout << "\nМасса = " << (*snack).weight;
      cout << "\nЭнергетическая ценность = " << snack->energy << "\n";
      return 0;
    }

    unnicked, 09 Февраля 2010

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

    +122.9

    1. 1
    Голосование за бан во все интернеты для Nemerle.

    Altravert, 08 Февраля 2010

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