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

    Всего: 168

  2. bash / Говнокод #16038

    −126

    1. 1
    2. 2
    3. 3
    4. 4
    case $action in
        import) exp_struct;;
        export) imp_struct;;
    esac

    bormand, 22 Мая 2014

    Комментарии (5)
  3. Perl / Говнокод #15973

    −149

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    my $query = "select * from client where <...>";
    ...
    $params{'first_name'} = $v_client[6];
    if (defined $v_client[11]) {
         $params{'address1'} = $v_client[11];
    }
    if (defined ($v_client[10])) {
      $params{'zip_code'} = $v_client[10];
    }

    No comments.

    bormand, 13 Мая 2014

    Комментарии (32)
  4. JavaScript / Говнокод #15952

    +153

    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
    // обработка наведения/убирания мышки на тултипы и ссылки
    $("a.popup-link").live("mouseenter", function(event) {
        var id = parseInt($(this).text().replace(">>", ""));
        $(window).data("currentTooltip", id);
        showTooltip(this, id);
    });
    
    $("a.popup-link").live("mouseleave", function(event) {
        $(window).data("currentTooltip", null);
        scheduleTooltipClose();
    });
    
    $("div.comment-tooltip").live("mouseover", function(event) {
        if (!$(event.target).hasClass("popup-link")) {
            $(window).data("currentTooltip", $(this).data("id"));
        }
    });
    
    $("div.comment-tooltip").live("mouseleave", function(event) {
        $(window).data("currentTooltip", null);
        scheduleTooltipClose();
    });

    https://github.com/bormand/govnokod-board

    Превращаем уютненький форум в уютненькую борду (скрипт для greasemonkey).

    P.S. На ГК стоит жквери 1.4, поэтому live() вместо on().

    bormand, 09 Мая 2014

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

    +12

    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
    QVector<int> v1;
    v1.push_back(1);
    v1.push_back(2);
    
    // взяли итератор на нулевой элемент вектора v1
    QVector<int>::iterator it = v1.begin();
    
    // замутили копию
    QVector<int> v2 = v1;
    
    v1[1] = 42;
    *it = 5;
    v2[1] = 100500;
    
    // и что же мы получим?
    qDebug() << v1; // QVector(1, 42)
    qDebug() << v2; // QVector(5, 100500)

    Ловим лулзы с implicit sharing'ом.

    Мораль (она описана в доке): нельзя копировать implicit shared контейнер пока живы и используются неконстантные итераторы на его элементы.

    bormand, 06 Мая 2014

    Комментарии (88)
  6. Python / Говнокод #15833

    −96

    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
    srp_base64_table = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./"
    
    def srpb64decode(s):
        ints = [srp_base64_table.index(c) for c in s]
        pad = len(ints) % 4
        if pad != 0:
            pad = 4 - pad
        ints = [0 for i in range(0, pad)] + ints
        notleading = False
        buf = []
    
        pos = 0
        while pos < len(ints):
            b = (ints[pos] << 2) | ((ints[pos+1] & 0x30) >> 4)
            if notleading or b != 0:
                buf.append(b)
                notleading = True
            b = ((ints[pos+1] & 0x0f) << 4) | ((ints[pos+2] & 0x3c) >> 2)
            if notleading or b != 0:
                buf.append(b)
                notleading = True
            b = ((ints[pos+2] & 0x03) << 6) | ints[pos+3]
            if notleading or b != 0:
                buf.append(b)
                notleading = True
            pos += 4
    
        return bytes(buf)
    
    def srpb64encode(b):
        pos = len(b) % 3
        b0 = 0
        b1 = 0
        b2 = 0
        notleading = False
        buf = ""
    
        if pos == 1:
            b2 = b[0]
        elif pos == 2:
            b1 = b[0]
            b2 = b[1]
    
        while True:
            c = (b0 & 0xfc) >> 2
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            c = ((b0 & 3) << 4) | ((b1 & 0xf0) >> 4)
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            c = ((b1 & 0xf) << 2) | ((b2 & 0xc0) >> 6)
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            c = b2 & 0x3f
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            if pos >= len(b):
                break
            b0 = b[pos]
            b1 = b[pos + 1]
            b2 = b[pos + 2]
            pos += 3
    
        return buf

    Кодирование и декодирование блобов для openssl SRP.

    А я построю свой диснейленд с блекджеком и шлюхами! (c) тот, кто пилил SRP в openssl

    bormand, 23 Апреля 2014

    Комментарии (153)
  7. bash / Говнокод #15779

    −125

    1. 1
    2. 2
    3. 3
    if [ $count > 0 ]; then
        ...
    fi

    bormand, 18 Апреля 2014

    Комментарии (18)
  8. Си / Говнокод #15721

    +140

    1. 1
    http://yadi.sk/d/4HDnPUi2MCCRa

    Мисато и говнокод.

    Здесь мы видим пять прототипов WinMain'а подряд, а шестой, который чуть пониже, использует вывод типов сишкофичу int-по-умолчанию...

    P.S. Скорее всего этот пост заминусуют за оффтоп и передачу по ссылке, но я просто не мог не выложить этот снимок ;)

    bormand, 10 Апреля 2014

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for (var i = 0; i < jo.length; ++i) {
        dh += "<tr><td class=\"listtd\">"+(i+1)+"</td><td class=\"listtd\">"+jo[i].NS+"</td><td align=\"center\">"+jo[i].SVD+
            "</td><td class=\"listtd\">"+jo[i].SV+
            "  <button class=\"invoice-button\" title=\"Сформировать счет для печати\" onclick=\"javascript:invoice("+
            jo[i].ID+", <?php echo $kId; ?>);\"></button></td><td class=\"listtd\">"+jo[i].OPL+"</td></tr>";
    }

    Даже не знаю, в какой раздел это постить...

    We need to go deeper...

    bormand, 09 Апреля 2014

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

    +156

    1. 1
    $("#maintabs").tabs({disabled: [4<?php if (mb_strpos($kagData['CITY_UR'], 'Мухосранск') === false) echo ', 2'; ?>], heightStyle: "auto"});

    No comments.

    bormand, 09 Апреля 2014

    Комментарии (0)
  11. SQL / Говнокод #15641

    −124

    1. 1
    2. 2
    3. 3
    4. 4
    select '30.01.2004' :: date + 1 units month
    select '29.02.2004' :: date + 1 units year
    
    -- Error 1267: The result of a datetime computation is out of range.

    :(

    bormand, 02 Апреля 2014

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