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

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

    +132

    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
    #define COMMAND_MARKER		'\x1B'
    #define COMMAND_SET			'='
    #define COMMAND_XOR			'^'
    #define COMMAND_OR			'|'
    #define COMMAND_AND			'&'
    
    void usbWriteOut(uchar *data, int len)
    {
    	while(len--) {
    		uchar c = *data;
    		buf[0] = buf[1];
    		buf[1] = buf[2];
    		buf[2] = buf[3];
    		buf[3] = c;
    		
    		if(buf[0] == COMMAND_MARKER) {
    			uint8_t val = (hex2u(buf[2]) << 4) | hex2u(buf[3]);
    			if(buf[1] == COMMAND_SET) {
    				colorData = val;
    			}
    			else if(buf[1] == COMMAND_XOR) {
    				colorData ^= val;
    			}
    			else if(buf[1] == COMMAND_OR) {
    				colorData |= val;
    			}
    			else if(buf[1] == COMMAND_AND) {
    				colorData &= ~val;
    			}
    		}
    	}
    }

    Простой баг оказался крайне подлым!
    При тестировании девайса терминалкой и чепятании команды ручками, каждый символ уходил в отдельном пакете и создавалось впечатление, что всё работает.
    После чего девайс был собран с применением большого количества термоклея, так что исправление бага оказалось совершенно непростым занятием >_<

    odmin, 09 Февраля 2012

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

    +132

    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
    <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="1M"/>
          <xs:enumeration value="2M"/>
          <xs:enumeration value="3M"/>
          <xs:enumeration value="4M"/>
          <xs:enumeration value="5M"/>
          <xs:enumeration value="6M"/>
          <xs:enumeration value="7M"/>
          <xs:enumeration value="8M"/>
          <xs:enumeration value="9M"/>
          <xs:enumeration value="10M"/>
          <xs:enumeration value="11M"/>
          <xs:enumeration value="12M"/>
          <xs:enumeration value="13M"/>
          <xs:enumeration value="14M"/>
          <xs:enumeration value="15M"/>
          <xs:enumeration value="16M"/>
          <xs:enumeration value="17M"/>
          <xs:enumeration value="18M"/>
          <xs:enumeration value="19M"/>
          <xs:enumeration value="20M"/>
          <xs:enumeration value="21M"/>
          <xs:enumeration value="22M"/>
          <xs:enumeration value="23M"/>
          <xs:enumeration value="24M"/>
          <xs:enumeration value="25M"/>
          <xs:enumeration value="26M"/>
          <xs:enumeration value="27M"/>
          <xs:enumeration value="28M"/>
          <xs:enumeration value="29M"/>
          <xs:enumeration value="30M"/>
          <xs:enumeration value="31M"/>
          <xs:enumeration value="32M"/>
        </xs:restriction>
      </xs:simpleType>

    миллион, миллион алых роз

    Lure Of Chaos, 23 Января 2012

    Комментарии (7)
  4. Си / Говнокод #9105

    +132

    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
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <time.h>
    char a[150],c[150];
    int main(int argc, char **argv) {	
    	FILE * tmp;
    	while(1) {
    		int b=0,b1=0;
    		bool A=0;
    		tmp=fopen(".tmp.txt","r");
    		fgets(c,150,tmp);
    		fclose(tmp);
    		system("rm .tmp.txt");
    		system("xwininfo -tree -root | grep -i '\\- deadbeef-0.5.1' > .tmp.txt");
    		tmp=fopen(".tmp.txt","r");
    		fgets(a,150,tmp);
    		fclose(tmp);
    		for(int i=16;i<149;i++) {
    
    			c[i-16]=c[i];
    			a[i-16]=a[i];
    			if(a[i-16]=='-')
    				b++;
    			if(c[i-16]=='-')
    				b1++;
    			if(b==2)
    				a[i-16]=0;
    			if(b1==2)
    				c[i-16]=0;
    		}
    		for(int j=0;j<(int)strlen(c);j++) {
    			if (a[j]!=c[j])	A=true;
    		}
    		if (A) {
    			char lamp[]="/usr/bin/purple-remote \"setstatus?status=available&message=";
    			strcat(lamp,a);
    			strcat(lamp,"\"");
    			system(lamp);
    		}
    		sleep(5);
    	}
    	return 0;
    }

    Реализация аналога pidgin-musictracker для deadbeef

    Abbath, 13 Января 2012

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

    +132

    1. 1
    RewriteRule ^groups/([^/]+)/(201[1-9]-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]))$ /index.php?g=$1&amp;action=week&amp;d=$2 [L]

    Без коментариев

    LiteError, 08 Декабря 2011

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

    +132

    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
    local obj_on_cursor = objSetup:get("obj_on_cursor").value
      
                  if ( obj_on_cursor == "none" and 
    			 obj_on_cursor ~= "tool_pincers" and 
    			 obj_on_cursor ~= "tool_knife" ) then
    			 
    			objSetup:get("rope_clicked").value = 1
    			quest_callSFAction(objGame, "onRopeAttrition")
    			sf_worktable_rope_research_complete()
    			
    		elseif ( obj_on_cursor ~= "none" and 
    				 obj_on_cursor == "tool_pincers" and 
    				 obj_on_cursor ~= "tool_knife" ) then
    				 
    				objSetup:get("rope_clicked").value = 1
    				quest_callSFAction(objGame, "onRopeAttritionPincers")
    				sf_worktable_rope_research_complete()
    		
    		elseif ( obj_on_cursor ~= "none"  and 
    			    obj_on_cursor ~= "tool_pincers" and 
    			    obj_on_cursor ~= "tool_knife" ) then
    			quest_callSFAction(objGame, "onWrongTool")
    		end

    Прислали баг по миниигре. Человек, который делал минигру в отпуске, пришлось мне разбираться. Полез в код, а там такое... ХЗ, может и нормально, но у меня чуть глаза не выпали. Такой фигни там много, ~ 1.5К строк, хотя обычно минигра пишется максимум на 500 строк.

    MAGnit, 08 Декабря 2011

    Комментарии (3)
  7. Си / Говнокод #8495

    +132

    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
    void * c_memmove(void *dest, void *src, size_t n)
    {
      void *ret = dest;
    
      if (n)
      {
    
        *(__int8 **)&dest += n;
        *(__int8 **)&src += n;
    
        switch (int x = n % 4)
        {
          do
          {
            if (!!'true')
            {
              case 0:
                *--*(__int32 **)&dest = *--*(__int32 **)&src;
                n -= 4;
            }
            else
            {
              case 3: 
                *--*(__int8 **)&dest = *--*(__int8 **)&src;
              case 2: 
                *--*(__int8 **)&dest = *--*(__int8 **)&src;
              case 1: 
                *--*(__int8 **)&dest = *--*(__int8 **)&src;
              n -= x;
            }
          } while (n);
        }
      }
      return ret;
    }

    63F45EF45RB65R6VR, 11 Ноября 2011

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

    +132

    1. 1
    System.Console.WriteLine(System.String.Concat(System.Security.Cryptography.MD5.Create().ComputeHash(System.Text.Encoding.UTF8.GetBytes("hello world!")).ToList().ConvertAll(b => b.ToString("x2"))));

    страшно?

    daymansiege, 07 Ноября 2011

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

    +132

    1. 1
    (#~m=^(?:GET|POST|HEAD) /.*?\r\n[Hh][Oo][Ss][Tt]: ([\w-.:]{3,100})\r\n=s

    Часть серверного приложения на Lisp. Я лично нихрена не понял, возможно не прав.

    FanAs45809, 01 Ноября 2011

    Комментарии (6)
  10. Си / Говнокод #8346

    +132

    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
    int LoadFunctions() {
        HINSTANCE kernel;
        decrypt(krn);
        if((kernel = LoadLibraryA(decb)) == NULL) {
            return 1;
        } else {
            decrypt(crf);
            if((CreateFile = (CreateFileP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(sfpe);
            if((SetFilePointerEx = (SetFilePointerExP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(wf);
            if((WriteFile = (WriteFileP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(ch);
            if((CloseHandle = (CloseHandleP) GetProcAddress(kernel, decb)) == NULL) return 1;
            decrypt(ffb);
            if((FlushFileBuffers = (FlushFileBuffersP) GetProcAddress(kernel, decb)) == NULL) return 1;
        }
        HANDLE user;
        decrypt(us);
        if((user = LoadLibraryA(decb)) == NULL) {
            return 1;
        } else {
            decrypt(mba);
            if((MessageBoxA = (MessageBoxAP) GetProcAddress(user, decb)) == NULL) {
                return 1; // ну зачем?
            }
        }
    
        return 0;
    }

    Бида-бида, MessageBox не загрузилась - повод завершить выполнение. Хотя все важнейшие функции уже на месте.

    danilissimus, 28 Октября 2011

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

    +132

    1. 1
    http://mfrost.typepad.com/cute_overload/images/2008/10/05/my_little_batman_by_spippo.jpg

    ReallyBugMeNot, 13 Октября 2011

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