1. C++ / Говнокод #3235

    +993

    1. 1
    2. 2
    // Randomize
    #define srand(x) srand(x + GetCurrentThreadId())

    Чтобы в разных тредах не выдавало одинаковые последовательности

    k06a, 14 Мая 2010

    Комментарии (19)
  2. C++ / Говнокод #3234

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class cout_mt : public std::ostringstream
    {
    public:
       ~mt_ostream()
       {
          std::cout << str();
       }
    };
    
    #define cout static_cast<cout_mt&>(cout_mt())

    Для того чтобы не разрывались строки вида: cout << "Value = " << value << ";" << endl; при использовании таких вызовов из нескольких тредов, а то ведь каждый оператор << является вызовом функции и частенько треды мешаю друг другу выводить . . .

    k06a, 14 Мая 2010

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

    +987

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    enum State
    {
       NotOpened  = __LINE__;
       Waiting    = __LINE__;
       Opened     = __LINE__;
       Finished   = __LINE__;
       Terminated = __LINE__;
    };

    k06a, 14 Мая 2010

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

    +1005

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #define KB * 1024
    #define MB KB KB
    #define GB MB KB
    #define TB GB KB
    
    int main( ... )
    {
       char * arr = new char [16 MB];
       ...
    }

    k06a, 14 Мая 2010

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

    +157

    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
    // ...
    // xcrement - (in|de)crement
    // ...
    bool parse( . . . , int xcrement, . . . )
    {
       ...
       while ( ... )
       {
          ...
          index += xcrement;
       }
       ...
    }

    k06a, 14 Мая 2010

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

    +132

    1. 1
    assert(!"Can't change this parameter.");

    k06a, 14 Мая 2010

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

    +81

    1. 1
    Network notwork = null;

    Ну и естественно, что нихрена не работает...

    raorn, 14 Мая 2010

    Комментарии (3)
  8. Java / Говнокод #3228

    +74

    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
    public void write(byte[] bytesToSend) {
            // System.out.println("Write begin.");
            try {
                socket.setSoTimeout(10000);
                packageID = 0;
                // Add bytes to send
                saveBytesToPackeges(bytesToSend);
                // Begin new Thread to be sure it was delivered
                mySendChecker = new SendChecker();
                Thread myThread = new Thread(mySendChecker);
                myThread.start();
                byte[] buf2 = new byte[50];
                // Sending number of packeges
                byte[] buf = bytesFromInt(numberOfPackages);
                for (int i = 0; i < 4; i++) {
                    buf2[i] = buf[i];
                    
                }
                packageID = -2;
                buf = packetFromBytes(buf2, sizeOfPackage - 4);
                DatagramPacket myPacket = new DatagramPacket(buf, buf.length,
                        addressToSendTo, portToSendTo);
                socket.send(myPacket);
                mySendChecker.setPacket(-2, myPacket);
                // recieve answer
                socket.receive(myPacket);
                buf = myPacket.getData();
                  mySendChecker.removePacket(-2);
                // send delieverer
                buf = packetFromBytes(buf2, sizeOfPackage - 4);
                socket.send(myPacket);
                // starting to send data
                for (int i = 0; i < numberOfPackages; i++) {
                    myPacket = new DatagramPacket(bytesToSendSave[i],
                            bytesToSendSave[i].length, addressToSendTo,
                            portToSendTo);
                    socket.send(myPacket);
                    mySendChecker.setPacket(i, myPacket);
                }
                // start to recieve answers
                int numberOfPackegeRecieved = 0;
                while (true) {
                    buf = new byte[8];
                    if (mySendChecker.isEmpty()) {
                        break;
                        
                    }
                    myPacket = new DatagramPacket(buf, buf.length);
                    socket.receive(myPacket);
                    buf = myPacket.getData();
                    numberOfPackegeRecieved = intFromBytes(buf, 4);
                    if (-3 != intFromBytes(buf, 4)) {
                        continue;
                        
                    }
                    numberOfPackegeRecieved = intFromBytes(buf, 0);
                    mySendChecker.removePacket(numberOfPackegeRecieved);
                    myPacket = new DatagramPacket(buf, buf.length, addressToSendTo,
                            portToSendTo);
                    socket.send(myPacket);
                }
                buf = bytesFromInt(-5);
                myPacket = new DatagramPacket(buf, buf.length, addressToSendTo,
                        portToSendTo);
                socket.send(myPacket);
                mySendChecker.setPacket(-5, myPacket);
                // System.out.println("WRITE Sending -5");
                while (true) {
                    buf = new byte[4];
                    myPacket = new DatagramPacket(buf, buf.length);
                    socket.receive(myPacket);
                    buf = myPacket.getData();
                    if (-5 == intFromBytes(buf, 0)) {
                        // System.out.println("WRITE recieved -5");
                        break;
                    }
                }
                mySendChecker.end();
                
                socket.setSoTimeout(100);
                while (true) {
                    try {
                        socket.receive(myPacket);
                    } catch (SocketTimeoutException e) {
                        break;
                    }
                }
                socket.setSoTimeout(0);
                // System.out.println("Write end.");
                ... TO BE CONTINUED ...

    Лучшая реализация потокового протокола поверх UDP среди студентов. Остальное в таком же стиле.

    rootman, 14 Мая 2010

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

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function getItemsList ($category_id, $page_number, $count, $sort) {
    	ini_set ('display_errors', 'Off');
            $arr = $this->grabber_api_class->loadItemsByCategoryID ($category_id, $page_number, $count, $sort);
    	ini_set ('display_errors', 'On');
    		
    	return $arr;
    	
    }

    minisot, 14 Мая 2010

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

    +119

    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
    private static bool TryDeleteFile(string path)
            {
                try
                {
                    File.Delete(path);
                    return true;
                }
                catch (IOException e)
                {
                    return false;
                }
                catch (UnauthorizedAccessException e)
                {
                    return false;
                }
                catch (ArgumentException ae)
                {
                    return false;
                }
                catch (NotSupportedException e)
                {
                    return false;
                }
            }

    Простое удаление файла. Простая проверка в MSDN показывает, что перехватываются все возможные исключения

    gopher, 14 Мая 2010

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