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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public function renderJSON()
        {
            $this->checkError();
    
            return serialize($this);
        }

    Чтобы враг не догадался!

    zoorg, 06 Декабря 2021

    Комментарии (20)
  2. 1C / Говнокод #27856

    −1

    1. 1
    2. 2
    Для ТекИндекс = 0 По Объект.Товары.Количество() -1 Цикл       									   
    			Стр = Объект.Товары[ТекИндекс];

    //Интересе, а чем не устроило?:

    Для каждого Стр из Объект.Товары Цикл

    timofeysin, 06 Декабря 2021

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

    +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
    function main() {
        let a: number | string;
    
        a = "Hello";
    
        if (typeof(a) == "string")
        {
    	print("str val:", a);
        }
    
        a = 10.0;
    
        if (typeof(a) == "number")
        {
    	print("num val:", a);
        }
    
        print("done")
    }

    Аллилуйя братья... я вам принес "union"-s . Возрадуйтесь новой фиче. (А ты можешь так в с/c++?)

    дампик https://pastebin.com/QNmKFfT7

    C:\temp>C:\dev\TypeScriptCompiler\__build\tsc\bin\tsc.exe --emit=jit --opt --shared-libs=C:\dev\TypeScriptCompiler\__build\tsc\bin\TypeScriptRuntime.dll C:\temp\1.ts 
    str val: Hello
    num val: 10
    done

    ASD_77, 06 Декабря 2021

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Ltac2 make_match fields :=
      destruct x;
      iter (fun a => focus 1 1 (fun () =>
                               let a := a ()
                               in refine (fun () => '((w_rep $a) _)))
             ) fields.

    Итерация по конструкторам индуктивного типа данных.

    CHayT, 03 Декабря 2021

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #define POOL_ZERO_DOWN_LEVEL_SUPPORT
    #include <wdm.h>
    
    char* p = ExAllocatePoolZero(NonPagedPool, 42, '_GK_');
    ASSERT(p[0] == 0);

    https://www.osr.com/blog/2020/07/14/bug-in-new-function-exallocatepoolzero-results-in-security-vulnerability-and-crashes/

    microsoft_real_calloc() и 100500 способов отстрела ноги с помощью него.

    bormand, 02 Декабря 2021

    Комментарии (229)
  6. Go / Говнокод #27849

    +2

    1. 1
    2. 2
    3. 3
    // Create a Version 4 UUID, panicking on error.
    // Use this form to initialize package-level variables.
    var u1 = uuid.Must(uuid.NewV4())

    https://github.com/gofrs/uuid

    Питули запилили функцию, которая никогда error не возвращает, и запилили обёртку вокруг неё для "игнорирования" этой "ошибки".
    Пиздец

    3_dar, 02 Декабря 2021

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

    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
    https://www.evilfingers.com/publications/research_RU/oldnewlang.pdf языки, которые мы потеряли
    
    ...
    
    Кстати, тот, кто считает, метапрограммирование достижением последних десятилетий, — жестоко
    ошибается. Да, в языке Си++ оно появилось совсем недавно и в полном объеме (описанном в 
    последних редакциях Стандарта) не реализовано ни в одном реально существующем компиляторе, a
    Nemerle и R# (языки программирования для платформы .Net со встроенной поддержкой
    метапрограммирования) — вообще младенцы, но на самом деле концепция метапрограммирования
    возникла еще во времена палеолита. Lisp, появившийся в далеком 1958 г., — хороший пример
    языка, естественным образом поддерживающий метапрограммирование, одной из задач которого
    является создание программы, выводящей точную копию своего собственного исходного текста — так
    называемый куин (англ, quine). На Lisp'e он записывается так:
    
    (funcall (lambda (x) 
                   (append x (list (list 'quote x))))
                 '(funcall (lambda (x) 
                              (append x (list (list 'quote x))))))
    
                 Листинг 1 программа на Lisp'е, распечатывающая сама себя
    
    На Си так:
    
    #include<stdio.h>
    char*i="\\#include<stdio.h>",n='\n',q='"',*p=
    "%s%cchar*i=%c%c%s%c,n='%cn',q='%c',*p=%c%c%s%c,*m=%c%c%s%c%c;%s%c",*m=
    "int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}"
    ;int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}
    
    А теперь попробуйте реализовать тоже самое на Си++ с использованием шаблонов и посмотрите, насколько
    сильно они вам «помогут».

    Крестобляди соснули

    j123123, 01 Декабря 2021

    Комментарии (51)
  8. bash / Говнокод #27846

    +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
    ~  cat test.sh
    #!/bin/bash
    
    for i in "$@"; do
    	echo $i
    done
    
    arglist="$@"
    
    for i in $arglist; do
    	echo $i
    done
    
     ~  sh test.sh 1 2 '3 4'
    1
    2
    3 4
    1
    2
    3
    4
     ~ 

    Застрял на отладке одного скрипта, как этим правильно пользоваться?

    vistefan, 01 Декабря 2021

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

    +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
    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
    * https://github.com/nwchemgit/nwchem/blob/8ac6bc6856d50954029cad01a751006851682398/src/nwpw/pspw/lib/psi/psi.F#L324
    
          subroutine psi_sort_f_orb()
          implicit none
    #include "errquit.fh"
    
    #include "bafdecls.fh"
    #include "psi.fh"
    
          logical value
          integer i,j,ii,jj,ms
          integer r1(2)
          real*8  ei,ej
    
          value = BA_push_get(mt_dcpl,npack1,'r1',r1(2),r1(1))
          if (.not. value) call errquit(
         >     'psi_sort_f_orb: out of stack memory',0,MA_ERR)
    
          do ms=1,ispin
    
            !*** Bubble sort ***
            do ii=1,ne(ms)
             do jj=ii+1,ne(ms)
               i = ii + (ms-1)*ne(1)
               j = jj + (ms-1)*ne(1)
               ei = dbl_mb(eig(1)+i-1)
               ej = dbl_mb(eig(1)+j-1)
    
               !*** swap ***
               if (ej.lt.ei) then
                 dbl_mb(eig(1)+i-1) = ej
                 dbl_mb(eig(1)+j-1) = ei
                 call Pack_c_Copy(1,dcpl_mb(psi1(1)+(i-1)*npack1),
         >                          dcpl_mb(r1(1)))
                 call Pack_c_Copy(1,dcpl_mb(psi1(1)+(j-1)*npack1),
         >                          dcpl_mb(psi1(1)+(i-1)*npack1))
                 call Pack_c_Copy(1,dcpl_mb(r1(1)),
         >                          dcpl_mb(psi1(1)+(j-1)*npack1))
               end if
    
             end do
            end do
    
          end do
    
          value = BA_pop_stack(r1(2))
          if (.not. value) call errquit(
         >     'psi_sort_f_orb: popping stack memory',1, MA_ERR)
          return
          end

    Сортировка пузырьком на фортране из пакета квантовохимических вычислений "NWChem"

    j123123, 30 Ноября 2021

    Комментарии (324)
  10. JavaScript / Говнокод #27843

    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
    async init() {
                    const engine = this.engine = new BABYLON.WebGPUEngine(this.canvas);
                    await engine.initAsync();
                }
    
                async initCompute() {
                    const supportCS = this.engine.getCaps().supportComputeShaders;
                    if (!supportCS) {
                        return true;
                    }
    
                    const computeShaderSource = document.getElementById("calculate").value.replace('WORK_GROUP_SIZE', this.WORK_GROUP_SIZE);
                    this.computeShader = new BABYLON.ComputeShader("compute", this.engine, { computeSource: computeShaderSource }, {
                        bindingsMapping:
                        {
                            "params": { group: 0, binding: 0 },
                            "ssboIn": { group: 0, binding: 1 },
                            "ssboOut": { group: 0, binding: 2 },
                        }
                    });
    
                    const simParamsBuffer = new BABYLON.UniformBuffer(this.engine);
                    simParamsBuffer.updateFloat2("time", t, this.numInstances);
                    simParamsBuffer.update();
    
                    const ssboInBuffer = new BABYLON.StorageBuffer(this.engine, this.ssboData.byteLength);
                    ssboInBuffer.update(this.ssboData);
    
                    const ssboOutBuffer = new BABYLON.StorageBuffer(this.engine, this.ssboData.byteLength);
    
                    this.computeShader.setUniformBuffer("params", simParamsBuffer);
                    this.computeShader.setStorageBuffer("ssboIn", ssboInBuffer);
                    this.computeShader.setStorageBuffer("ssboOut", ssboOutBuffer);
                                    
                    const handler = () => {
                        ssboOutBuffer.read().then((res) => {
                            const resFloats = new Float32Array(res.buffer);
                            //console.log(resFloats);
                            this.ssboData.set(resFloats);
    
                            ssboInBuffer.update(this.ssboData);
                            this.computeShader.setStorageBuffer("ssboIn", ssboInBuffer);
                            this.computeShader.dispatchWhenReady(this.numGroups).then(handler);                
    
                            this.loadPositions();
                        });
                    };
    
                    this.computeShader.dispatchWhenReady(this.numGroups).then(handler);                
                }

    Наговнокодить кому нибудь Compute Shader для WebGPU? полный код тут https://pastebin.com/EigxhfqV . Тут короче симуляция гравитации расчетным методом... просто было делать нехрен и скушно... что бы запустить это говно надо Chrome Canary с включенным WebGPU поддержкой.

    ASD_77, 28 Ноября 2021

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