1. Python / Говнокод #24850

    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
    import re
    
    def krpt(x):
        x = x.group(1)
        f = lambda x: "".join(filter(lambda x: x not in "АЕЁИОУЫЭЮЯ", x))
        xp = f(x)
        if len(xp) == 0:
           return x
        for i in open("dict.txt", "r"):
            i = i.strip().upper()
            t = f(i)
            if len(t) < len(xp): continue
            if xp == t[:len(xp)]:
                return i
        return x
    
    def KRPT(x):
        return re.sub("([А-ЯЁ]+)", krpt, x.upper())
        
    while "ПРЛС":
        print(KRPT(input("> ")))

    > какой багор )))
    АКАКИЙ БОГОРОДСК )))
    > лунная клизма, лай мне в анус
    АЛИНИН КЛИЗМА, ЛЕЙБНИЦ АМУНДСЕН АВИВ АНИСИЯ
    > какой-то ебень написал поебень
    АКАКИЙ-АООТ БЕНЬЯМИН НАПИСАЛА ПОЕБЕНЬ
    >

    MPA3b, 03 Октября 2018

    Комментарии (92)
  2. Куча / Говнокод #24849

    −2

    1. 1
    2. 2
    3. 3
    Ваш почтовый сервер говно.
    Я 2 часа ждал подтверждения регистрации на мыло гугла. 
    Но вот на fakemailgenerator.com оно пришло спустя 2 минуты.

    ПЫХАПЭ - говно.

    Lorip1971, 03 Октября 2018

    Комментарии (26)
  3. Куча / Говнокод #24847

    −13

    1. 1
    ЗА ЧТО ВЫ МЕНЯ НЕ ЛЮБИТЕ?

    ЧЕМ Я ВАМ НЕ УГОДИЛ?

    UPPERCASE, 02 Октября 2018

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

    −3

    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
    // ==UserScript==
    // @name           Comment Highlighter
    // @description    Подсвечивает новые комментарии
    // @include        *://govnokod.ru/*
    // @include        *://www.govnokod.ru/*
    // @version        2.1
    // @grant          none
    // ==/UserScript==
    
    (function() {
    
    function updateState(data, lastPID, updater) {
      // use `cid = 0` to enable highlighting comments in unvisited posts
      // use `cid = Infinity` to disable highlighting in unvisited posts
      var out, idx, pid, i = 0, cid = 0; // here
      
      while(i < data.length) {
        idx = i;
        pid = data.charCodeAt(i++);
        if(pid & 0x8000) {
          pid &= 0x7fff;
          pid <<= 16;
          pid |= data.charCodeAt(i++);
        }
        if(pid == lastPID) {
          cid = data.charCodeAt(i++) << 16 | data.charCodeAt(i++);
          break;
        } else {
          i += 2;
        }
      }
      
      data = pid == lastPID ? data.substring(0, idx) + data.substring(i) : data;
      
      var lastCID = updater(cid);
      
      if(isFinite(lastPID) && lastPID >= 0 && lastPID < 0x80000000) {
        data += (lastPID >= 0x8000 ? String.fromCharCode(0x8000 | lastPID >> 16) : '') +
          String.fromCharCode(lastPID & 0xffff) + String.fromCharCode(lastCID >> 16) +
          String.fromCharCode(lastCID & 0xffff);
      }
      
      return data;
    }
    
    function commentID(comment) {
      var commentLink = comment.querySelector('a.comment-link');
      return Number(commentLink.href.match(/comment(\d+)$/)[1]);
    }
    
    function updateComments(prevCID) {
      var comments = document.querySelectorAll('.entry-comment-wrapper');
      var lastCID = prevCID;
    
      for(var i=0; i<comments.length; ++i) {
        var comment = comments[i];
        var cid = commentID(comment);
        if(cid <= prevCID) continue;
        if(cid > lastCID) lastCID = cid;
        comment.classList.add('new');
      }
      
      return lastCID;
    }
    
    var post = location.pathname.match(/^\/(\d+)/);
    if(!post) return;
    
    var PARAM = '8a9bd32e-20bc-42c7-bcdd-b65bb1fc2d0b-visited2';
    var postID = +post[1];
    var oldState = localStorage.getItem(PARAM) || '';
    var newState = updateState(oldState, postID, updateComments);
    localStorage.setItem(PARAM, newState);
    
    })();

    Битоёбство в "JS".
    https://github.com/1024--/govnokod.ru-userscripts/blob/master/highlight-new.user.js

    > use `cid = Infinity` to disable highlighting in unvisited posts
    Не работает.
    При следующем открытии все помечаются как не прочтённые.

    Пофиксил так:

    function updateComments(prevCID, highlightUnvisited=false) {
    var comments = document.querySelectorAll('.entry-comment-wrapper');
    var lastCID = prevCID;

    for(var i=0; i<comments.length; ++i) {
    var comment = comments[i];
    var cid = commentID(comment);
    if(cid <= prevCID) continue;
    if(cid > lastCID) lastCID = cid;
    if (!highlightUnvisited && prevCID === 0) continue;
    comment.classList.add('new');
    }

    return lastCID;
    }

    guestinxo, 02 Октября 2018

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

    −3

    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
    #define m_from(format)			\
    char buff[128];					\
    sprintf(buff, format, value);	\
    data_ = std::string(buff);
    
    inline void fromShort(short value)
    {
        m_from("%i");
    }
    inline void fromInt(int value)
    {
        m_from("%i");
    }
    inline void fromLong(long value)
    {
        m_from("%li");
    }
    inline void fromFloat(float value)
    {
        m_from("%f");
    }
    inline void fromDouble(double value)
    {
        m_from("%f");
    }

    https://github.com/FlightBlaze/Newtoo/blob/master/modules/misc/USVString.h

    Собственно, занесения в аналы ГК достоин весь этот класс целиком.

    gost, 01 Октября 2018

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

    −7

    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
    /*
    Newtoo — разработка полноценного браузерного движка с нуля в 2018?
    Так уж получилось, что в мире есть всего 4 популярных браузерных движка,
    которые настолько сложны, что сами разработчики не знают и половины их
    кодовой базы, и настолько продвинутые по технологиям, что начать их догонять —
    пустая трата времени. 
    
    А так ли это на самом деле? Мой проект создан, чтобы повторить подвиги
    современных браузерных движков и проверить, насколько ли реально создать
    достойную альтернативу крупным проектам, история которых начинается с
    девяностых годов. Мой новый движок создается с нуля, а значит его история
    начинается — сегодня.
    ...
    Те ошибки, которые были допущены на начальных стадиях разработки
    остаются в проекте до конца. Самый яркий пример этому — умные
    указатели в C++ — это еще более сложный синтаксис, большой оверхед
    при работе, создании и удалении умных указателей. Кроме того, есть
    очень много типов умных указателей и нужно знать, какой когда использовать,
    ведь у каждого есть свои сюрпризы ньюансы. Посмотрите на этот файл из
    WebKit. Когда видишь такой код, синтаксис умных указателей, пытаешься
    успокоится и дышать ровно, но такого рода код — это весь вебкит с ног до
    головы. В моем движке нет таких недостатков.
    */
    
    Node* NodeListControlled::insertAt(unsigned long index, Node* child)
    {
        // mControl == vector<Node*>
        mControl.insert(mControl.begin() + index, child);
    
        return child;
    }

    Дело Попова, Бабушкина и иже с ними живёт!

    У умных указателей оверхед большой, а вот List со вставкой за O(n) — это не недостаток, это фича.
    А ещё там NamedNodeMap с тем же линейным поиском и практически полное игнорирование
    передачи по ссылке — компилятор умный, авось, заоптимизирует как-нибудь.

    https://sohabr.net/habr/post/424881/
    https://github.com/FlightBlaze/Newtoo

    gost, 01 Октября 2018

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

    −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
    class SNMPRemoteAgentSet
    {
    protected :
    	std::vector<SNMPRemoteAgent*> _agents;
    }
    
    void SNMPRemoteAgentSet::clear() {
    	while((int)_agents.size()) {
    		delete _agents[0];
    		_agents.erase(_agents.begin());
    	}
    }
    
    SNMPRemoteAgentSet::~SNMPRemoteAgentSet() {
    	clear();
    }

    Вот такой код нашёл в проекте. Таких говно-деструкторов в этом проекте ещё полно.

    SuperCellSky, 01 Октября 2018

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #include <stdio.h>
    #include <math.h>
    char s[6];
    main(){
    	puts(gets(s)[2]==45&8u>*s-65&8u>s[1]-49&8u>s[3]-65&8u>s[4]-49?abs((*s-s[3])*(s[1]-s[4]))-2?"NO":"YES":"ERROR");
    }

    666_N33D135, 01 Октября 2018

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

    −4

    1. 1
    Technical post.

    Технический пост для работы говнофорума.

    gvforum, 30 Сентября 2018

    Комментарии (83)
  10. Java / Говнокод #24837

    −2

    1. 1
    2. 2
    https://sohabr.net/habr/post/424725/
    https://sohabr.net/habr/post/423947/

    Я не понял, жава платная или нет?

    syoma, 30 Сентября 2018

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