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

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

    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
    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
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    #include <optional>
    
    namespace aim {
    
            template <typename T, template <typename> typename Cont>
            struct is_valid {};
    
            template <typename T, template <typename> typename Cont>
            struct chain;
    
            template <typename T, template <typename> typename Cont>
            struct chain {
                    using value_type_t = T;
                    using holder_t = Cont<value_type_t>;
    
                    chain()
                    {}
    
                    chain(holder_t&& value_)
                    : value(std::move(value_))
                    {}
    
                    template <typename Func>
                    constexpr auto otherwise(Func&& func) {
                            return chain<T, Cont>{std::move(func())};
                    }
    
                    template <typename Func>
                    constexpr auto with(Func&& func) -> chain<value_type_t, Cont> {
                            if (bool(value)) {
                                    return chain<value_type_t, Cont>{Cont<value_type_t>{func(*value)}};
                            }
                            else {
                                    return chain<value_type_t, Cont>{};
                            }
                    }
    
                    holder_t value;
            };
    
            template <typename T, template <typename> typename Cont>
            chain(Cont<T>&&) -> chain<T, Cont>;
    
            template <typename T, template <typename> typename Cont>
            struct use {
                    using value_type_t = T;
                    using holder_t = Cont<value_type_t>;
    
                    use(holder_t&& value)
                    : value(std::move(value))
                    {}
    
                    template <typename Func>
                    constexpr auto with(Func&& func) -> chain<value_type_t, Cont> {
                            if (is_valid<T, Cont>{}(value)) {
                                    return chain<value_type_t, Cont>{Cont<value_type_t>{func(*value)}};
                            }
                            else {
                                    return chain<value_type_t, Cont>{};
                            }
                    }
    
                    holder_t value;
            };
    
            template <typename T, template <typename> typename Cont>
            use(Cont<T>&&) -> use<T, Cont>;
            
    }
    
    namespace aim {
            template <typename T>
            struct is_valid<T, std::optional> {
                    constexpr bool operator()(std::optional<T> const& value) {
                            return bool(value);
                    }
            };
    }
    
    #include <iostream>
    #include <memory>
    
    int main() {
            {
                    std::optional<int> a;
    
                    aim::use(std::move(a)).with([](auto v) {
                            std::cout << v << '\n';
                            return 1;
                    }).otherwise([](){
                            std::cout << "it's none!\n";
                            return 2;
                    }).with([](auto v){
                            std::cout <<  v << '\n';
                            return 3;
                    });
            }
    }

    говно

    j123123, 06 Июля 2017

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function color_search($color) {
         $arColor["COLOR"] = explode(",","aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen,black,dimgray,gray,darkgray,silver,lightgrey,gainsboro,whitesmoke,white,snow,rosybrown,lightcoral,indianred,brown,firebrick,maroon,darkred,red,salmon,mistyrose,tomato,darksalmon,coral,orangered,lightsalmon,sienna,seashell,saddlebrown,chocolate,peachpuff,sandybrown,linen,peru,bisque,darkorange,antiquewhite,tan,burlywood,blanchedalmond,navajowhite,papayawhip,moccasin,oldlace,wheat,orange,floralwhite,goldenrod,darkgoldenrod,cornsilk,gold,lemonchiffon,khaki,palegoldenrod,darkkhaki,ivory,beige,lightyellow,olive,yellow,olivedrab,yellowgreen,darkolivegreen,greenyellow,lawngreen,chartreuse,honeydew,darkseagreen,lightgreen,palegreen,forestgreen,limegreen,darkgreen,green,lime,seagreen,mediumseagreen,mintcream,springgreen,mediumspringgreen,mediumaquamarine,aquamarine,turquoise,lightseagreen,mediumturquoise,azure,paleturquoise,darkslategray,teal,darkcyan,aqua,cyan,lightcyan,darkturquoise,cadetblue,powderblue,lightblue,deepskyblue,skyblue,lightskyblue,steelblue,aliceblue,slategray,lightslategray,dodgerblue,lightsteelblue,cornflowerblue,royalblue,ghostwhite,lavender,midnightblue,navy,darkblue,mediumblue,blue,darkslateblue,slateblue,mediumslateblue,mediumpurple,blueviolet,indigo,darkorchid,darkviolet,mediumorchid,thistle,plum,violet,purple,darkmagenta,fuchsia,magenta,orchid,mediumvioletred,deeppink,hotpink,lavenderblush,palevioletred,crimson");
         if(in_array($color, $arColor["COLOR"])){
             return $color;
         }
     }

    scph77008, 25 Мая 2017

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

    +491

    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
    app::storage()->setUserUploadDir('public');
            app::storage()->avatar = 'profile/avatars';
            app::storage()->background = 'profile/background';
            app::storage()->audioFile = 'music';
            app::storage()->videoFile = 'video/file';
            app::storage()->videoScreen = 'video/screen';
            app::storage()->forum = 'forum';
            app::storage()->systemImages = 'system/images';
            app::storage()->tmpUpload('upload');
     
     
            app::storage()->registerMethod('avatar', function($id, $type = false)
            {
     
                if($type==true){
                    return app::storage()->fileExists(app::storage()->path('avatar').'/'.$id.'.png') ?  '/'.app::storage()->path('avatar').'/'.$id.'.png' : null;
     
                }else{
                    return '/'.app::storage()->path('avatar').'/'.$id.'.png';
     
                }
            } );
     
            app::storage()->registerMethod('defaultAvatar', function()
            {
     
                    return '/'.app::storage()->path('systemImages').'/noavatar.png';
     
            } );

    Загрузка файлов от программиста с двадцатилетним стажем.

    pravka, 24 Августа 2016

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

    +366

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    var organizations =
                test.ExtensionInformation.Cast<object>()
                .Select(ext => ext as GenericPair<string, string>)
                .Where(pair => pair.first == "{$idSenderOrganization}")
                .Where(pair =>
                           {
                               int o_O;
                               return int.TryParse(pair.second, out o_O);
                           })
                .Select(_ => int.Parse(_.second));

    laMer007, 19 Августа 2016

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

    +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
    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
    #include <IO/Stream.h>
    #include "Algorithms/Range.h"
    #include "Algorithms/RangeConstruct.h"
    #include "Algorithms/RangeIteration.h"
    #include "Algorithms/RangeMutation.h"
    
    using namespace IO;
    using namespace Range;
    
    int main()
    {
      Console.PrintLine("Есть нормальная поддержка Юникода в консоли, даже на винде.");
      Console.PrintLine("Тестируется текст с кириллицей, греческим алфавитом αβγδεζηθικλμνξο, а также с иероглифами ㈇㌤㈳㌛㉨.");
      Console.PrintLine("Иероглифы не отображаются в консоли, потому что консольный шрифт их не содержит, но копируются оттуда нормально.");
    
       StringView strs[] = {"hello", "world"};
      StringView strs1[]  = {"range", "testing", "program"};
      StringView strs2[] = {"C++", "крут"};
    
      Console.PrintLine("В тесте используются три массива:", endl, strs, endl, strs1, endl, strs2);
      Console.PrintLine(endl, "Пример вывода initializer list:", endl, AsRange<double>({4353.435, 3243.23, 21.421, 12355.5, 64532}));
    
      auto fib = Recurrence(Algo::Op::Add<int>, 1, 1);
    
      Array<int> fibArr;
      fibArr.SetCountUninitialized(15);
      auto copyResult = fib.Take(15).Copy(fibArr());
      Console.PrintLine(endl, "Последовательность Фибоначчи в массиве: ", endl, fibArr());
      Console.PrintLine(endl, "Вторая половина того же массива задом наперёд: ", endl, fibArr($/2, $).Retro());
    
      fib.Drop(5).Take(15).Copy(fibArr.Insert($));
      Console.PrintLine(endl, "Добавляем 15 чисел Фибоначчи, начиная с пятого, в конец. Новое содержимое массива: ");
      Console.PrintLine(fibArr());
    
      Console.PrintLine(endl, "Объединяем элементы различных диапазонов в диапазоне кортежей: ", endl, ToString(
        Zip(
          fib.Take(30),
          Chain(AsRange(strs), AsRange(strs1), AsRange(strs2)).Cycle().Take(20),
          Recurrence([](int a, int b){return a*2+b;}, 1, 1).Take(17).Cycle().Drop(3).Take(22),
          fib.Take(19).Cycle().Drop(5).Take(50).Stride(3),
          Recurrence(Algo::Op::Mul<ulong64>, 2ull, 3ull).Take(9)
        ), 
        ",\n  ", "[\n  ", "\n]"));
    
    
      static const StringView pattern[] = {"pattern", "fills", "range"};
      Chain(AsRange(strs), AsRange(strs1), AsRange(strs2)).FillPattern(AsRange(pattern));
    
      Console.PrintLine(endl, "Поменяли сразу три массива одним вызовом FillPattern: ");
      Console.PrintLine(strs, endl, strs1, endl, strs2, endl);
    
      Console.PrintLine("11-й элемент зацикленного массива строк: ", endl, AsRange(strs).Cycle().Take(11).Tail(1), endl);
      Console.PrintLine("Перевёрнутый массив строк: ", endl, AsRange(strs).Retro(), endl);
      Console.PrintLine("Зациклили первые два элемента массива и взяли 10 из них:");
      Console.PrintLine(AsRange(strs1).Take(2).Cycle().Take(10) );
      Console.PrintLine("Между массивом строк и 5 числами Фибоначчи выбрали второе в рантайме: ");
      Console.PrintLine(Choose(AsRange(strs1), fib.Take(5).Map([](int x){return ToString(x);}), true) );
    
      static const size_t indices[] = {1,1,1,2,2,0,2,1,0};
      Console.PrintLine(
          RoundRobin(
            AsRange(strs1).Indexed(AsRange(indices)),
            Repeat(StringView("Test"), 5),
            AsRange(strs1),
            AsRange(strs2)
          ));
      
    
      Console.PrintLine(endl, "Введите строки, которые войдут в диапазон строк. В конце введите \"end\".");
      Console.PrintLine("Вы ввели следующие строки:", endl, ToString(Console.ByLine("end")) );
    
      int arr[]={1, 4, 11, 6, 8};
      Console.PrintLine("max{1, 4, 11, 6, 8} = ", AsRange(arr).Reduce(Algo::Op::Max<int>));
    
      Console.PrintLine("Генерация 100 случайных чисел от 0 до 999 и вывод квадратов тех из них, которые делятся на 7: ", endl,
        Generate([](){return math::urandom()%1000;}).Take(100)
        .Filter([](uint x) {return x%7==0;})
        .Map(math::sqr<uint>)
      );
    
      return 0;
    }

    Давно здесь не было моих велосипедов. А они с тех пор сильно эволюционировали, я даже многие фичи из языка D смог перенести в C++.
    Вывод в консоль и обсуждение здесь: http://www.gamedev.ru/flame/forum/?id=216045&page=99#m1481

    gammaker, 20 Июля 2016

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <?	if (mail($mail, $subject, $text, $headers))
    	{
    		?>
    		<?=('<div class="container"><div class="row"><div class="block-header col-lg-12 col-md-12 col-sm-12 col-xs-12"><h2>Благодарим Вас за обращение, в ближайшее время с вами свяжется наш сотрудник.</h2></div></div></div>')?>
    		<?
    	} else {
    		?>
    		<?=('<br><b>Возникли проблемы при отправке почты</b>')?>
    		<?
    	} ?>

    попросили поправить код после предыдущего разраба )

    StTv, 07 Июля 2016

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $aProductType     = [];
    $productName      = $conn->query("SELECT value FROM catalog_product_entity_varchar WHERE entity_id = '" . $value['entity_id'] . "' AND attribute_id = 71")->fetch();
    $productUrl       = $conn->query("SELECT value FROM catalog_product_entity_varchar WHERE entity_id = '" . $value['entity_id'] . "' AND attribute_id = 98")->fetch();
    $productImage     = $conn->query("SELECT value FROM catalog_product_entity_media_gallery WHERE entity_id = '" . $value['entity_id'] . "'")->fetchAll();
    $productPrice     = $conn->query("SELECT value FROM catalog_product_entity_decimal WHERE entity_id = '" . $value['entity_id'] . "' AND attribute_id = 75")->fetch();
    $productType      = $conn->query('SELECT category_id FROM catalog_category_product WHERE product_id = ' . $value['entity_id'])->fetchAll();
    $productAvailable = $conn->query('SELECT qty FROM cataloginventory_stock_item WHERE product_id = ' . $value['entity_id'])->fetch();
    $productDesc      = $conn->query('SELECT value FROM catalog_product_entity_text WHERE entity_id = "' . $value['entity_id'] . '"')->fetch();

    Magento, controller, indexAction, front

    Chel, 07 Июля 2016

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public function payredirectAction() {
    		// Здесь еще какие-то манипуляции с $url
    		// и отключение view
    		echo "<script>window.location.href='" . $url . "';</script>";
    
    	}

    Индусский редирект
    Код на Zend_Framework 1.12

    jbot, 01 Июля 2016

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

    +5

    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
    // Для типа можно вызвать статические методы
    internal bool ЭтоТип;
    // Для перечислений нужно вызывать Enum.Parse(T, name);
    internal bool IsEnum;
    
    // ЭтоExpandoObject тоже отдельно обрабатывается.
    //В дальнейшем реализую поддерку DynamicObject или универсально DynamicMetaObject
    internal bool ЭтоExpandoObject;
    
    // Это анахронизмы от COM
    internal static bool ЭтоСемерка = false;
    internal static bool ВыводитьСообщениеОбОшибке = true;
    internal static Exception ПоследняяОшибка = null;
    
    // Делегат для выделения памяти на стороне неуправляемого кода
    internal static ВыделитьПамятьDelegate ВыделитьПямять;
    //Делегат для сообщения об ошибке в неуправляемый код
    internal static ИнформацияОбОшибкеDelegate ИнформацияОбОшибке;

    https://habrahabr.ru/post/304482
    Здрасте

    cykablyad, 01 Июля 2016

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

    +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
    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
    #include "stdafx.h"
    #include <Windows.h>
    #pragma comment(lib, "gdiplus.lib")
    #include <gdiplus.h>
    #include <vector>
    #include <chrono>
    
    wchar_t* path =
    L"здесь был путь*";
    
    using namespace Gdiplus;
    using namespace std::chrono;
    
    int main()
    {
    	GdiplusStartupInput gdipInput;
    	ULONG_PTR gdipToken;
    	GdiplusStartup(&gdipToken, &gdipInput, NULL);
    	HWND progman = FindWindowW(L"Progman", NULL);
    	HWND workerw = GetWindow(progman, GW_HWNDPREV);
    	HDC dc = GetDC(workerw);
    	
    	std::vector<Bitmap*> images;
    	WIN32_FIND_DATAW fdata = { 0 };
    	HANDLE hFind = FindFirstFileW(path, &fdata);
    	int
    		scrWidth = GetSystemMetrics(SM_CXSCREEN),
    		scrHeight = GetSystemMetrics(SM_CYSCREEN);
    	UINT width, height;
    	bool isInfoRetrieved = false;
    	std::wstring wmp(path);
    	wmp = wmp.substr(0, wmp.length() - 1);
    	do {
    		Bitmap* bmp = Bitmap::FromFile((wmp + fdata.cFileName).c_str());
    		if (bmp->GetLastStatus() != Gdiplus::Ok) continue;
    		int width = bmp->GetWidth();
    		int height = bmp->GetHeight();
    		double ratio = (double)width / height;
    		if (ratio > 1) {
    			width = scrWidth;
    			height = scrWidth / ratio;
    		}
    		else {
    			width = scrHeight * ratio;
    			height = scrHeight;
    		}
    		Bitmap* resized = new Bitmap(width, height, PixelFormat32bppRGB);
    		Graphics* resizedGr = Graphics::FromImage(resized);
    		resizedGr->DrawImage(bmp, 0, 0, width, height);
    		delete resizedGr;
    		delete bmp;
    		images.push_back(resized);
    	} while (FindNextFile(hFind, &fdata));
    	FindClose(hFind);
    	
    	Graphics* mainGr = Graphics::FromHDC(dc);
    	Bitmap* bufBmp = new Bitmap(scrWidth, scrHeight, PixelFormat32bppRGB);
    	Graphics* bufGr = Graphics::FromImage(bufBmp);
    	
    	int count = images.size();
    	int gap = 1000 / count;
    
    	while (true) {
    		for (auto it = images.begin(); it != images.end(); it++) {
    			milliseconds ms1 = duration_cast<milliseconds>(
    				system_clock::now().time_since_epoch());
    			Bitmap* bmp = *it;
    			int width = bmp->GetWidth();
    			int height = bmp->GetHeight();
    			int xOfs = (scrWidth - width) / 2, yOfs = (scrHeight - height) / 2;
    			bufGr->Clear(Color::Black);
    			bufGr->DrawImage(*it, xOfs, yOfs, width, height);
    			mainGr->DrawImage(bufBmp, 0, 0);
    			milliseconds ms2 = duration_cast<milliseconds>(
    				system_clock::now().time_since_epoch());
    			milliseconds delta = ms2 - ms1;
    			if (gap > delta.count())
    				Sleep(gap - delta.count());
    		}
    	}
    	return 0;
    }

    Код для рисования под иконками рабочего стола на винде
    Да, в винде можно так делать

    Нахуй никому не нужно, но выглядит заебись

    cykablyad, 26 Июня 2016

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