1. PHP / Говнокод #25467

    0

    1. 1
    <?php

    Интересно, а бывает ли в "PHP" такое, чтобы страница не генерилась при каждом запросе, а только один раз при изменениях в БД, и отдавалась статическая страничка.

    COTOHuHCKuu_nemyx, 23 Марта 2019

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

    +4

    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
    #include <inttypes.h>
    
    auto a(auto b) __attribute__ ((noinline));
    
    auto a(auto b)
    {
        return b*1.5;
    }
    
    double test1(double in)
    {
      return a(in);
    }
    
    uint64_t test2(uint64_t in)
    {
      return a(in);
    }
    
    
    /*
    https://godbolt.org/z/6ZQAnv
    
    auto a<double>(double):
            mulsd   xmm0, QWORD PTR .LC0[rip]
            ret
    test1(double):
            jmp     auto a<double>(double)
    auto a<unsigned long>(unsigned long):
            test    rdi, rdi
            js      .L5
            pxor    xmm0, xmm0
            cvtsi2sd        xmm0, rdi
            mulsd   xmm0, QWORD PTR .LC0[rip] # хули ты мне плавучего питуха в xmm0 возвращаешь?
            ret
    .L5:
            mov     rax, rdi
            and     edi, 1
            pxor    xmm0, xmm0
            shr     rax
            or      rax, rdi
            cvtsi2sd        xmm0, rax
            addsd   xmm0, xmm0
            mulsd   xmm0, QWORD PTR .LC0[rip]
            ret
    test2(unsigned long):
            sub     rsp, 8
            call    auto a<unsigned long>(unsigned long)
            movsd   xmm1, QWORD PTR .LC1[rip]
            comisd  xmm0, xmm1
            jnb     .L8
            cvttsd2si       rax, xmm0 # ну нахуй тут надо double в uint64_t конвертить
            add     rsp, 8 # почему это не делается в auto a<unsigned long>(unsigned long)
            ret
    .L8:
            subsd   xmm0, xmm1
            add     rsp, 8
            cvttsd2si       rax, xmm0
            btc     rax, 63
            ret
    .LC0:
            .long   0
            .long   1073217536
    .LC1:
            .long   0
            .long   1138753536
    
    */

    концепты-хуепты

    j123123, 23 Марта 2019

    Комментарии (28)
  3. 1C / Говнокод #25465

    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
    Набор = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
    		Отбор = Набор.Отбор;
    		Отбор.Объект.Использование = Истина;
    		Отбор.Объект.ВидСравнения = ВидСравнения.Равно;
    		Отбор.Свойство.ВидСравнения = ВидСравнения.Равно;
    		Отбор.Объект.Значение = Грузополучатель;                
    		Отбор.Свойство.Значение = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("GLN").Ссылка;
    		Набор.Прочитать();
    		GLN_получ = "";
    		Если Набор.Количество() > 0 Тогда
    			Для нумер = 0 по Набор.Количество()-1 Цикл
    				Свво = Набор.Получить(нумер).Свойство;
    				Если СокрЛП(Свво.Наименование) = "GLN" Тогда
    					GLN_получ = Набор.Получить(нумер).Значение;
    				КонецЕсли;
    			КонецЦикла;
    		КонецЕсли;
    
    		ОбластьМакета.Параметры.GLN_получ       = GLN_получ;

    cdpoma, 22 Марта 2019

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

    +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
    <script>
          qqq = 0;
            setInterval(function(){
                qqq++; 
                if ( qqq == 1 ) $('.qqq').text('.');  
                else if ( qqq == 2 ) $('.qqq').text('..');  
                else if ( qqq == 3 ) $('.qqq').text('...'); 
                else {
                    $('.qqq').empty(); 
                    qqq = 0;
                }
            },900);
       </script>

    Многоточия...
    Встретил случайно в одном из сайтов)

    fuckall, 21 Марта 2019

    Комментарии (46)
  5. PHP / Говнокод #25463

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    foreach ($result->getDataCollection() as $data) {
        if (!$data->getStatus() === Status::PAID)
            continue;
    
        // ACTIONS
    }

    Зачем использовать !== если есть ===

    P/s
    Смотрим на if (

    genkaok, 21 Марта 2019

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

    +1

    1. 1
    2. 2
    3. 3
    Страйкер приде — почту почине!
    
    Грустно без уведомлений из любимой соцсети.

    gost, 21 Марта 2019

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    with conn:
                cursor = conn.cursor()
                cursor.execute('UPDATE users SET creferals = creferals + 1 WHERE cid = ?', (inviter,))
                cursor.execute('INSERT INTO users VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
                               (datetime.strftime(datetime.now(),"%H:%M:%S %d.%m.%Y"), cid, username, 'main', 0, 0, 0, 0, 0, 0, 0, inviter, 'RUS'))
    conn.commit()

    Aristokraft, 21 Марта 2019

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

    +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
    #include <stdio.h>
    #include <math.h>
    
    #define SET(var, ...) typeof(__VA_ARGS__) var = __VA_ARGS__
    
    SET(p, &puts);
    struct point_t { double x, y; };
    SET(point, (struct point_t){0.0, 1.0});
    SET(anonymous, (struct{char *s;}){"hui"});
    
    int main(void)
    {
        static SET(msg, "Halo!");
        p(msg);
        SET(sqrt_of_2, sqrt(2));
        printf("√2 = %f\n", sqrt_of_2);
        return 0;
    }

    Автовывод типов в "C".

    MPA3b, 20 Марта 2019

    Комментарии (27)
  9. Си / Говнокод #25456

    +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
    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
    /*
    https://habr.com/ru/company/jugru/blog/444212/
    
    Александр: Я не думаю, что существует какое-то одно «правильное» определение ФП,
    но если говорить лично обо мне, то ФП — это нечто с функциональной композицией и
    функциями первого класса.
    
    Иван: Я согласен, но добавил бы ещё функции высшего порядка — те, которые могут
    принимать другие функции в качестве аргументов и возвращать как результат.
    
    Cергей: Ссылка на функцию в Си — считается?
    
    Иван: Нет, Си не является функциональным языком программирования :-)
    
    Сергей: Расскажи, почему?
    
    Иван: Потому что нельзя из комбинации указателей на функции создать новую функцию,
    можно только указывать на уже существующие. Конечно, если в ход не пошли какие-то
    ассемблерные хаки.
    */
    
    
    #include <stdio.h>
    #include <inttypes.h>
    #include <stddef.h>
    #include <stdlib.h>
    #include <errno.h>
    
    #define FUNC(a, ...) typeof( a (*) (__VA_ARGS__) )
    
    uint64_t mul2(uint64_t a)
    {
      return a*2;
    }
    
    uint64_t add2(uint64_t a)
    {
      return a+2;
    }
    
    uint64_t chaincaller(uint64_t a, typeof(uint64_t (*)(uint64_t)) *chain)
    {
      while(*chain != NULL)
      {
        a = (*chain)(a);
        chain++;
      }
      return a;
    }
    
    FUNC(uint64_t, uint64_t) *combine_fn (FUNC(uint64_t, uint64_t) a, FUNC(uint64_t, uint64_t) b)
    {
      FUNC(uint64_t, uint64_t) *funchain = (FUNC(uint64_t, uint64_t) *)malloc(sizeof( FUNC(uint64_t, uint64_t) [3]) );
      if (funchain == NULL)
      {
        exit(ENOMEM);
      }
      funchain[0] = a;
      funchain[1] = b;
      funchain[2] = NULL;
      return funchain;
    }
    
    
    int main(void)
    {
      FUNC(uint64_t, uint64_t) *func_chain = combine_fn(mul2,add2);
      uint64_t a = 15;
      uint64_t b = chaincaller(a, func_chain);
      printf("%" PRIu64 " * 2 + 2 = %" PRIu64 "\n", a,b);
      free(func_chain);
      return 0;
    }

    Ассемблерные хуяки.
    https://wandbox.org/permlink/gdRggB77GQOiNzyJ
    Он так говорит, будто б в крестоговно впилили какой-то недоJIT, который честно может сгенерить одну функцию из двух.

    j123123, 19 Марта 2019

    Комментарии (47)
  10. Куча / Говнокод #25455

    +1

    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
    !DOCTYPE html>
    <html>
    <%c++
        auto para=@@.get<std::map<std::string,std::string>>("parameters");
    %>
    <head>
        <meta charset="UTF-8">
        <title>{{ title }}</title>
    </head>
    <body>
        <%view header %>
        <%c++ if(para.size()>0){%>
        <H1>Parameters</H1>
        <table border="1">
          <tr>
            <th>name</th>
            <th>value</th>
          </tr>
          <%c++ for(auto iter:para){%>
          <tr>
            <td>{%iter.first%}</td>
            <td><%c++ $$<<iter.second;%></td>
          </tr>
          <%c++}%>
        </table>
        <%c++ }else{%>
        <H1>no parameter</H1>
        <%c++}%>
    </body>

    C++ шаблонизатор
    https://github.com/an-tao/drogon/blob/master/examples/simple_example/ListParaView.csp

    HEymHblu_nemyx, 19 Марта 2019

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