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

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

    +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
    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
    \message{Russian hyphenation patterns by D. Vulis,}
    \message{modified by M.Vorontsova and S.Lvovski.}
    \message{Version date: 24.02.96}
    
    --- неинтересная часть пропущена ---
    
    {
     \lccode`\a=`\м
     \lccode`\b=`\г
     \lccode`\c=`\у
     \lccode`\d=`\е
     \lccode`\e=`\с
     \lccode`\f=`\х
     \lccode`\g=`\у
     \lccode`\h=`\к
     \lccode`\i=`\г
     \lccode`\j=`\х
     \lccode`\k=`\м
     \lccode`\l=`\н
     \lccode`\n=`\ъ
     \lccode`\o=`\з
     \lccode`\p=`\й
     \lccode`\q=`\ю
     \lccode`\r=`\д
     \lccode`\s=`\у
     \lccode`\t=`\д
     \lccode`\u=`\х
     \lccode`\v=`\я
     \lccode`\w=`\ы
     \lccode`\x=`\z
     \lccode`\y=`\ь
     \lccode`\z=`\ч
     \lowercase{
      \patterns{
       6jcp. 6usv. 6fgq. 6ucdk.
      }
     }
    }

    Отрывок из образцов переноса слов для TeX'а. Авторы постеснялись написать открытым текстом четыре образца (строка 35), поэтому зашифровали их простой подстановкой.

    Читателю предлагается расшифровать эти образцы и догадаться, чего испугались авторы.

    inkanus-gray, 22 Апреля 2016

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

    +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
    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
    var ls = new List<List<Tuple<Terminal, int>>>();
                var cl = new List<Tuple<Terminal, int>>();
                for (int i = 0; i < Template.Terminals.Count; i++)
                {
                    var term = Template.Terminals[i];
                    var s = term.Text;
                    if (s.Count(c => c == '\n' || c == '\r') > 0)
                    {
                        var arr = s.Split('\n', '\r');
                        for (var j = 0; j < arr.Length - 1; j++)
                        {
                            if (arr[j].Length == 0) arr[j] = " ";
                            cl.Add(Tuple.Create(new Terminal(arr[j], term), i));
                            ls.Add(cl);
                            cl = new List<Tuple<Terminal, int>>();
                        }
                        s = arr[arr.Length - 1];
                    }
                    cl.Add(Tuple.Create(new Terminal(s, term), i));
                }
                ls.Add(cl);
    
                var h = 0d;
                var renderLine = new List<Tuple<double, int, Terminal>>();
                var flag = false;
                foreach (var l in ls)
                {
                    renderLine = new List<Tuple<double, int, Terminal>>();
                    var w = 0d;
                    var lineH = 0d;
                    foreach (var term in l)
                    {
                        var ft = new FormattedText(term.Item1.Text, CultureInfo.CurrentCulture,
                            FlowDirection.LeftToRight, new Typeface("Verdana"), 10, Brushes.Black);
                        ft.Set(term.Item1);
                        lineH = Math.Max(lineH, ft.Height);
                        w += ft.WidthIncludingTrailingWhitespace;
                        renderLine.Add(Tuple.Create(w, term.Item2, term.Item1));
                    }
                    h += lineH;
                    if (p.Y < h) { flag = true; break; }
                }
                pp = p;
                InvalidateVisual();
                if (!flag)
                    return;
                flag = false;
                Tuple<double, int, Terminal> ct = null;
                foreach (var d in renderLine)
                    if (d.Item1 > p.X)
                    {
                        flag = true;
                        ct = d;
                        Debug.WriteLine(d.Item2);
                        _sTermEnd = _sTermStart = d.Item2;
                        break;
                    }
                if (!flag)
                    return;
                var ft1 = new FormattedText(ct.Item3.Text, CultureInfo.CurrentCulture,
                     FlowDirection.LeftToRight, new Typeface("Verdana"), 10, Brushes.Black);
                ft1.Set(ct.Item3);
                var sw = ct.Item1 - ft1.WidthIncludingTrailingWhitespace;
                for (int i = 0; i < ct.Item3.Text.Length; i++)
                {
                    var ch = ct.Item3.Text[i];
                    var ft2 = new FormattedText(ch.ToString(), CultureInfo.CurrentCulture,
                        FlowDirection.LeftToRight, new Typeface("Verdana"), 10, Brushes.Black);
                    ft2.Set(ct.Item3);
                    sw += ft2.WidthIncludingTrailingWhitespace;
                    if (sw > p.X)
                    {
                        Debug.WriteLine(i);
                        _sOffEnd = _sOffStart = i;
                        break;
                    }
                }

    qwe345asd, 13 Апреля 2016

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

    +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
    Action doItWrong;
    var filename = "sdf";
    using (var fileStream = new FileStream(filename,FileMode.Create))
    {
    	doItWrong=()=>
    	{
    		for(int i = 0; i < 10; i++)
    		{
    			fileStream.WriteByte(255);
    		}
    	};
    }
    doItWrong();

    Интересно, почему такое вообще не запрещают компилировать?

    tucvbif, 11 Апреля 2016

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach ($this->diafan->select_arr("status_id") as $id => $value)
    {
    	$first_status = $id;
    	break;
    }

    Сниппет для получения первого ключа массива.

    karpen, 06 Апреля 2016

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

    +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
    type asynchronizer struct {
    	payload interface{}
    }
    
    func (as *asynchronizer) MarshalJSON() ([]byte, error) {
    	insert := []byte("\"async\":true,")
    	if as.payload == nil {
    		as.payload = struct{}{}
    	}
    	raw, err := json.Marshal(as.payload)
    	if err != nil {
    		return raw, err
    	}
    	if raw[1] == '}' {
    		insert = insert[:len(insert)-2]
    	}
    	return append(append(raw[0:1], insert...), raw[1:]...), nil
    }

    Чем дальше в лес, тем больше Го напоминает ПХП.

    wvxvw, 03 Апреля 2016

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

    +5

    1. 1
    2. 2
    3. 3
    .dostali {
    font-weight: bold;
    }

    Достали!!!11

    gk228, 29 Марта 2016

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public enum Status : byte
    {
            Disabled = 0,
            Enabled
    }

    Мопед не мой, прислала боевая подруга из Канады, реальный проект за недетские деньги.
    Лаконичности була не хватило, лучше свой енум сделать, чем писать bool IsEnabled.
    KISS.

    kerman, 28 Марта 2016

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

    +5

    1. 1
    https://meduza.io/shapito/2016/03/24/iskusstvennyy-intellekt-ot-microsoft-za-sutki-polyubil-gitlera-i-voznenavidel-feministok

    RIP in peace, nazi AI ;_;

    CHayT, 25 Марта 2016

    Комментарии (5)
  10. 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)
  11. JavaScript / Говнокод #19622

    +5

    1. 1
    2. 2
    3. 3
    function cache(cache) {
      return cache.cache();
    }

    thepotato, 14 Марта 2016

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