1. JavaScript / Говнокод #19685

    −3

    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 too many vertices, start a new mesh;
                if (vertices.length > 65000) {
                    // finalize the old mesh	
                    mesh.triangles = triangles;
                    mesh.vertices = vertices;
                    mesh.colors = colors;
                    mesh.computeWireframe();
                    mesh.computeNormals();
    
                    if (mesh.vertices.length) {
                        meshes.push(mesh);
                    }

    не добавляем пустые меши, нафиг они нам

    makc3d, 23 Марта 2016

    Комментарии (8)
  2. PHP / Говнокод #19684

    0

    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
    <?php
      header('Content-Type: text/plain;'); //Мы будем выводить простой текст
      set_time_limit(0); //Скрипт должен работать постоянно
      ob_implicit_flush(); //Все echo должны сразу же отправляться клиенту
      $address = 'localhost'; //Адрес работы сервера
      $port = 1985; //Порт работы сервера (лучше какой-нибудь редкоиспользуемый)
      if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
        //AF_INET - семейство протоколов
        //SOCK_STREAM - тип сокета
        //SOL_TCP - протокол
        echo "Ошибка создания сокета";
      }
      else {
        echo "Сокет создан\n";
      }
      //Связываем дескриптор сокета с указанным адресом и портом
      if (($ret = socket_bind($sock, $address, $port)) < 0) {
        echo "Ошибка связи сокета с адресом и портом";
      }
      else {
        echo "Сокет успешно связан с адресом и портом\n";
      }
      //Начинаем прослушивание сокета (максимум 5 одновременных соединений)
      if (($ret = socket_listen($sock, 5)) < 0) {
        echo "Ошибка при попытке прослушивания сокета";
      }
      else {
        echo "Ждём подключение клиента\n";
      }
      do {
        //Принимаем соединение с сокетом
        if (($msgsock = socket_accept($sock)) < 0) {
          echo "Ошибка при старте соединений с сокетом";
        } else {
          echo "Сокет готов к приёму сообщений\n";
        }
        $msg = "Hello!"; //Сообщение клиенту
        echo "Сообщение от сервера: $msg";
        socket_write($msgsock, $msg, strlen($msg)); //Запись в сокет
        //Бесконечный цикл ожидания клиентов
        do {
          echo 'Сообщение от клиента: ';
          if (false === ($buf = socket_read($msgsock, 1024))) {
            echo "Ошибка при чтении сообщения от клиента";       }
          else {
            echo $buf."\n"; //Сообщение от клиента
          }
          //Если клиент передал exit, то отключаем соединение
          if ($buf == 'exit') {
            socket_close($msgsock);
            break 2;
          }
          if (!is_numeric($buf)) echo "Сообщение от сервера: передано НЕ число\n";
          else {
            $buf = $buf * $buf;
            echo "Сообщение от сервера: ($buf)\n";
          }
          socket_write($msgsock, $buf, strlen($buf));
        } while (true);
      } while (true);
      //Останавливаем работу с сокетом
      if (isset($sock)) {
        socket_close($sock);
        echo "Сокет успешно закрыт";
      }
    ?>

    HiNeX, 23 Марта 2016

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

    −2

    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
    // POST /login
    exports.login = function login(req, res) {
        var email = req.body.email;
        var password = req.body.password;
    
        security.rateLimitRequest( 'reset', req, function( err ) {
            if ( err )
                return res.status( 400 ).send( err );
            db.Account.find({email: email, password: password}, function(err, account) {
                if ( err )
                    return res.status( 400 ).send( err );
                account.getAccountStatistics(account, function(err, account) {
                    if ( err )
                        return res.status( 400 ).send( err );
                    account.incrementAccountLoginCount(account, function(err) {
                        if ( err )
                           return res.status( 400 ).send( err );
                        res.send(account);
                    });
                });
            });
        });
    });

    У меня радость во все поля:

    // POST /login
    exports.login = function *login() {
    var email = req.body.email;
    var password = req.body.password;

    try
    {
    // Throws an error if rate limit exceeded
    yield security.rateLimitRequest( 'reset', req );

    // Query MongoDB for account
    var account = yield db.Account.find({email: email, password: password});
    account.statistics = yield account.getAccountStatistics(account);

    // Increment login count
    yield account.incrementAccountLoginCount(account);

    this.body = account;
    }
    catch( err ) {
    // Return the error as JSON
    return res.status( 400 ).send( err );
    }
    });

    LispGovno, 23 Марта 2016

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

    +10

    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 class KOKOKO
    #include <sys/shutdown.h>
    #undef class
    
    /* внутри sys/shutdown.h:
    
    typedef struct
    {
        uint64_t start_time;
        pid_t pid;
        int8_t class;
        uint8_t padding[3];
        char *name;
    } ProcessInfo_t;
    */

    перезагружаем qnx neutrino из крестового кода

    Xom94ok, 22 Марта 2016

    Комментарии (26)
  5. JavaScript / Говнокод #19678

    0

    1. 1
    [][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()

    JSF*ck - http://www.jsfuck.com/.

    ЗЫ http://blog.checkpoint.com/2016/02/02/ebay-platform-exposed-to-severe-vulnerability/ - санитация ввода в ж.

    Dummy00001, 22 Марта 2016

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

    −1

    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
    (* basic power axiom
    safe_comp_power x y =
        case
            (x = 0) and (y <> 0) -> 1
            (x = 1) -> x
            ((x <> 0) and (y >= 0)) or ((x = 0) and (y > 0)) -> x * (safe_comp_power x (y - 1))
    *)
    
    logic safe_comp_pow : int, int -> int
    
    axiom safe_comp_pow_int_A_1 : forall x : int. (x <> 0) -> safe_comp_pow(x, 0) = 1
    
    axiom safe_comp_pow_int_A_2 : forall x : int. safe_comp_pow(x, 1) = x
    
    axiom safe_comp_pow_int_A_3 : forall x,y : int. ((x <> 0) and (y >= 0)) or ((x = 0) and (y > 0)) -> safe_comp_pow(x, y) = x*(safe_comp_pow(x,y-1))
    
    
    goal g_1 :
      forall a,n : int.
      a <> 0 -> n >= 0 ->
      safe_comp_pow(a,n+1) = safe_comp_pow(a,n)*a

    Язык для SMT солвера alt-ergo https://alt-ergo.ocamlpro.com/try.php . Аксиомы для возведения в степень. Возводить в отрицательную степень нельзя. Ноль в степени ноль - нельзя. Логика первого порядка. Должна быть справедлива для целых. Правда в одной аксиоме я допустил баг. Я его уже нашел. Можете тоже попробовать найти его

    j123123, 22 Марта 2016

    Комментарии (19)
  7. PHP / Говнокод #19676

    0

    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
    public function getWinnerEmail($id)
    {
            if (!is_numeric($id)) {
                throw new BadRequestHttpException('Ошибка:' . __FUNCTION__ . ' ' . __LINE___);
            }
    
            //$project = Projects::findOne(['id' => $id]);
            $project = (new \yii\db\Query())
                ->select(['id', 'win_user_id'])
                ->from(self::tableName())
                ->where(['id' => $id])
                ->one();
    //        if ($project['win_user_id'] == null) {
    //            return false;
    //        }
    
            $result = User::findOne(['id' => $project['win_user_id']]);
            if ($result != null) {
                return ['id' => $result->id, 'email' => $result->email];
            }
    }

    Метод модели "Project"
    PHP-Framework yii2

    NotFake, 22 Марта 2016

    Комментарии (6)
  8. JavaScript / Говнокод #19674

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    (function extend(o, l) {
      return Object.defineProperty(o, 'this', { 
        get: O => extend(O = (x, y) => y ? o(x, O(x, y - 1)) : l ^ 1)
      });
    })(this.this = (x, y) => x + y, 1);

    Почти стрелочная нотация Кнута.
    this.this(2,3) = 2 + 3
    this.this.this(2,3) = 2 * 3
    this.this.this.this(2,3) = 2 ↑ 3
    this.this.this.this.this(2,3) = 2 ↑↑ 3 и т.д.
    По следам http://govnokod.ru/19651#comment317168.

    1024--, 22 Марта 2016

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

    +1

    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
    public class ResultBase {
            private ColumnCollections _columns;
            private ArrayList _rows;
    ...
    }
    ...
    public class ColumnCollections : System.Collections.Specialized.NameObjectCollectionBase {}
    ...
            public int Compare(object x, object y) {
                if (x != null && y != null) {
                    object[] objX = x as object[];
                    object[] objY = y as object[];
    
                    if (objX != null && objY != null && objX.Length > 0 && objX.Length == objY.Length) {
                        switch (_ColumnType.FullName) {
                            case "System.Int16":
                                if (_Direction == DirectionType.ASC) {
                                    return ((short)objX[_ColumnIndex]).CompareTo((short)objY[_ColumnIndex]);
                                } else {
                                    return ((short)objY[_ColumnIndex]).CompareTo((short)objX[_ColumnIndex]);
                                }
                            case "System.Int32":
                                if (_Direction == DirectionType.ASC) {
                                    return ((int)objX[_ColumnIndex]).CompareTo((int)objY[_ColumnIndex]);
                                } else {
                                    return ((int)objY[_ColumnIndex]).CompareTo((int)objX[_ColumnIndex]);
                                }
                            case "System.Int64":
                                if (_Direction == DirectionType.ASC) {
                                    return ((long)objX[_ColumnIndex]).CompareTo((long)objY[_ColumnIndex]);
                                } else {
                                    return ((long)objY[_ColumnIndex]).CompareTo((long)objX[_ColumnIndex]);
                                }
                            case "System.Double":
                                if (_Direction == DirectionType.ASC) {
                                    return ((double)objX[_ColumnIndex]).CompareTo((double)objY[_ColumnIndex]);
                                } else {
                                    return ((double)objY[_ColumnIndex]).CompareTo((double)objX[_ColumnIndex]);
                                }
                            case "System.Decimal":
                                if (_Direction == DirectionType.ASC) {
                                    return ((decimal)objX[_ColumnIndex]).CompareTo((decimal)objY[_ColumnIndex]);
                                } else {
                                    return ((decimal)objY[_ColumnIndex]).CompareTo((decimal)objX[_ColumnIndex]);
                                }
                            case "System.Single":
                                if (_Direction == DirectionType.ASC) {
                                    return ((float)objX[_ColumnIndex]).CompareTo((float)objY[_ColumnIndex]);
                                } else {
                                    return ((float)objY[_ColumnIndex]).CompareTo((float)objX[_ColumnIndex]);
                                }
                            case "System.String":
                                String sX = (!Convert.IsDBNull(objX[_ColumnIndex])) ? (String)objX[_ColumnIndex] : String.Empty;
                                if (String.IsNullOrEmpty(sX)) {
                                    sX = "";
                                }
    
                                String sY = (!Convert.IsDBNull(objY[_ColumnIndex])) ? (String)objY[_ColumnIndex] : String.Empty;
                                if (String.IsNullOrEmpty(sY)) {
                                    sY = "";
                                }
    
                                if (_Direction == DirectionType.ASC) {
                                    return sX.CompareTo(sY);
                                } else {
                                    return sY.CompareTo(sX);
                                }
                            case "System.DateTime":
                                if (_Direction == DirectionType.ASC) {
                                    return ((DateTime)objX[_ColumnIndex]).CompareTo((DateTime)objY[_ColumnIndex]);
                                } else {
                                    return ((DateTime)objY[_ColumnIndex]).CompareTo((DateTime)objX[_ColumnIndex]);
                                }
                            case "System.Boolean":
                                if (_Direction == DirectionType.ASC) {
                                    return ((Boolean)objX[_ColumnIndex]).CompareTo((Boolean)objY[_ColumnIndex]);
                                } else {
                                    return ((Boolean)objY[_ColumnIndex]).CompareTo((Boolean)objX[_ColumnIndex]);
                                }
                        }
                    }
                }
    
    
                return 0;
            }

    достался мне в наследство код, который я года два поддерживал. никогда не вдавался в код той тулзы, которая из базы результаты возвращяла, пока не пришлось описать проект комментариями, чтобы отдать его клиенту.
    компарер просто божественен...
    я конечно точно не знаю, кто это писал, но за то знаю, кому пренадлежил авторство конкретной версии, но за то знаю, кто писал первую... и этот человек мне еще говорил, что мой экстеншен в 50 строк, который через рифлексию миллион строк из IDataReader за секунду в коллекцию объектов возвращял, уверял меня, что это медленное и корявое говно. нет, это медленное и корявое говно!

    господи, за что?

    Lokich, 21 Марта 2016

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

    +1

    1. 1
    https://habrahabr.ru/company/tm/blog/279759/

    На Швабре можно постить гоатсе.

    Vasiliy, 21 Марта 2016

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