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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    'use strict';
    
    const isOdd = require("is-odd");
    
    module.exports = function isIsOdd(func) {
    	return func == isOdd;
    }

    https://www.npmjs.com/package/is-is-odd

    Why

    Some functions are not is-odd but they might make you think they're is-odd, this package helps you identify these functions with a simple interface.

    Нить бессмысленных npm-модулей.

    Запостил: 3.14159265, 29 Апреля 2020

    Комментарии (143) RSS

    • Срочно нужен модуль is-is-is-odd
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Там вырисовывается инфраструктура.

        Used By: is-ten

        https://github.com/animate-object/is-ten
        const isOdd = require('is-odd')
        const isIsOdd = require('is-is-odd')
        global.jQuery = require('jquery');
        require('jquery-basic-arithmetic-plugin')
        
        module.exports = function(val) {
          if (isIsOdd(isOdd)) {
            try {
              if (isOdd(val)) {
                return false
              }
            } catch (e) {
              return false;
            }
            return _isTen(val);
          } else {
              throw new Error("isOdd was not isOdd");
          }
        }
        
        const _isTen = (val) => {
          return jQuery.equals(val, 10);
        }
        Ответить
    • Если уж такую толстоту не прибили.

      I found myself with a number in my variable, wanting to add it to another number. Searching the web, I came across a screenshot https://www.doxdesk.com/img/updates/20091116-so-large.gif of a stackoverflow thread pointing to the obvious answer: I needed a jQuery plugin.

      Unfortunately, it seems like nobody wrote a decent plugin for such a common occurrence yet, so I decided to take the matters into my own hands: here's jQuery.basic_arithmetics.

      https://www.npmjs.com/package/jquery-basic-arithmetic-plugin
      Ответить
    • Осторожно, где-то рядом гуляет PEKYPCuBHblu_nemyx.
      Ответить
      • Не вижу
        Ответить
        • 'use strict';
          
          const isIsOdd = require("is-is-odd");
          
          module.exports = function isIsIsOdd(func) {
          	return func == isIsOdd;
          }
          Ответить
      • он пока еще разбирается в посте со стеками
        Ответить
      • Я закрыл ему путь.
        'use strict';
        'use force';
        
        const isOdd = require("is-odd");
        
        const pitux = new Proxy({},
        {
          get: function(obj, prop) {
            if(prop in obj) return obj[prop];
            if(!/^is(Is)*Odd$/.test(prop)) return void 0;
            
            if (prop == 'isOdd') return obj[prop] = isOdd;
            
            var prop1 = prop.replace(/^isIs/, 'is');
            return obj[prop] = function (f) {
              return f == pitux[prop1]; // PEKYPCuBHblu_nemyx не пройдёт
            };
          },
        });
        
        module.exports = pitux;

        Благодаря отложенному [] этот код не будет рекукарекать.
        Ответить
      • Хорошо бы, чтобы пандемия тоже стала рекурсивной.
        Ответить
    • https://www.npmjs.com/package/is-idiot

      Returns true if someone is an idiot.

      Реальный пример:
      const isIdiot = require('is-idiot');
      
      isIdiot("me");                    // true
      isIdiot("you");                   // true
      isIdiot("node.js developers");    // true
      isIdiot('Every JS "programmer"'); // true
      Ответить
    • критика чистого isOdd
      Ответить
    • Питушня по стопам госта:
      'use strict';
      'use force';
      
      const converter = require('number-to-words');
      const camelCase = require('camelcase');
      
      function toIdentifier (n) {
        return camelCase('is ' + converter.toWords.replace(/[^a-z ]+/gi, ''));
      }
      
      const pitux = {};
      
      for (var i=-100000000; i<=100000000; i++) {
        pitux[toIdentifier(i)] = function (x) {
          return x == i;
        };
      }
      
      module.exports = pitux;
      
      // pitux.isOne(1)


      Если достать парсер, можно сделать на проксях
      'use strict';
      'use force';
      
      const pitux = new Proxy({},
      {
        get: function(obj, prop) {
          if (!/^is/.test(prop)) return void 0;
          
          const val = prop.replace(/^is/, '');
          return function (x) {
            return x == val;
          };
        },
      });
      
      module.exports = pitux;
      
      // pitux.is10(10)
      // pitux.is10(10.0)
      // pitux.isTen('Ten')
      Ответить
    • 'use strict';
      'use force';
      
      module.exports = function halts(code) {
        try {
          if (typeof code === 'function') code();
          else eval(code);
        } catch (e) {}
        
        return true;
      };
      Ответить
    • https://www.npmjs.com/package/is-eq-two
      Осталось прихуярить монитор автоматическую заливку — и заебись!
      Ответить
      • Думаю нужно заливать говнецо постепенно.
        Для начала добавить пару мудулей, убедиться что о боже мой, да всем насрать.
        Первая ошибка спаммеров на ГК всегда заключалась в том, что они начинали срать очень много и с одного акка.
        Ответить
        • Думаю начать с десятка-сотни мудулей. На пару-то точно всем полностью насрать, таких говнооднострочников там тысячи валяются.
          Ответить
        • Бгг.

          https://www.linux.com/news/state-union-npm/

          The figures regarding downloads are not the only ones that have seen exponential growth. The number of packages is also growing at an accelerated rate. At the beginning of 2015, the registry contained about 12,500 packages. But at the time of Williams’ talk, the number was already up to nearly 400,000.

          Надо было года на четыре раньше начинать! Сегодня уже рискуете остаться незамеченными.
          Ответить
      • И я бы использовал сторонние мудули.

        Как здесь:
        https://github.com/animate-object/is-ten

        >const isOdd = require('is-odd')
        >require('jquery-basic-arithmetic-plugin')
        Ответить
      • Кстати, может сделать эту питушню рекурсивной?
        const ${prev_function_name}
        function ${function_name}(x) {
            return typeof x === 'number' && ${prev_function_name}(x - 1);
        }

        Заодно можно проверить на прочность систему зависимостей.

        Ну или можно, если эта питушня приживётся, сделать другую серию модулей с рекурсией (<x, например).

        P.S. А, восьмишок уже предложил это.
        Ответить
        • > typeof x
          Фу, какой ты старомодный.

          Тем временем, обновил шаблоны, добавил зависимостей (в папочке node_modules теперь 103 директории!):
          'use strict';
          module.exports = is2;
          
          const isNumber = require('is-number');
          const isString = require('is-string');
          const isUndefined = require('is-undefined');
          const isNull = require('is-null');
          global.jQuery = require('jquery');
          require('jquery-basic-arithmetic-plugin');
          
          function is2(x) {
              // Check if given object is undefined
              if (isUndefined(x)) {
                  return false;
              }
              
              // Check if given object is null
              if (isNull(x)) {
                  return false;
              }
              
              // Check if given object is string
              if (isString(x)) {
                  return false;
              }
              
              // Check if given object is number
              if (!isNumber(x)) {
                  return false;
              }
              
              return jQuery.equals(x, 2);
          }
          Ответить
          • Признаю, отстал от жизни.

            > false
            Зачем хардкодить, если есть https://www.npmjs.com/package/false?
            Код же неподдерживаемый выходит.
            Ответить
            • Бля, нет в жизни совершенства.
              Ответить
            • Ну что за хуйня, не могу пакет true поставить.
              npm ERR! code ENOENT
              npm ERR! syscall chmod
              npm ERR! path /home/python/npm-is-zero/node_modules/true/bin/cli.js
              npm ERR! errno -2
              npm ERR! enoent ENOENT: no such file or directory, chmod '/home/python/npm-is-zero/node_modules/true/bin/cli.js'
              npm ERR! enoent This is related to npm not being able to find a file.
              npm ERR! enoent
              Ответить
        • Ещё в прошлом треде.

          https://govnokod.ru/26600#comment543625
          Ответить
        • >если эта питушня приживётся

          Её нужно пропихнуть в какой-то жопулярный модуль.
          Вместе с каким-то полезным патчем.
          Чтобы тянулось кросс-зависимостью. Только так это дерьмо может прижиться.

          Или даже хитрее. Написать какой-то небольшой, действительно полезный модуль.
          А в очередном «обновлении» добавить зависимость на эту срань.
          Ответить
      • Предлагаю погрепать по гитхабу проекты, которые сравнивают с двойкой. И закинуть им пулл-реквест.
        Ответить
      • 1.Сделать большую цепочку зависимостей.
        2. Написать полезный модуль зависимый от них.
        3. Наконтрибьютить его за щеку в более-менее вжопулярный мудуль.
        4. Покупаем попобольше бананов и наблюдаем.
        Ответить
      • А ты тесты добавил, кстати?
        Ответить
        • Конечно!
          "use strict";
          
          require("mocha");
          const assert = require("assert");
          const is0 = require("./");
          
          describe("is0", function() {
              it("should return true if the number is 0", function() {
                  assert(is0(0));
              });
            
              it("should return false if the number is not 0", function() {
                  assert(!is0(0 + 1));
              });
              
              it("should return false if the number is not a number at all", function() {
                  assert(!is0(null));
                  assert(!is0(undefined));
                  assert(!is0("0"));
                  assert(!is0({prop: "0"}));
              });
          });
          Ответить
    • Это такой обряд посвещения.

      Не опубликовал бессмылсленный мудуль — не жаваскриптер.
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • gender neutral туалет в новосибе https://www.refugerestrooms.org/restrooms/43317
        Ответить
        • В Новосибирске 3 gender neutral туалета, один - со 100% положительных отзывов
          В Москве 5 gender neutral туалетов, один - туалет "юлька" - с 0% положительных отзывов

          Новосибирск - 1.5 миллиона человек на 2012
          Москва - 11.9 миллионов человек на 2012

          В Новосибирске 2 толерантных туалета на миллион человек, в Москве - 0.42.
          Новосибирск - более толерантен.
          Ответить
      • Кстати, есть такая же питушня, но просто про туалеты? Если человек не инвалид-колясочник, то ему как бы пофиг, нейтральный туалет, или кого-то поддерживает, когда очень хочется. Будь я трансом, сходил бы в бесплатный туалет для бинаромразей, если бы трансовый туалет был далеко или платный.
        Ответить
      • показать все, что скрытоvanished
        Ответить
      • Вообще, еврогейцы - поехавшие и озабоченные.

        Заходит гетеросексуальный мужик в белорусский мужской туалет - и ничего.
        Заходит гетеросексуальный мужик в европейский мужской туалет - и там его просят пройти в джендер ньютрал туалет.
        https://youtu.be/jTIpLBKoKZ4?t=485
        Какой багор )))

        И ведь от еврогейцев мы слышим всякую питушню про то, что сам человек решает, к какой группе людей он себя относит.

        Думаю, лет через 10-20 экс-СССР будет прибежищем для ЛГБТ-сообщества. В европах будут постоянно подниматься вопросы толерантности, которые всех задолбают. Не знаю, как там живут ЛГБТ-интроверты.
        В экс-СССР со сменой поколений меньшинства станут нормой, а в вопросах толерантности будет торжествовать атмосфера пофигизма. Живи себе спокойно, пока платишь налоги и никого не убиваешь.
        Ответить
        • Кстати у нас в мелких кафешках вообще проблемы нет. Одноместный gender-neutral туалет, к которому в очереди стоят все подряд.
          Ответить
          • Сельский сортир без надписей, как вершина гендерного равенства.
            Ответить
            • На нём даже не написано, что это туалет, чтобы не оскорблять ничьих чувств.
              Ответить
            • классовый уравнитель, о котором мечтал коммунизм
              Ответить
    • Предлагаю создать модули для определения цветов по триаде R, G, B (или по шестнадцатеричному представлению):
      https://ru.wikipedia.org/wiki/Цвета_HTML

      is-red, is-orange, is-yellow, ... is-light-coral, is-lemon-chiffon, is-dark-slate-blue, is-olive-drab, is-pale-turquoise, is-navajo-white, is-gainsboro...
      Ответить
    • На сайте «npm» есть строчка с меняющимся бессмысленным текстом, который можно сократить до «n. p. m.»

      Оказывается, текст берётся отсюда:
      https://github.com/npm/npm-expansions/blob/master/expansions.txt
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий