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

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

    +159

    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
    /**
     * @package mod_jlcurrency
     * @author Zhukov Artem ([email protected])
     * @version 1.1
     * @copyright (C) 2012 by JoomLine (http://www.joomline.net)
     * @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
     *
    */
    // No direct access
    defined('_JEXEC') or die('Restricted access');
    $vl = array();
    $vl[$params->get('JPY')]=$params->get('JPY');$vl[$params->get('ZAR')]=$params->get('ZAR');
    $vl[$params->get('KRW')]=$params->get('KRW');$vl[$params->get('CHF')]=$params->get('CHF');
    $vl[$params->get('SEK')]=$params->get('SEK');$vl[$params->get('CZK')]=$params->get('CZK');
    $vl[$params->get('UAH')]=$params->get('UAH');$vl[$params->get('UZS')]=$params->get('UZS');
    $vl[$params->get('TRY')]=$params->get('TRY');$vl[$params->get('TMT')]=$params->get('TMT');
    $vl[$params->get('TJS')]=$params->get('TJS');$vl[$params->get('SGD')]=$params->get('SGD');
    $vl[$params->get('XDR')]=$params->get('XDR');$vl[$params->get('RON')]=$params->get('RON');
    $vl[$params->get('PLN')]=$params->get('PLN');$vl[$params->get('NOK')]=$params->get('NOK');
    $vl[$params->get('MDL')]=$params->get('MDL');$vl[$params->get('LTL')]=$params->get('LTL');
    $vl[$params->get('LVL')]=$params->get('LVL');$vl[$params->get('CNY')]=$params->get('CNY');
    $vl[$params->get('KGS')]=$params->get('KGS');$vl[$params->get('CAD')]=$params->get('CAD');
    $vl[$params->get('KZT')]=$params->get('KZT');$vl[$params->get('INR')]=$params->get('INR');
    $vl[$params->get('EUR')]=$params->get('EUR');$vl[$params->get('USD')]=$params->get('USD');
    $vl[$params->get('DKK')]=$params->get('DKK');$vl[$params->get('HUF')]=$params->get('HUF');
    $vl[$params->get('BRL')]=$params->get('BRL');$vl[$params->get('BGN')]=$params->get('BGN');
    $vl[$params->get('BYR')]=$params->get('BYR');$vl[$params->get('AMD')]=$params->get('AMD');
    $vl[$params->get('GBP')]=$params->get('GBP');$vl[$params->get('AZN')]=$params->get('AZN');
    $vl[$params->get('AUD')]=$params->get('AUD');

    Эмм. Это так и должно быть?

    Rijen, 20 Марта 2015

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

    +54

    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
    // We now have a locale string, but the global locale can be changed by
    // another thread. If we allow this thread's locale to be updated before we're done
    // with this string, it might be freed from under us.
    // Call versions of the wide-to-MB-char conversions that do not update the current thread's
    // locale.
    
    //...
    
    /*
                 * Note that we are using a risky trick here.  We are adding this
                 * locale to an existing threadlocinfo struct, and thus starting
                 * the locale's refcount with the same value as the whole struct.
                 * That means all code which modifies both threadlocinfo::refcount
                 * and threadlocinfo::lc_category[]::refcount in structs that are
                 * potentially shared across threads must make those modifications
                 * under _SETLOCALE_LOCK.  Otherwise, there's a race condition
                 * for some other thread modifying threadlocinfo::refcount after
                 * we load it but before we store it to refcount.
                 */

    MS VS 2013 CRT

    LispGovno, 23 Января 2015

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

    +57

    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
    class C3D
    {
    public:
      //C3D()  {}  // Constructor
      //~C3D()  {}  // Destructor
    
      void(*init)(float R, float A, float B, float Rmin, float Rmax, float Bmin, float Bmax);  // Initialize work with 3D standard camera
      void(*setCamera)(int iType);  // Set type of camera
      void(*setPosition)(float x, float y, float z);  // Set position
      void(*setRender3D)();
      UINT(*addMesh)(LPCWSTR sMesh);  // Add Mesh
      void(*renderMesh)(UINT idMesh, float x, float y, float z);
      void(*renderMeshSubset)(UINT idMesh, UINT idSubset, float x, float y, float z);
      void(*renderMeshSubsetRotateX)(UINT idMesh, UINT idSubset, float x, float y, float z, float a);
    // простыня указателей на функции урезана
    
      void setHModule(HMODULE hLib)
      {
        m_hLib = hLib;
    
        (FARPROC &)init = GetProcAddress(m_hLib, "init3D");  // Initialize work with 3D standard camera
        (FARPROC &)setCamera = GetProcAddress(m_hLib, "setCamera");  // Set type of camera
        (FARPROC &)setPosition = GetProcAddress(m_hLib, "setPosition");  // Set position
        (FARPROC &)setRender3D = GetProcAddress(m_hLib, "setRender3D");
        (FARPROC &)addMesh = GetProcAddress(m_hLib, "addMesh");  // Add Mesh
        (FARPROC &)renderMesh = GetProcAddress(m_hLib, "renderMesh");
        (FARPROC &)renderMeshSubset = GetProcAddress(m_hLib, "renderMeshSubset");
        (FARPROC &)renderMeshSubsetRotateX = GetProcAddress(m_hLib, "renderMeshSubsetRotateX");
    // простыня GetProcAddress урезана
      }
    
    protected:
      HMODULE  m_hLib;  // NetWars.dll
    };

    Некий SDK для MMO-игр за авторством одного известного разработчика.

    bazhenovc, 25 Сентября 2014

    Комментарии (50)
  5. PHP / Говнокод #16256

    +161

    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
    //! Массив типов пользователей
    $UserTypes = array();
    
    $result = $db->Query("SELECT 'Физ.лицо' AS type_user_rus, 'human' AS type_user FROM DUAL
    UNION ALL
    SELECT 'Юр.лицо' AS type_user_rus, 'firm' AS type_user FROM DUAL");
    
    if( $db->isError( $result ) ){
            die( $result->getMessage() . " at line " . __LINE__ . " in file " . __FILE__ );
    }
    
    while( $row = $result->fetchRow( DB_FETCHMODE_ASSOC ) )
    {
        $UserTypes[$row['TYPE_USER']] = $row['TYPE_USER_RUS'];
    }

    Формирование массива с типами клиентов

    psrustik, 30 Июня 2014

    Комментарии (50)
  6. PHP / Говнокод #16208

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if (count($vCard) == 1) {
        print_r($vCard -> n);
        print_r($vCard -> tel);
    } else {
        foreach ($vCard as $vCardPart)
        {
            print_r($vCardPart -> n);
            print_r($vCardPart -> tel);
        }
    }

    https://github.com/nuovo/vCard-parser

    Ну за каким хуем обрабатывать один элемент как отдельный случай?!

    bormand, 23 Июня 2014

    Комментарии (50)
  7. C++ / Говнокод #14416

    +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
    struct Vector2f{float x, y;};
    struct Vector3f{float x, y, z;};
    struct Tensor3f{float xx, xy, xz, yy, yz, zz;};
    struct Matrix3x3f{float data[9];};
    struct Space2
    {
      typedef Vector2f Vector;
    };
    struct Space3
    {
      typedef Vector3f Vector;
    };
    
    
    template<typename Space>
    struct ParticleSystem
    {
      template<typename T>
      struct ParticleData{};
    
      template<> 
      struct ParticleData<Space2>
      {
        float orientation;
        float invInertia;
      };
    
      template<> 
      struct ParticleData<Space3>
      {
        typename Matrix3x3f orientation;
        typename Tensor3f inertiaTensor;
      };
    
      struct Particle : public ParticleData<Space>
      {
        typename Space::Vector pos, velocity;
      };
    
      template<typename T>
      void DumpParticle(){}
    
      template<>
      void DumpParticle<Space2>()
      {
        printf("%f %f", particles[0].orientation, particles[0].invInertia);
      }
    
      template<>
      void DumpParticle<Space3>()
      {
        printf("%f %f", particles[0].orientation.data[0], particles[0].inertia.xx);
      }
      
      void DumpParticles()
      {
        DumpParticle<Space>();
      }
      std::vector<Particle> particles;
    };

    Хочу объединить трехмерный и двухмерный движок.

    LispGovno, 26 Января 2014

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

    +13

    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
    #include <iostream>
    using namespace std;
    
    // -- robot`s internal closed implementation --
    int  data1[] = { 0, 1, 2 }; char data2[] = { 42 };
    
    // -- robot`s API 
    const int *GetMechaData1() { return data1; }
    size_t GetMechaData1Size() { return 3; }
    const char *GetMechaData2(){ return data2; }
    size_t GetMechaData2Size() { return 1; }
    
    // -- pentagon`s internal closed implementation --
    //--------------------если T равно U, то результат будет D, а иначе - G------------//
    template<class T, class U, class D, class G> struct SelectIF     { typedef G type; };
    template<class T, class D, class G>  struct SelectIF<T, T, D, G> { typedef D type; };
    
    // -- pentagon`s API 
    enum { eMAXBUFER = 200 * sizeof(int) };
    template<class T, size_t N>void AcceptData(const T(&src)[N])
    {
        typedef typename SelectIF<T, char, int, T>::type Cast;
        enum { is_char = std::is_same<T,char>::value };
    
        cout << "received data:\n";
        const size_t num = (N<eMAXBUFER) ? N : eMAXBUFER;
    
        if (is_char)
            for (size_t n = 0; n < num; ++n)
                cout << "char code = " << (Cast)src[n] << " : char = '" << src[n] << "'\n";
        else
            for (size_t n = 0; n<num; ++n)
                cout << "item = " << src[n] << endl;
    }
    
    // client code
    template<class T, size_t N> struct Adapter
    {
        typedef Adapter<T, N + 1> Next;
        void Pass(const T* data, const size_t num)
        {
            if (N < num)
            {
                Next().Pass(data, num);
                return;
            }
    
            T(&arr)[N] = reinterpret_cast<  T(&)[N] > (mBuf);
            for (size_t n = 0; n< N; ++n) arr[n] = data[n];
            AcceptData(arr);
        }
    
        size_t mLen;
        T mBuf[eMAXBUFER];
    };
    
    template<class T> struct Adapter<T, eMAXBUFER>
    {
        void Pass(const T* data, const size_t)
        {
            for (size_t n = 0; n< eMAXBUFER; ++n)  mBuf[n] = data[n];
            AcceptData(mBuf);
        }
    
        size_t mLen;
        T mBuf[eMAXBUFER];
    };
    
    
    Adapter<int,  1> adapter1;
    Adapter<char, 1> adapter2;
    
    int main()
    {
        {
            const auto data = GetMechaData1();
            const auto num = GetMechaData1Size();
            adapter1.Pass(data, num);
        }
        {
            const auto data = GetMechaData2();
            const auto num = GetMechaData2Size();
            adapter2.Pass(data, num);
        }
    }

    Крестушки раскрестушились, а подраться не решились.
    Под катом ещё несколько вариантов.

    LispGovno, 19 Января 2014

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

    +1

    1. 1
    std::AIDS

    an0nym, 04 Октября 2013

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

    +141

    1. 1
    2. 2
    3. 3
    http://d.topic.lt/Fm_fi/images/picsw/042008/09/funy_police/013_funy_police.jpg
    
    Ох, мама мия. Слабонервным не смотреть.

    Лучше будет, если коментарий напишет кто-то другой, а то монитор из под стола не видно...

    Stertor, 12 Сентября 2013

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

    −171

    1. 1
    КоличествоСтрокТоваров  = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(ЭтотОбъект.Ссылка.УникальныйИдентификатор()).Товары.Количество();

    программист-снайпер, убивает одной строкой кода.

    BlackMamba, 19 Июня 2013

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