1. JavaScript / Говнокод #25873

    +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
    /**
       * The expanded S-box and inverse S-box tables.  These will be computed
       * on the client so that we don't have to send them down the wire.
       *
       * There are two tables, _tables[0] is for encryption and
       * _tables[1] is for decryption.
       *
       * The first 4 sub-tables are the expanded S-box with MixColumns.  The
       * last (_tables[01][4]) is the S-box itself.
       *
       * @private
       */
      _tables: [[[],[],[],[],[]],[[],[],[],[],[]]],

    booratihno, 26 Сентября 2019

    Комментарии (15)
  2. JavaScript / Говнокод #25836

    +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
    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
    96. 96
    importPackage(Packages.com.sk89q.worldedit);
    importPackage(Packages.com.sk89q.worldedit.blocks);
    importPackage(Packages.com.sk89q.worldedit.tools);
    importPackage(Packages.com.sk89q.worldedit.tools.brushes);
    importPackage(Packages.com.sk89q.worldedit.patterns);
    
    var bSize = argv.length > 1 ? parseInt(argv[1]) : 4;
    var maxFaces = argv.length > 2 ? (argv[2]) : 2;		
    var strength = argv.length > 3 ? (argv[3]) : 1;
    
    var xOff = ['1', '-1', '1', '1', '-1', '1', '-1', '-1'];
    var yOff = ['1', '1', '-1', '1', '-1', '-1', '1', '-1'];
    var zOff = ['1', '1', '1', '-1', '1', '-1', '-1', '-1'];
    
    if (bSize == 0)	{bSize = 4;}
    var blocks = new Array();
    
    var tool = context.getSession().getBrushTool(player.getItemInHand());
    var matPat = new SingleBlockPattern(new BaseBlock(maxFaces));
    
    tool.setSize(bSize);
    tool.setFill(matPat);
    
    var brush = new Brush({
        strength : strength,
        build : function(editSession,pos,mat,bSize) {
    		
    		var session = context.remember();
     
    		for (iteration = 1; iteration <= strength; iteration++)	{
    
    			var matID = mat.getBlock().getType();
    			maxFaces = ((matID >= 0) && (matID <= 6)) ? matID : 3;
    			
    			var blockTotal = 0;			
    			var blockCnt = 0;			
    			var blockFaces = new Array(6);
    
    			radius = bSize + 0.5;
    			var invRadius = 1 / radius;
    			var ceilRadius = Math.ceil(radius);
    
    			var nextXn = 0;
    			forX: for (var x = 0; x <= ceilRadius; ++x) {
    				var xn = nextXn;
    				nextXn = (x + 1) * invRadius;
    				var nextYn = 0;
    				forY: for (var y = 0; y <= ceilRadius; ++y) {
    					var yn = nextYn;
    					nextYn = (y + 1) * invRadius;
    					var nextZn = 0;
    					forZ: for (var z = 0; z <= ceilRadius; ++z) {
    						var zn = nextZn;
    						nextZn = (z + 1) * invRadius;
    
    						var distanceSq = lengthSq(xn, yn, zn);
    						if (distanceSq > 1) {
    							if (z == 0) {
    								if (y == 0) {
    									break forX;
    								}
    								break forY;
    							}
    							break forZ;
    						}
    										
    						for (var dirLoop = 0; dirLoop <= 7 ; dirLoop++)	{
    						
    							var pt = pos.add(x * xOff[dirLoop], y * yOff[dirLoop], z * zOff[dirLoop]);
    							var curBlock = editSession.getBlock(pt);
    							
    							blockCnt = 0;
    							blockFaces = [];
    							
    							blockFaces[1] = editSession.getBlockType(pt.add(1,0,0));
    							blockFaces[2] = editSession.getBlockType(pt.add(-1,0,0));
    							blockFaces[3] = editSession.getBlockType(pt.add(0,1,0));
    							blockFaces[4] = editSession.getBlockType(pt.add(0,-1,0));
    							blockFaces[5] = editSession.getBlockType(pt.add(0,0,1));
    							blockFaces[6] = editSession.getBlockType(pt.add(0,0,-1));	
    							
    							for (var lpC = 1; lpC <= 6; lpC++) {
    								if((blockFaces[lpC]) == 0) {blockCnt++;}												
    							}
    							
    							if (blockCnt >= maxFaces) {
    							
    								blocks[blockTotal] = BlockID.AIR;
    							}
    							else {
    								blocks[blockTotal] = curBlock.getType();
    							}
    							blockTotal++;
    						}
    					}
    				}

    Какой багор )))

    CkpunmoBbIu_nemyx, 12 Сентября 2019

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

    +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
    export default class CheckboxFilter extends React.PureComponent {
    
      private handleChange = (field: string) => (value: unknown) => {
        const { onChange } = this.props;
        onChange({params: { [field]: value }})
      };
    
      private onChangeValue(value: string, onChange: (value: string | null) => void, checked: boolean) {
        onChange(checked ? value : null);
      }
    
      private onChange = (e: any) => {
        const {value, type} = this.props;
        if(value) {
          this.onChangeValue.bind(null, value, this.handleChange(type))(e);
        } else {
          this.handleChange(type)(e);
        }
      }
    
      public render() {
        const {checked, children} = this.props;
    
        return (
            <Checkbox
              onChange={this.onChange}
              name='check'
              checked={checked}
            >
              {children}
            </Checkbox>
        )
      }
    };

    Код на react / typescript.
    Особое внимание методу onChange

    gooseim, 12 Сентября 2019

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

    −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
    if(deliverySuspend == true) {
                  deliverySuspend = false;
                }
                else
                {
                  deliverySuspend = true;
                }
    
                if(deliverySuspend == false)
                {
                  lastGlucoseMarkerVal = 0.0;
                }

    Пул реквест с таким куском говна пришел от индуса.
    Стилистика и табуляции сохранены.

    venoby, 12 Сентября 2019

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

    −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
    /**
         * Refresh JWT.
         * @returns New tokens.
         */
        static refreshToken(): Observable<BaseResponseInterface<SignInResponse>> {
            const http = InjectorInstance.get<HttpClient>(HttpClient);
    
            this.isRefreshingToken = true;
            setTimeout(() => (this.isRefreshingToken = false), 15000);
            return http
                .post<BaseResponseInterface<SignInResponse>>(environment.API.REFRESH_TOKEN, {
                    accessToken: localStorage.getItem('auth_token'),
                    refreshToken: localStorage.getItem('refresh_token')
                })
                .pipe(
                    tap(response => {
                        this.isRefreshingToken = false;
                        this.storeTokens(response.data.token, response.data.refreshToken);
                    })
                );
        }

    Когда уверен в своем сервере. Или просто сдался.

    azamat, 06 Сентября 2019

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

    −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
    // Python
      str = "1,2,3,4,5,6"
      print(str.replace(",", " ")) #1 2 3 4 5 6
    // C# 
      String str = "1,2,3,4,5,6";
      Console.WriteLine(str.Replace(',', ' ')); //1 2 3 4 5 6
    // Java
      String str = "1,2,3,4,5,6";
      System.out.println(str.replace(',',' ')); //1 2 3 4 5 6
    // Javascript
      const str = "1,2,3,4,5,6"
      console.log(str.replace(',', ' ')) //1 2,3,4,5,6

    Почему? А хуй его знает

    bootcamp_dropout, 27 Августа 2019

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

    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
    // где-то в классе MyTable
    
    public next() {
      if (this.firstVisibleRow + this.currentRow < this.sortedData.length) {
        this.firstVisibleRow = this.firstVisibleRow + this.currentRow;
      }
      this.sortTable();
    }
    
    public prev() {
      if (this.firstVisibleRow - this.currentRow > 0) {
        this.firstVisibleRow = this.firstVisibleRow - this.currentRow;
      } else {
        this.firstVisibleRow = 0;
      }
      this.sortTable();
    }
    
    public sortTable() {
      this.sortedData.forEach((item, index) => {
        for (let i = this.firstVisibleRow; i < (this.firstVisibleRow + this.currentRow); i++) {
          if (i === index) {
            this.visiblilityList[index] = true;
    
            return;
          }
        }
        this.visiblilityList[index] = false;
      });
    }

    Коллега не прекращает удивлять )
    Код компонента Таблица для Vue.
    Кажется, в этом коде прекрасно всё.
    Обратите внимание, как красиво выполняется метод sortTable.
    Здесь visiblilityList используется для определения какие ряды в таблице нужно рисовать при пагинации. Про существование переменных page и rowsPerPage не слышал.
    Удивительно, но это говно работает!
    Планируем нашему коллеге по итогам года подарить грамоту "Качественный говнокод года" )

    igpo, 09 Августа 2019

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

    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
    function sortWithIndeces(toSort: any) {
      for (let i = 0; i < toSort.length; i++) {
        toSort[i] = [toSort[i], i];
      }
      toSort.sort(function(left: any[], right: any[]) {
        return left[0] < right[0] ? -1 : 1;
      });
      toSort.sortIndices = [];
      for (let j = 0; j < toSort.length; j++) {
        toSort.sortIndices.push(toSort[j][1]);
        toSort[j] = toSort[j][0];
      }
    
      return toSort;
    }
    
    sortWithIndeces(arr);
    
    arr.sortIndices.forEach((item: any, index: number) => {
      result[index] = data[item];
    });

    Нашёл в гите у нас на проекте этот божественный код )
    Сортировка выглядит так, ни одного коммента в коде.
    В ходе анализа стало понятно что таким образом автор пытался восстановить порядок сортировки.

    igpo, 09 Августа 2019

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

    −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
    if (!a) {
      	a = 1;
    } else {
    	a = 2;
    }
    var a = undefined;
    console.log(a); //undefined
    
    if (!a) {
      	a = 1;
    } else {
    	a = 2;
    }
    var a ;
    console.log(a); //1

    Her, 02 Августа 2019

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

    +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
    parse: function() {
                    let c = dstack[dstack.length - 1];
                    c = c == ' ' ? '\\s' : s.replace(/[^\w\s]/g, '\\$&');
                    const regex = new RegExp('^[^' + c + ']*', 'g');
                    const match = regex.exec(rest_source);
                    dstack.push(match[0]);
                    rest_source = rest_source.slice(regex.lastIndex, rest_source.length);
                    output.push(match[0]);
                },
                word: function() {
                    let c = dstack[dstack.length - 1];
                    c = c == ' ' ? '\\s' : s.replace(/[^\w\s]/g, '\\$&');
                    const regex = new RegExp('^[' + c + ']*', 'g');
                    const match = regex.exec(rest_source);
                    rest_source = rest_source.slice(regex.lastIndex, rest_source.length);
                    output.push(match[0]);
                    words.parse();
                },
                name: function() {
                    dstack.push(' ');
                    words.word();
                },

    /докт[ао]р,?\s*у\s*м[еи]ня\s*регулярк[аои]\s*г[ао]л[ао]вного\s*мо(ск|зг)а/i

    666_N33D135, 27 Июля 2019

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