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

    В номинации:
    За время:
  2. Куча / Говнокод #26629

    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
    import sequtils
    
    when not declared(unzip):
      proc unzip*[S, T](s: openArray[(S, T)]): (seq[S], seq[T]) =
        result[0] = newSeq[S](s.len)
        result[1] = newSeq[T](s.len)
        for i in 0..<s.len:
          result[0][i] = s[i][0]
          result[1][i] = s[i][1]
    
    let a = @[('a', 1), ('b', 2), ('c', 3)]
    let b = unzip(a) # version 1.0 will use the proc declared above
                     # version 1.2 will use sequtils' proc
    
    assert b == (@['a', 'b', 'c'], @[1, 2, 3])

    Если в библиотеке нет нужного метода, вы можете написать его сами и кинуть в сторону своих пользователей.

    Desktop, 01 Мая 2020

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

    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
    https://github.com/boundary/wireshark/blob/master/epan/dissectors/packet-rpc.c
    
    /* compare 2 keys */
    static gint
    rpc_proc_equal(gconstpointer k1, gconstpointer k2)
    {
    	const rpc_proc_info_key* key1 = (const rpc_proc_info_key*) k1;
    	const rpc_proc_info_key* key2 = (const rpc_proc_info_key*) k2;
    
    	return ((key1->prog == key2->prog &&
    		key1->vers == key2->vers &&
    		key1->proc == key2->proc) ?
    	TRUE : FALSE);
    }

    OlegUP, 08 Апреля 2020

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

    +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
    > At its core, Swarm implements a distributed content-addressed chunk store. 
    > Chunks are arbitrary data blobs with a fixed maximum size (currently 4KB). 
    > Content addressing means that the address of any chunk is deterministically derived from its content. 
    > The addressing scheme falls back on a hash function which takes a chunk as input and returns a 32-byte long key as output. 
    > A hash function is irreversible, collision free and uniformly distributed (indeed this is what makes bitcoin, and in general proof-of-work, work).
    
    исключая лишнее
    
    > derived from content
    > content = 4KB
    > 32-byte output
    > collision free!

    И еще немного несвежых новостей из мира, где «блокчейн» стал устойчивым синонимом слова «распределенный»

    https://blog.ethereum.org/2016/12/15/swarm-alpha-public-pilot-basics-swarm/

    Fike, 07 Марта 2020

    Комментарии (9)
  5. Си / Говнокод #26381

    +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
    // I'm interested in using something other than the C preprocessor to preprocess my C and Objective-C source code. Are there good alternatives?
    //
    // ---
    //
    // You can use PHP as a C preprocessor. The advantages are:
    //
    // - very similiar syntax, so syntax highlighting works.
    // - <? and ?> are not used in standard C (with non-standard C, the only thing that gets broken is old GCC extension operator that returns min/max)
    // - it's rich in libraries.
    // - it's turing complete.
    // - usage of macros is very explicit. (compared to sneaky C preprocessor macros)
    // For serious use though, making PHP print the #line directives is needed for debugging preprocessed code.
    
    <?php include_once "stdio.h"; ?>
    
    int main()
    {
        <?php
            for($i = 0; $i < 20; $i++)
                echo 'printf("%d\n", '.$i.');';
        ?>
    }

    https://stackoverflow.com/a/16256052

    абсолютно невыносимо

    Fike, 25 Января 2020

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static void ActivateChangeHotKeyButtonModeButtonClick(object sender, EventArgs e)
    {
           TaskBarHidderForm.ChangeHotKeyPanel.Visible = true;
           TaskBarHidderForm.KeyButtons[0].Text = TaskBarHidder.HotKeyCodes[0].ToString();
           TaskBarHidderForm.KeyButtons[1].Text = TaskBarHidder.HotKeyCodes[1].ToString();
    }

    кодить под пивко заебись :)

    pashaluk31, 21 Января 2020

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

    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
    99. 99
    class Display 
    { 
    public: 
    //pin 10_CS_LOAD  pin 11_DIN  pin 13_CLK
    const int CS = 10;//CS на 10 пине
    
    void R1_R2 (char x,char y)//метод вывода чисел 0-99 в разряды 1,2 c гашением нуля
    {
      char k1,k2;
      if(x<10)
       {
       if(y==1) //если включена точка 
          { SPI_out(2, arr_seg[x]+128);} //вывести число во второй разряд с точкой
       else//выключена точка
         { SPI_out(2, arr_seg[x]);} //вывести число во второй разряд без точки
       
       SPI_out(1, 0 );//в первый записать все нули ,и погасить его 
       return; //завершить метод
       }
    
       else
       {
        k1=0;
        k2=x; while (k2>=10) {k1++; k2=k2-10;}
        SPI_out(1,arr_seg[k1]); //вывести число в первый разряд
        if(y==1) //если включена точка 
        {SPI_out(2,arr_seg[k2]+128);} //вывести число во второй разряд c точкой
        else{SPI_out(2,arr_seg[k2]);} //без точки
        }
    }
    
    void R2_R3 (char x)//метод вывода чисел 0-99 в разряды 2,3 (темепература)
    {
    char k1,k2;
    
    if(x<10)
        {
      SPI_out(2,0); //пробел во второй разряд
      SPI_out(3,arr_seg[x]); //вывести число в третьий разряд   
        }
    else {
      
        k1=0;
        k2=x; while (k2>=10) {k1++; k2=k2-10;}
    
      SPI_out(2,arr_seg[k1]); //вывести число во второй разряд без точки
      SPI_out(3,arr_seg[k2]); //вывести число в третьий разряд
      }
    }
    
    void R3_R4 (char x,char y)//метод вывода чисел 0-99 в разряды 3,4
    {
      char k1,k2;
        k1=0;
        k2=x; while (k2>=10) {k1++; k2=k2-10;}
    
        if(y==1) //если включена точка
        { SPI_out(3,arr_seg[k1]);} //вывести число в третьий разряд без точки
        else
        {SPI_out(3,arr_seg[k1]+128); }//вывести число в третьий разряд с точкой 
        
        SPI_out(4,arr_seg[k2]); //вывести число в четвертый разряд
    }
    
    void R1 (unsigned char x,boolean p) //метод для отрисовки в первом разряде
    {
    if(p==true) //если активированна точка
    { SPI_out(1, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
     else {SPI_out(1, arr_seg[x]);} 
    }
    
    void R2 (unsigned char x,boolean p) //метод для отрисовки во втором разряде
    {
    if(p==true) //если активированна точка
    { SPI_out(2, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
     else {SPI_out(2, arr_seg[x]);} 
    }
    
    void R3 (unsigned char x,boolean p) //метод для отрисовки в третьем разряде
    {
    if(p==true) //если активированна точка
    { SPI_out(3, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
     else {SPI_out(3, arr_seg[x]);} 
    }
    
    void R4 (unsigned char x,boolean p) //метод для отрисовки в четвертом разряде
    {
    if(p==true) //если активированна точка
    { SPI_out(4, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
     else {SPI_out(4, arr_seg[x]);} 
    }
    
    //метод отрисовки во всех разрядах сразу
    void allraz (unsigned char a,unsigned char b,unsigned char c,unsigned char d) 
    {
    SPI_out(1, arr_seg[a]);
    SPI_out(2, arr_seg[b]);
    SPI_out(3, arr_seg[c]);
    }

    автору 40 лет, на секундочку

    pashaluk31, 05 Января 2020

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

    −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
    var req = indexedDB.open('site');
    		req.onupgradeneeded = function() {
    			let db = this.result;
    			if(!db.objectStoreNames.contains('files'))
    				db.createObjectStore('files', { autoIncrement: true });
    		};
    		req.onsuccess = function() {
    			let db = this.result;
    			let t = db.transaction('files', 'readwrite');
    			let file = t.objectStore('files');
    			let str = new Date().toString().repeat(1000);
    			while(true)
    				file.add(str);
    		};

    Эту бомбу лучше ставить после полной загрузки страницы

    codershitter, 30 Декабря 2019

    Комментарии (9)
  9. Ruby / Говнокод #26267

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    - @a_parts.each do |part|
                .part.uk-card.uk-card-default.uk-card-hover data-id=part.id
                  - p_image = "/images/no_photo.png"
                  - if part.image
                    - images = part.image.split(',')
                    - p_image = (images[0] == nil) ? "/images/no_photo.png" : "/images/compressed_#{images[0]}"
                    - p_img = (images[0] == nil) ? "/images/no_photo.png" : "/images/#{images[0]}"
                    - p_image = p_img unless File.exists?("#{Rails.root.to_s}/public/images/compressed_#{images[0]}")
                    - if images[0].split('http').length > 1
                      - p_image = images[0]

    Все внимание к 6,7 и 9 строке
    6 и 7 строка позитивное условие тернарного оператора не может случиться
    9 строка - хотя если вдруг случится, то вылетит тут с ошибкой. так как nil нельзя ни split'нуть, ни дальше посчитать длину

    supaweb, 14 Декабря 2019

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

    +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
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    class HTMLCheapRedactor
    {
        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Form a = new Form() { Text = "HTML Doc" },
                b = new Form() { Text = "HTML Code" };
            var web = new WebBrowser() { Dock = DockStyle.Fill };
            var txt = new TextBox()
            {
                Multiline = true,
                Dock = DockStyle.Fill,
                ScrollBars = ScrollBars.Both,
                Font = new Font("Consolas", 12f),
                WordWrap = false,
                AcceptsTab = true
            };
            web.DataBindings.Add(new Binding("DocumentText", txt, "Text"));
            a.Controls.Add(web);
            b.Controls.Add(txt);
            b.Show();
            b.AddOwnedForm(a);
            txt.Text = @"<html>
    <head>
         <title>Hello World!</title>
    </head>
    <body>
         Hello World!
    </body>
    </html>";
            Application.Run(a);
        }
    }

    groser, 24 Ноября 2019

    Комментарии (9)
  11. Java / Говнокод #26035

    +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
    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
    public class AdvancedBoolean {
        private boolean result;
        private DefenitionDictionary.RESULT_CODE code;
        
        
        
    //------------------------------------------------------------------------------  
    //constructors
    //------------------------------------------------------------------------------       
        public AdvancedBoolean() {
            result = true;
        }
            
        public AdvancedBoolean(boolean _result) {
            result = _result;
        }
     
         
        public AdvancedBoolean(boolean _result, DefenitionDictionary.RESULT_CODE _code) {
            result = _result;
            code = _code;
        }
    
        
        
    //------------------------------------------------------------------------------
    //get methods
    //------------------------------------------------------------------------------     
        public boolean isResult() {
            return result;
        }
    
        public DefenitionDictionary.RESULT_CODE getCode() {
            return code;
        }
    
    
            
    //------------------------------------------------------------------------------
    //set methods
    //------------------------------------------------------------------------------ 
        public void setResult(boolean _result) {
            result = _result;
        }
        
        public void setCode(DefenitionDictionary.RESULT_CODE _code) {
            code = _code;
        }
        
        
        
    //------------------------------------------------------------------------------
    //other methods
    //------------------------------------------------------------------------------     
        public String getLabel() {
            return code.getResultLabel();
        }
    }

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

    Veers, 19 Ноября 2019

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