1. Список говнокодов пользователя bugmenot

    Всего: 51

  2. Pascal / Говнокод #4191

    +105

    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
    type
      THackImage = class(TGraphicControl)
      public
        property Canvas;
      end;
    
    procedure TColorPicker.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    begin
      {$IFDEF HACKS}
      Assert(Sender is TImage, 'в Sender всегда передается экземпляр класса TImage');
      FSelectedColor := THackImage(Sender).Canvas.Pixels[X, Y];
      {$ELSE}
      (* то, что было лень писать сразу *)

    Говнистая работа с библиотекой VCL. Не притрагивался к проекту около года, потом загрузил и почти час втыкал, за каким этот грёбаный хак здесь нужен.

    bugmenot, 07 Сентября 2010

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

    +144

    1. 1
    2. 2
    int i = 1;
    int j = i++ + ++i;

    Инкремент-экскремент, чтобы враг не догадался, 3 или 4 это выражение возвращает.

    bugmenot, 31 Августа 2010

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

    +81

    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
    public class Constants {
    
        /* ... */
    
        public static final int FOUR = 4;
        public static final int THREE = 3;
    
        public static final int INTEGER_FOUR = 4;
        public static final int INTEGER_FIVE = 5;
        public static final int INTEGER_ONE = 1;
        public static final int LENGTH_FOUR = 4;
        public static final int LENGTH_FIVE = 5;
        public static final int LENGTH_SEVEN = 7;
        public static final int LENGTH_EIGHT = 8;
        public static final int LENGTH_NINE = 9;
        public static final int LENGTH_ELEVEN = 11;
        public static final int LENGTH_TWELVE = 12;
        public static final int LENGTH_EIGHTEEN = 18;
        public static final int LENGTH_FIFTEEN = 15;
        public static final int ONE = 1;
        public static final int INTEGER_FIVE = 5;
        public static final int INTEGER_ONE = 1;
        public static final int PLUS_ONE = 1;
        public static final int INTEGER_THREE = 3;
    
        public static final Long LONG_VALUE_TEN = Long.valueOf(10);
        public static final Long LONG_VALUE_ZEARO = Long.valueOf(0);
    
        public static final BigDecimal BIGDECIMAL_ZERO = new BigDecimal(0);
        public static final BigDecimal BIGDECIMAL_ONE = new BigDecimal(1);
    
        public static final BigDecimal NEGATIVE_NUMBER_ONE = new BigDecimal(-1);
    
        public static final int COMPARE_RESULT_ZERO = 0 ;
        public static final int COMPARE_RESULT_ONE = 1 ;
        public static final int COMPARE_RESULT_NEGATIVE = -1 ;
    
        /* ... */
    
        public static final String NINE_STRING = "9";
        public static final String ONE_STRING = "9";
    
    }

    Хардкодить волшебные числа - плохой стиль. @dailywtf

    bugmenot, 20 Августа 2010

    Комментарии (22)
  5. Куча / Говнокод #3809

    +128

    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
    <?php
    $TITLE = preg_replace("/^[\s\d]+/", "", @$TITLE? $TITLE : @$_REQUEST["TITLE"]);
    $USE_HEAD = @$USE_HEAD? $USE_HEAD : @$_REQUEST["USE_HEAD"];
    $ISMAIN = @$ISMAIN? $ISMAIN : @$_REQUEST["ISMAIN"];
    ?>
    <html>
    <head>
      <title><?=strip_tags($TITLE)?></title>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
      <style type="text/css">
      <!--
        html, body { padding: 0px; margin: 0px; }
        .menu { padding: 4px 10px 4px 10px; border-bottom: 3px double #999999; background: #FFFFFF; font-size: 85%; font-weight: bold; }
        p { text-align: justify }
        h1 { font-size: 150%; }
        h2 { font-size: 130%; }
      -->
      </style>
    </head>
    
    <body bgcolor="white" text="#000000" link="#00639C" alink="#ffaa00" vlink="#00437C">
    
    <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
    <tr valign="top">
      <td bgcolor="#DEDFDE" width="80%" style="border-right: 1px outset">
        <?if ($USE_HEAD) {?>
          <table class="menu" width="100%" cellpadding="0" cellspacing="0" border="0">
          <tr>
            <td>
              <a href="http://localhost">localhost</a>
              |
              <a href=http://localhost/Tools/>Утилиты</a>
              |
              <a href=http://localhost/Docs/>Документация</a>
              |
              <a href=http://localhost/Test/>Тестирование</a>
            </td>
            <td align="right">
              <a href="http://www.denwer.ru">Сайт Денвера</a>
              |
              <a href="http://faq.dklab.ru/denwer/">FAQ</a>
              |
              <a href="http://www.denwer.ru/dis/">Дистрибутивы</a>
              |
              <a href="http://forum.dklab.ru/denwer/">Пишите нам!</a>
            </td>
          </tr>
          </table>
        <?}?>
        <div style="width=100%; padding: 0px 10px 4px 10px">
          <?if (@$ISMAIN) {?>
            <a href="http://www.denwer.ru"><script>
                function setCookie(name, value, path, expires, domain, secure) {
                  var curCookie = name + "=" + escape(value) +
                    ((expires) ? "; expires=" + expires.toGMTString() : "") +
                    ((path) ? "; path=" + path : "; path=/") +
                    ((domain) ? "; domain=" + domain : "") +
                    ((secure) ? "; secure" : "");
                  document.cookie = curCookie;
                }
                function getCookie(name) {
                  var prefix = name + "=";
                  var cookieStartIndex = document.cookie.indexOf(prefix);
                  if(cookieStartIndex == -1) return null;
                  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
                  if(cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
                  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
                }
                var c = (getCookie('vc') || 0);
                setCookie('vc', parseInt(c) + 1, '/', new Date(new Date().getTime()+1000*3600*24*365*4));
                document.write('<img width="73" height="94" style="float:right; margin:10px 0px 0px 10px" border=0 src="http://www.denwer.ru/logo.gif?' + c + '" />');
            </script></a>
          <?}?>
          <h1 style="margin-top: 0.2em"><?=$TITLE?></h1>

    котеров камлает донат.

    возникла проблемка с похапэ. было мне слово, что в denwer всё работает. зато словил лулзов.

    bugmenot, 29 Июля 2010

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

    +159

    1. 1
    Boolean.prototype.toLocaleString = function () { return this; return this ? 'Yes' : 'No' }

    пукнул...

    bugmenot, 16 Июля 2010

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

    +97

    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
    {
    ----------------------8<----------------------
    Цей юніт призначений лише для використання
    разом із пакетом програм ███████
    будь-якої версії.
    Він не може розповсюджуватися окремо, так
    як являється частиною пакету, який може
    розповсюджуватися на платній основі.
    
    (С) Copyright ███████████████
    ----------------------8<----------------------
    }
    
    (* ~15 строк поскипано за унылостью *)
    
    procedure TranslateForm(var form:TObject; const LNGFile:String);
    var
    ini:TIniW;
    c1,c2,p1,p2,i:Integer;
    Sct,par,val:string;
    keys:TStringList;
    cobg:TObject;
    comp:TComponent;
    begin
      initini(ini,LNGFile);
      keys:=TStringList.Create;
      sct:=Trim((form as TForm).Name);
        c1:=ini.KeyCount(Sct);
        ini.ReadSection(Sct,keys);
        cobg:=(form as TObject);
        for I := 0 to c1-1 do
        begin
          par:=keys[I];
          p1:=Pos('=',par);
          par:=Trim(Copy(par,0,p1-1));
          val:=ini.ReadString(Sct,par,'read error');
          typinfo.SetStrProp(cobg,par,val);
        end;
        c2:=(form as TForm).ComponentCount;
        for p2 := 0 to c2 - 1 do
          begin
          comp:=(form as TForm).Components[p2];
            cobg:=(comp as TObject);
            sct:=typinfo.GetStrProp(cobg,'Name');
    
              c1:=ini.KeyCount(Sct);
              if c1>0 then
              ini.ReadSection(Sct,keys);
                for I := 0 to c1-1 do
                begin
                  par:=keys[I];
                  p1:=Pos('=',par);
                  par:=Trim(Copy(par,0,p1-1));
                  val:=ini.ReadString(Sct,par,'read error');
                  try
                  typinfo.SetStrProp(cobg,par,val);
                  except
    
                  end;
                end;
    
          end;
    end;
    
    
    end.

    Сверху - жадность, снизу - отсутствие скиллов.

    bugmenot, 16 Июля 2010

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

    +144

    1. 1
    http://wiki.php.net/rfc/functionarraydereferencing

    На днях наткнулся вот такую ночную вазу с хорошо выдержанным содержимым.
    Копипастить не буду, просто загляни под крышку.
    Речь идет о том чтобы спустя 10 лет наконец пропатчить невозможность обращения к элементу массива без использования промежуточной переменной, если массив возвращается функцией (коих функций в Personal Home Page сотни).
    Также обратите внимание на даты.

    bugmenot, 30 Июня 2010

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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Below is a list of the warning message(s) produced when checking your document. 
     Line 91, Column 31: NET-enabling start-tag requires SHORTTAG YES 
    
            alt="Правильный CSS!" /> </a>                                  ✉ 
    
    The sequence <FOO /> can be interpreted in at least two different ways, depending on the DOCTYPE of the document...

    Валидатор ругается на иконку, подаренную валидатором

    bugmenot, 30 Июня 2010

    Комментарии (14)
  10. Pascal / Говнокод #3423

    +103

    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
    procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);
    begin
    If (UpDown2.Position = 0) or (UpDown2.Position = 5) or (UpDown2.Position = 6) or
       (UpDown2.Position = 7) or (UpDown2.Position = 8) or (UpDown2.Position = 9) or
       (UpDown2.Position = 10) or (UpDown2.Position = 11) or (UpDown2.Position = 12) or
       (UpDown2.Position = 13) or (UpDown2.Position = 14) or (UpDown2.Position = 15) or
       (UpDown2.Position = 16) or (UpDown2.Position = 17) or (UpDown2.Position = 18) or
       (UpDown2.Position = 19) or (UpDown2.Position = 20) or (UpDown2.Position = 25) or
       (UpDown2.Position = 26) or (UpDown2.Position = 27) or (UpDown2.Position = 28) or
       (UpDown2.Position = 29) or (UpDown2.Position = 30) or (UpDown2.Position = 35) or
       (UpDown2.Position = 36) or (UpDown2.Position = 37) or (UpDown2.Position = 38) or
       (UpDown2.Position = 39) or (UpDown2.Position = 40) or (UpDown2.Position = 45) or
       (UpDown2.Position = 46) or (UpDown2.Position = 47) or (UpDown2.Position = 48) or
       (UpDown2.Position = 49) or (UpDown2.Position = 50) or (UpDown2.Position = 55) or
       (UpDown2.Position = 56) or (UpDown2.Position = 57) or (UpDown2.Position = 58) or
       (UpDown2.Position = 59) or (UpDown2.Position = 60)
        then StaticText4.Caption := 'минут';
    
    If (UpDown2.Position = 1) or (UpDown2.Position = 21) or (UpDown2.Position = 31) or
       (UpDown2.Position = 41) or (UpDown2.Position = 51)
    then StaticText4.Caption := 'минуту';
    
    If (UpDown2.Position = 2) or (UpDown2.Position = 22) or (UpDown2.Position = 23) or
       (UpDown2.Position = 24) or (UpDown2.Position = 32) or (UpDown2.Position = 33) or
       (UpDown2.Position = 34) or (UpDown2.Position = 42) or (UpDown2.Position = 43) or
       (UpDown2.Position = 44) or (UpDown2.Position = 52) or (UpDown2.Position = 53) or
       (UpDown2.Position = 54)
    then StaticText4.Caption := 'минуты';
    
    If UpDown2.Position>60 then ShowMessage('больше нельзя');
    
    end;

    Дао создания таймера обратного отсчета.
    Канон второй: вычисление плюральных окончаний.
    Комментарии и форматирование авторские.

    bugmenot, 08 Июня 2010

    Комментарии (10)
  11. Pascal / Говнокод #3422

    +98

    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
    procedure TForm1.Timer1Timer(Sender: TObject);  //ПРОБЛЕМА ТУТ
    begin
    sec:=sec-1;
    ShowTime;     //показывать время
    
    If (sec=0) and (min=0) and(chas>0) then
    begin
    chas:=chas-1;
    min:=59;
    sec:=60;
    end;
    
    If (sec=0) and (min>0) and (chas=0) then
    begin
    min:=min-1;
    sec:=60;
    end;
    
    If (sec=0) and (min>0) and (chas>0) then
    begin
    min:=min-1;
    chas:=chas-1;
    sec:=60;
    end;
    
    
    If (chas=0) and (min=0) and (sec=0) then
    begin
    Timer1.Enabled:=false;
    Button1.Enabled:=True;
    Button2.Enabled:=False;
    Edit1.Enabled:=True;
    Edit2.Enabled:=True;
    Edit3.Enabled:=True;
    
    end;
    
    
    
    end;

    Дао создания таймера обратного отсчета.
    Канон первый: устаревшая и неудобная шестидесятиричная система.
    Комментарии и форматирование авторские.

    bugmenot, 08 Июня 2010

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