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

    +2

    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
    (set-logic UF)
    ; https://smtlib.cs.uiowa.edu/logics.shtml
    ; UF for the extension allowing free sort and function symbols 
    
    (set-option :produce-proofs true)
    
    (declare-sort M_list)
    
    (declare-fun m_node (M_list M_list) M_list)
    
    ; один хер какой порядок, можно переписать (a, b) на (b, a)
    (assert
      (forall ( (a M_list) (b M_list) )
        (=
          (m_node a b)
          (m_node b a)
        )
      )
    )
    
    ; если есть (a (b c)) то можно переписать на (с (a b))
    (assert
      (forall ( (a M_list) (b M_list) (c M_list) )
        (=
          (m_node a (m_node b c) )
          (m_node c (m_node a b) )
        )
      )
    )
    
    ; Можно создавать или удалять повторы, (a a) <=> a
    (assert
      (forall ( (a M_list))
        (=
          (m_node a a)
          a
        )
      )
    )
    
    
    ; Чтоб узнать, выводима ли такая-то хернь
    (declare-fun m_node_select (M_list M_list) Bool)
    
    
    (assert
      (forall ( (a M_list) (b M_list) )
        (m_node_select
          a (m_node a b)
        )
      )
    )
    
    ; проверяем, можно ли сконструировать (a a) из (c ((b d) a))
    (assert
      (not (forall ( (a M_list) (b M_list) (c M_list) (d M_list) )
        (m_node_select
          (m_node a a)
          (m_node c (m_node (m_node b d) a) )
        )
      ))
    )
    
    
    (check-sat)
    (get-proof)

    Вот вам немного гомоикон SMT-солвера. Эта вот хренотень сама доказывает, не то что какой-то там Coq.

    Понятно что по тем вот говноправилам можно чтоб всплыло 'a' и потом его удвоить "(a a) <=> a"
    потом через m_node_select вытащить этот дубликат

    j123123, 01 Марта 2021

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    require(ggplot2)
    
    x=-10:10
    X = data.frame(x=x, y=x^2, col=ifelse(x > 0, 1, 2))
    
    ggplot(X, aes(x, y)) + geom_point(aes(colour=col))

    Очевидный и понятный интерфейс, да?

    3_dar, 27 Февраля 2021

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var object = {a: 123, b:"abc"};
    var newObject = ko.observableProps(object);
    newObject.a(345);
    newObject.b("def");
    
    newObject.a(); => 345
    newObject.b(); => "def"

    Ко-ко-ко-ко-ко-обсервабле

    3_dar, 27 Февраля 2021

    Комментарии (4)
  4. Python / Говнокод #27273

    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
    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
    import math
    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument("--type")
    parser.add_argument("--principal", type=int)
    parser.add_argument("--periods", type=int)
    parser.add_argument("--interest", type=float)
    parser.add_argument("--payment", type=float)
    
    args = parser.parse_args()
    
    choose = args.type
    p = args.principal
    n = args.periods
    i = args.interest
    a = args.payment
    
    if i is None or p is None and a is None:
        print("Incorrect parameters.")
        exit(0)
    
    i = (i * 0.01) / (12 * 1)
    
    if choose == "diff":
        m = 1
        overpayment_all = 0
        while m <= n:
            d = math.ceil(p / n + i * (p - ((p * (m - 1)) / n)))
            m += 1
            overpayment_all += d
            print(f"Month {m - 1}: payment is {d}")
        print()
        print(f"Overpayment = {overpayment_all - p}")
    
    elif choose == "annuity" and a is None:
        a = math.ceil(p * (i * math.pow((1 + i), n)) / (math.pow((1 + i), n) - 1))
        print(f"Your monthly payment = {a}!")
        over = a * n - p
        print(f"Overpayment = {math.ceil(over)}")
    
    elif choose == "annuity" and p is None:
        p = int(a / (i * math.pow(1 + i, n) / (math.pow(1 + i, n) - 1)))
        print(f"Your loan principal = {p}!")
        m = 1
        over = a * n - p
        print(f"Overpayment = {math.ceil(over)}")
    
    elif choose == "annuity":
        n = math.ceil(math.log(a / (a - i * p), 1 + i))
        zxc = math.ceil(math.log(a / (a - i * p), 1 + i))
        years = 0
        while n >= 12:
            n -= 12
            years += 1
        if years == 0:
            print(f"It will take {n} months to repay this loan!")
            over = a * zxc - p
            print(f"Overpayment = {math.ceil(over)}")
        elif n == 0:
            print(f"It will take {years} years to repay this loan!")
            over = a * zxc - p
            print(f"Overpayment = {math.ceil(over)}")
        else:
            print(f"It will take {years} years and {n} months to repay this loan!")
            over = a * zxc - p
            print(f"Overpayment = {math.ceil(over)}")

    Ебучий универ и ебучее задание на питоне. Всё было бы збс, если бы не математика.
    Прога считает проценты, бабки, переплаты и чёт ещё, наверное

    warzon131, 25 Февраля 2021

    Комментарии (12)
  5. JavaScript / Говнокод #27272

    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
    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
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    var utils = require('util');
    
    module.exports = class Client {
        constructor(Socket) {
    
            this.Socket = Socket;
            this.TLSSocket = require('tls');
            this.XmlParser = new require('xml2js').Parser();
            this.XmlBuilder = require('xmlbuilder');
            this.Client = this;
            this.Authorized = false;
            this.OnlineId = '1';
            this.Socket.on('data', (Packet) => this.OnData(Packet));
            this.Player = null;
            this.Status = 0;
        }
    // Авторизация.
        OnData(Packet) {
            if (Packet[0] == 0xad || Packet[1] == 0xde || Packet[2] == 0xed || Packet[3] == 0xfe) {
                var PacketBuffer = Buffer.alloc(Number(Packet.readBigInt64LE(4)));
                Packet.copy(PacketBuffer, 0, 12);
                var Query = PacketBuffer.toString();
                console.log('[CLIENT] ',Query);
                this.XmlParser.parseString(PacketBuffer.toString(), (err, result) => {
                    if (result) 
                    {
                        if (result.starttls && !this.TLSSocket.Authorized && !this.Authorized) {
                            this.Send(this.XmlBuilder.create({
                                proceed: {
                                    '@xmlns': 'urn:ietf:params:xml:ns:xmpp-tls'
                                }
                            }, {
                                    headless: true
                                }).end({
                                    pretty: false
                                }));
                            this.TLSSocket = new this.TLSSocket.TLSSocket(this.Socket, {
                                cert: global.Cert,
                                key: global.CertKey,
                                ca: global.CertBundle,
                                minVersion: 'TLSv1',
                                isServer: true
                            })
                            this.TLSSocket.once('secure', () => {
                                this.TLSSocket.Authorized = true;
                                console.log('TLS Connection established!');
                            });
                            this.TLSSocket.on('data', (Packet)=>this.OnData(Packet));
    
                        }
                        else if (result.iq && result.iq.bind) {
                            this.Send(this.XmlBuilder.create({
                                iq: {
                                    '@id': result.iq.$.id,
                                    '@type': 'result',
                                    bind: {
                                        '@xmlns': 'urn:ietf:params:xml:ns:xmpp-bind',
                                        jid: this.OnlineId
                                    }
                                }
                            }, {
                                headless: true
                            }).end({
                                pretty: false
                            }));
                        } else if (result.iq && result.iq.session) {
                            this.Send(this.XmlBuilder.create({
                                iq: {
                                    '@id': result.iq.$.id,
                                    '@type': 'result',
                                    '@to': this.OnlineId,
                                    session: {
                                        '@xmlns': 'urn:ietf:params:xml:ns:xmpp-session'
                                    }
                                }
                            }, {
                                headless: true
                            }).end({
                                pretty: false
                            }));
                        }
                        else if (result.iq && result.iq.query) {
    
                            var QueryName = Object.keys(result.iq.query[0]).filter(function (str) {
                                return str != '_' && str != '$'
                            })[0];
    
                            var QueryFunction = global.PacketFactory[QueryName];
    
                            if (QueryFunction) {
                                var Stanza = result.iq.query[0][QueryName][0];
    
                                console.log(`\x1b[32mQueryname: ${QueryName} ${utils.inspect(Stanza.$)}\x1b[0m`);
                                global.PacketFactory[QueryName].handle(this, Stanza, result.iq.$.to, result.iq.$.id);
                            }

    Nodejs вход пользователя

    Seagate, 25 Февраля 2021

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

    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
    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
    // -------------------------------------------
    // 2.2. binary calls
    // -------------------------------------------
    /*
        combination table:
    
          +-   | c a n
            ---|-------
             c | C A N
             a | A A N
             n | N N N
    
          *    | c a n
            ---|-------
             c | C A N
             a | A N N
             n | N N N
    
          /    | c a n
            ---|-------
             c | C N N
             a | A N N
             n | N N N
    
        argument:
          c : constant, as scalar, point, tensor, ect
          l : affine homogeneous expr argument: as field, field_indirect or field_expr_node::is_affine_homogeneous
          n : function, functor or ! field_expr_node::is_affine_homogeneous
        result:
          C : constant : this combination is not implemented here
          A,N : are implemented here
        rules:
          at least one of the two args is not of type "c"
          when c: c value is embeded in bind_first or bind_second
                  and the operation reduces to an unary one
          when a: if it is a field_convertible, it should be wrapped
                  in field_expr_v2_nonlinear_terminal_field
          when c: no wrapper is need
        implementation:
          The a and n cases are grouped, thanks to the wrapper_traits
          and it remains to cases :
            1) both args are  field_expr_v2_nonlinear or a function 
            2) one  arg  is a field_expr_v2_nonlinear or a function and the second argument is a constant
    */
    
    #define _RHEOLEF_make_field_expr_v2_nonlinear_binary(FUNCTION,FUNCTOR)	\
    template<class Expr1, class Expr2>						\
    inline										\
    typename									\
    std::enable_if<									\
         details::is_field_expr_v2_nonlinear_arg<Expr1>::value			\
      && details::is_field_expr_v2_nonlinear_arg<Expr2>::value			\
      && ! details::is_field_expr_v2_constant   <Expr1>::value			\
      && ! details::is_field_expr_v2_constant   <Expr2>::value			\
     ,details::field_expr_v2_nonlinear_node_binary<					\
        FUNCTOR									\
       ,typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr1>::type	\
       ,typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr2>::type 	\
      >										\
    >::type										\
    FUNCTION (const Expr1& expr1, const Expr2& expr2)				\
    {										\
      typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr1>::type wrap1_t; \
      typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr2>::type wrap2_t; \
      return details::field_expr_v2_nonlinear_node_binary <FUNCTOR,wrap1_t,wrap2_t> \
    	(FUNCTOR(), wrap1_t(expr1), wrap2_t(expr2)); 				\
    }										\
    template<class Expr1, class Expr2>						\
    inline										\
    typename 									\
    std::enable_if<									\
         details::is_field_expr_v2_constant     <Expr1>::value			\
      && details::is_field_expr_v2_nonlinear_arg<Expr2>::value			\
      && ! details::is_field_expr_v2_constant   <Expr2>::value			\
     ,details::field_expr_v2_nonlinear_node_unary<					\
        details::binder_first<							\
          FUNCTOR									\
         ,typename details::field_promote_first_argument<				\
            Expr1

    MAKAKA, 25 Февраля 2021

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

    0

    1. 1
    IT Оффтоп #80

    #50: https://govnokod.ru/26804 https://govnokod.xyz/_26804
    #51: https://govnokod.ru/26809 https://govnokod.xyz/_26809
    #52: https://govnokod.ru/26817 https://govnokod.xyz/_26817
    #53: https://govnokod.ru/26833 https://govnokod.xyz/_26833
    #54: https://govnokod.ru/26840 https://govnokod.xyz/_26840
    #55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
    #56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
    #57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
    #58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
    #59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
    #60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
    #61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
    #62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
    #63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
    #64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
    #65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
    #66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
    #67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
    #68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
    #69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
    #70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
    #71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
    #72: https://govnokod.ru/27120 https://govnokod.xyz/_27120
    #73: https://govnokod.ru/27136 https://govnokod.xyz/_27136
    #74: https://govnokod.ru/27160 https://govnokod.xyz/_27160
    #75: https://govnokod.ru/27166 https://govnokod.xyz/_27166
    #76: https://govnokod.ru/27168 https://govnokod.xyz/_27168
    #77: https://govnokod.ru/27186 https://govnokod.xyz/_27186
    #78: https://govnokod.ru/27219 https://govnokod.xyz/_27219
    #79: https://govnokod.ru/27254 https://govnokod.xyz/_27254

    nepeKamHblu_nemyx, 25 Февраля 2021

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <?php
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); 
    
    if($_POST['SESS_PARAM'] && $_POST['SESS_PARAM'] !='' && $_POST['SESS_PARAM_VALUE'] && $_POST['SESS_PARAM_VALUE'] !=''){
    
    	$_SESSION[$_POST['SESS_PARAM']] = $_POST['SESS_PARAM_VALUE'];
    	echo 'ok';
    }else{
    	echo 'error';
    }

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

    BroadcastAddress, 23 Февраля 2021

    Комментарии (143)
  9. bash / Говнокод #27268

    0

    1. 1
    $ find ~ -name .git -type d -prune -printf "***\n%p\n***\n" -exec git -C '{}/..' status  \;

    MAKAKA, 21 Февраля 2021

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

    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
    22. 22
    23. 23
    24. 24
    25. 25
    #include <iostream>
    #include <ctime>
    using namespace std;
    
    #define SIZE 200000000
    
    struct StackRazrivator {
    	int data[SIZE];
    };
    
    void razorvi() {
    	cout << "nachinau razrivat\n";
    	StackRazrivator r;
    }
    
    void razrivator() {
    	cout << "razrivator\n";
    	razorvi();
    }
    
    int main() {
        cout << "start" << endl;
    	razrivator();
    	return 0;
    }

    Что выведет программа, если скомпилировать без оптимизаций и почему?

    https://godbolt.org/z/75Yzer

    3_dar, 20 Февраля 2021

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