1. Куча / Говнокод #18469

    +138

    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
    /*
    
    Исходный код бутлоадера непонятными букафками
    vk.com/wctstudio
    
    */
    
    Lp BP hm	// В регистр SI помещаем адрес сообщения
    Pi AL aa	// Вызываем функцию печати строки
    Pl OP		// Вечный цикл для корректной работы программы
    
    /* Процедура печати символа (процедура 1) */
    
    Le AP		// Помещаем в регистр AH число AP (15). Объясняем БИОС-у то, 
    		// что нам нужно вывести один символ на экран. В регистре AL
    		// хранится ASCII значение нашего сообщения
    Lh AA		// В регистр BH - 0, соответственно, это и есть номер страницы
    Ld AH		// Ну а в регистр BL - 7, это значит, что у нас будет выводиться
    		// светло-серый текст на черном фоне
    
    Mn BA		// Как только видим Mn - сразу вспоминаем, что это прерывание
    		// На данный момент это прерывание 16 (десятичная система)
    		// а в hex - знакомое нам прерывание 0x10.
    		// Это прерывание BIOS - видео сервис
    
    Md		// Выходим из процедуры
    
    /* Процедура вывода строки на экран (процедура 2) */
    
    // вывод символа (процедура 3)
    
    Ik AE		// Помещаем в регистр AL значение из SI
    Eg		// Инкренмент (увеличение на единицу) регистра SI
    
    Ai MA		// Если значение регистра AL - 0 (т.е. строка закончилась), то
    He AF		// заканчиваем выполнение программы (выполнение процедуры 4)
    		// - 5 байт вперед на команду Md (выход из программы)
    
    Pi PN oo	// Если же строка не закончилась, то выполняем процедуру 1
    		// т.е. выводим символ, который находится в AL
    
    Pl OE           // Берем следующий символ из строки (выполнение процедуры 3)
    
    Md		// Все, закругляемся и выходим из программы
    
    FH GD HE CA	// ASCII: Wct (пробел)
    GO GP GF CA 	// 	  one (пробел)
    GM GO HG GF	//	  love
    Aa		// Конец строки обязан заканчиваться нулем, т.е. Aa :)
    
    /* У нас осталось свободное место, до 512 байт нам нужно написать недостающие Aa (0) */
    
    Aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 
    aa aa aa aa aa aa aa
    
    // До 512 байт нам не хватает всего двух байтов..
    
    Ff KK		// FF KK - подпись загрузчика, чтобы компьютер понял,
    		// что это загрузчик, и его необходимо загрузить в
    		// память. В windows есть подписи "MZ" & "PE", а тут
    		// такое вот дело.

    Не многие поймут этот код. Вернее, не многие лишь поймут код сей. Зачем это? Отвечаю: для того, чтобы помять моск.
    github.com/Mihip/Wct

    Mihip, 10 Июля 2015

    Комментарии (3)
  2. JavaScript / Говнокод #18468

    +145

    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
    Xml: {
                parse: function (text) {
                    var xmlDocument;
                    if (window.DOMParser) {
                        var parser = new DOMParser();
                        xmlDocument = parser.parseFromString(text, "text/xml")
                    } else {
                        if (window.ActiveXObject) {
                            try {
                                xmlDocument = new ActiveXObject("Msxml2.DOMDocument.6.0")
                            } catch (err6) {
                                try {
                                    xmlDocument = new ActiveXObject("Msxml2.DOMDocument.5.0")
                                } catch (err5) {
                                    try {
                                        xmlDocument = new ActiveXObject("Msxml2.DOMDocument.4.0")
                                    } catch (err4) {
                                        try {
                                            xmlDocument = new ActiveXObject("MSXML2.DOMDocument.3.0")
                                        } catch (err3) {
                                            try {
                                                xmlDocument = new ActiveXObject("Microsoft.XMLDOM")
                                            } catch (err2) {
                                                Wicket.Log.error("Cannot create DOM document: " + err2)
                                            }
                                        }
                                    }
                                }
                            }
                            if (xmlDocument) {
                                xmlDocument.async = "false";
                                if (!xmlDocument.loadXML(text)) {
                                    Wicket.Log.error("Error parsing response: " + text)
                                }
                            }
                        }
                    }
                    return xmlDocument
                }
            },

    http://trudvsem.ru/

    alek0585, 10 Июля 2015

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

    +141

    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
    private string Time
            {
                get
                {
                    DateTime d;
                    d = DateTime.Now;
    
                    string t;
    
                    // Get the Date
                    if (d.Month.ToString().Trim().Length == 1)
                    {
                        t = "0" + d.Month.ToString().Trim() + "/";
                    }
                    else
                    {
                        t = d.Month.ToString().Trim() + "/";
                    }
                    if (d.Day.ToString().Trim().Length == 1)
                    {
                        t += "0" + d.Day.ToString().Trim() + "/";
                    }
                    else
                    {
                        t += d.Day.ToString().Trim() + "/";
                    }
                    t += d.Year.ToString().Trim() + " ";
    
                    // Get the time
                    if (d.Hour.ToString().Trim().Length == 1)
                    {
                        t += "0" + d.Hour.ToString().Trim() + ":";
                    }
                    else
                    {
                        t += d.Hour.ToString().Trim() + ":";
                    }
                    if (d.Minute.ToString().Trim().Length == 1)
                    {
                        t += "0" + d.Minute.ToString().Trim() + ":";
                    }
                    else
                    {
                        t += d.Minute.ToString().Trim() + ":";
                    }
                    if (d.Second.ToString().Trim().Length == 1)
                    {
                        t += "0" + d.Second.ToString().Trim() + ".";
                    }
                    else
                    {
                        t += d.Second.ToString().Trim() + ".";
                    }
                    if (d.Millisecond.ToString().Trim().Length == 1)
                    {
                        t += "00" + d.Millisecond.ToString().Trim() + ".";
                    }
                    else if (d.Millisecond.ToString().Trim().Length == 2)
                    {
                        t += "0" + d.Millisecond.ToString().Trim() + ".";
                    }
                    else
                    {
                        t += d.Millisecond.ToString().Trim() + ".";
                    }
    
                    return t;
                }
            }

    Классическая вариация на тему DateTime, чтобы получить 07/10/2015 18:45:03.647.

    adoconnection, 10 Июля 2015

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    if (_availabilityOfThisPersonnel == null)
         _availabilityOfThisPersonnel = new List<Availability>();
    if (_availabilityOfThisPersonnel.Any())
        _availabilityOfThisPersonnel.Clear();

    vldalx, 10 Июля 2015

    Комментарии (1)
  5. SQL / Говнокод #18465

    −160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    select 
    case 
      when count(*) > 0 then '1' 
      else '0' end 
    as "T"  
    from sometable   where searchcode = 'value'

    EXISTS? не, не слышал

    bliznezz, 10 Июля 2015

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

    +141

    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
    <div class="zz">
          <p2><span class="yy"><img src="pic.png" alt="..." name="..." class="yx" id="..."></span></2p>
          <div class="xx">
            <p2>1.<strong><a href="link1.html" title="..."> <span class="x">...</span></a><span class="x">.</span></strong>...</p2>
            <p>
            <p2>2. <strong class="x"><a href="link2.html" title="...">...</a></strong>...</p2>
            <p>
            <p2>3. <a href="link3.html" title=" ..." class="x"><strong>...</strong></a>, ...</p2>
            <p>
            <p2>4.<a href="link4.html" title="..." class="x"><strong>...</strong></a>. ...</p2>
            <p>
            <p2>5. <strong class="x"><a href="link5.html" title="..."><strong>...</strong></a></strong> ... </p2>
          </div>
    </div>

    html гуру

    username255, 10 Июля 2015

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

    +143

    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
    ...
    
    <div class="y">
          	<p>
            <center>
                    <h3><strong> ... </strong><img src="..." alt="...">
              </h3>
            </center>
    
    <div class="x">
              <li class="x"><a href="..." title="..."> ...</a> ...; <br>
              <li class="x"><a href="..." title="...">...</a>; <br>
              <li class="x"><a href="..." title="...">...</a>; <br>
              <li class="x">...;<br>
              <li class="x"> ...;<br>
              <li class="x"><a href="..." title="...">...</a>. </p>
            </div>
    
    ...
    <!-- еще три таких блока ->
    </div>
    
    ...

    html гуру какой-то, явно

    username255, 10 Июля 2015

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    $(document).ready(
    		function () {
    		    // Refactoring start
    		    $(document).ready(function () {

    Refactoring my ass

    Onanymous, 10 Июля 2015

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

    +144

    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
    Флоат даёт ошибки только тогда, когда он плывёт. 
    На вычислении всяких косинусов он не плывёт - поэтому ошибки там врядли возможны.
    
    Точность не будет падать - её не будет, вместо неё будет округленчиский мусор.
    
    Каким образом у вас это получилось - я не знаю, ибо у меня cos(M_PI_2) = ноль. 2.0f*2.0f = 4.0.
    
    Конпелятор всегда знает, ибо нормальные про-пацаны юзают фичи конпелятора, и умеют писать код. 
    В гцц есть такие штуки - builtin_*() - ими запиленны аналоги самых популярных libc функций. 
    ГГЦ абсалютно точно умеет определять константы - для этого есть свой builtin_constant_p() - 
    который в любом куске кода тебе 100% скажет - константа эта перменная, либо нет.
    
    Дак вот, в гцц даже можно писать так:
    
      static const double cos_pi = cos(M_PI);//глобальная статик-константа, которая в компилтайме инициализируется результатом вызова функции cos(). Это не особо профитно, ибо издревли система констант в Си лютое говно.
    Так же в гцц есть атрибуты, один из которых const - он говорит, что твоя функция не имеет побочных эффектов. 
    И все функции, которые их не имеют - принято так помечать, особенно в glibc и libgcc.
    
    А всё почему? Патамучто их пишут более-менее про-пацаны. 
    Конпелятору не нужно ничего знать - знает программист, который пишет, а конпелятор должен предоставить ему фичи, 
    с которыми он может пилить нормальный код, а не говно. 
    А неосиляторам подавай оптимизиторы, автоматизаторы и прочую ересь, от которой толка нет, а гонору много.

    http://ru.stackoverflow.com/questions/245261/Неправильная-работа-cos
    Как-то я проебал открытие сего быдлятника. Когда читал ответ сходу какое-то знакомое чувство, будто я знаю автора.

    3.14159265, 10 Июля 2015

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

    +142

    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
    /// <summary>
            /// Обновление данных о объекте
            /// </summary>
            /// <param name="theObject">ссылка на объект</param>
            public void Update(IPersistentObject theObject)
            {
                IDbCommand updateCommand = null;
                try
                {
                    using (updateCommand = CreateUpdateCommand(theObject))
                    {
                        updateCommand.Connection.Open();
                        updateCommand.ExecuteNonQuery();
                    }
                }
                catch (DbException ex)
                {
                    int code = 0;
                    if (ex is SqlException)
                    {
                        code = ((SqlException) ex).Number;
                    }
                    if (code == 229)
                    {
                        ex.Data.Add("Name", theObject.ClassInfo.Name);
                        ex.Data.Add("Description", theObject.ClassInfo.Description);
                        ex.Data.Add("Action", "UPDATE");
                        throw new InvalidOperationException(
                            String.Format("Ошибка обновления объекта [{0}] - {1} (ID = '{2}')",
                                          theObject.ClassInfo.Name,
                                          theObject.ClassInfo.Description,
                                          theObject.ID), ex);
                    }
                    if (code == 207 || code == 208)
                    {
                        throw new InvalidColumnException(theObject.ClassInfo, ex);
                    }
                    //theObject заменен на theObject.ID. Нечитабельно, но ... Т. к. при вычислении ToString()
                    //для показа объекта иногда задействуются методы загрузки данных
                    //названия объекта. Таким образом при высоком уровне изоляции транзакции
                    //мы получим зависание если будет попытка загрузить данные заблокированные транзакцией.
                    TraceLogger.Log(String.Format("Update {0}({1}){4} - {2}\n{3}", theObject.ID, theObject.ClassInfo,
                                                  ex.Message, ex.InnerException, theObject.GetInfoToTraceMessage()),
                                    TraceTypeEnum.UpdateStatement);
                    throw;
                }
                finally
                {
                    if (updateCommand != null)
                    {
                        updateCommand.Connection.Close();
                    }
                }
            }

    смертельный прием using
    и добьем соперника используя finally как фаталити

    перехват исключения тоже хорош, авторский комментарий добавляет изюминку

    vldalx, 10 Июля 2015

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