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

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

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

        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
      Ответить
      • Ты просто завидуешь зп джаваскриптеров
        Ответить
      • module.exports = (person) => person != "Kamila Szewczyk" && person != "Julia Konopinska" && person != "Oliver Felix";


        при этом контрибьютера четыре
        Ответить
        • картинка с «ты знал, что в мире каждый третий».жпг
          Ответить
        • Методом исключения получается, что идиот из них https://github.com/sarkiroka
          Ответить
          • >I just press the buttons randomly, and the program evolves...
            да ктоб сомневался
            Ответить
            • Всегда так делаю.
              Ответить
            • Кстати, «sarki róka» с венгерского переводится как «песец».
              Ответить
              • .hu в конце его вебсайта намекает.

                Он должен тогда так писать:

                strName = "sarki roka";
                nAge = 30;

                Кстати, у него всего один реп, но очень полезный
                https://github.com/sarkiroka/current-date/blob/master/current-date
                Ответить
                • 18384 commits.

                  https://github.com/sarkiroka/current-date/commits/master
                  Ответить
                  • https://github.com/sarkiroka/current-date/commits/master/current-date

                    ps
                    https://github.com/sarkiroka/art/blob/master/rt.asm

                    kilépünk ha nyomtak egy gombot
                    Ответить
                    • Зашёл на генератор фейковых анкет:
                      https://rawgit.com/Marak/faker.js/master/examples/browser/index.html

                      Выбрал Россию. Он мне предложил имя Матвей Петухов.
                      Ответить
                      • Антонина Быкова
                        Живет в Оксанаbury, WY 462547
                        На улице 248 Людмила пр.

                        Выглядит вот так
                        https://s3.amazonaws.com/uifaces/faces/twitter/raphaelnikson/128.jpg

                        Кажется, этот сайт делал Фома Кинаев
                        https://cs10.pikabu.ru/post_img/2019/08/21/2/1566350738196757034.jpg
                        Ответить
                        • Кстати, почему Фома так выглядит молодо для своих лет?
                          Ответить
                          • Паспорт выдали в 1998 году. Фома родился в 1969. Вполне может быть 29-ти летним
                            Ответить
                            • А, не заметил "98" под штампом. Т.к. 2003 - срок годности паспорта, а не год выдачи.
                              Ответить
                        • была такая охуенная игрушка-квест 1991-го года выспуска: KGB

                          Как в настоящем старом квесте там можно пирдолиться в одной комнате восемь недель.
                          Но главная ее прелесть это просто пиздецовая клюквка.
                          Всем советую
                          https://www.mobygames.com/images/shots/l/235494-kgb-dos-screenshot-vovlov-s-office.png

                          зы: ахахахбля
                          https://www.rockpapershotgun.com/images/10/oct/resized/gnk.png
                          Ответить
                          • еще немножечко
                            https://s.uvlist.net/l/y2009/10/64936.jpg

                            https://i.ytimg.com/vi/1Kd-oUvpTNI/hqdefault.jpg


                            https://lparchive.org/KGB-aka-Conspiracy/Update%2066/3-2_04a_004.png
                            Ответить
                          • Графика радует. Умели же при таком количестве пикселей и при таком количестве цветов делать хорошо разбираемые картинки.
                            Ответить
                            • а еще она работает исключетельно в конвеншнал мемори, за 640к не вылазит
                              Ответить
                      • Диванон, тгавля!
                        Ответить
                    • наконец-то я понял, что мне напоминает ассемблер. польский язык. krv eax, eax
                      Ответить
              • Полный песец.
                Ответить
          • P.S. Хотя погодите, один из контрибьюторов Krzysztof Szewczyk, а в исключениях Kamila Szewczyk. Значит, Кшиштоф тоже идиот.
            Ответить
            • Раньшеб я подумал, что это его жена.
              Но в наше время Кшиштоф может стать Камилой. Впрочем, Польша -- страна очень католическая и консервативная, так что вряд-ли
              Ответить
      • Реквестирую новые мудули
        const isScriptuh = require('is-scriptuh');
        
        isScriptuh("tsar");    // false
        Ответить
    • критика чистого 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')
        Ответить
        • Точно! Нужно прихуярить is-number.
          Ответить
          • нужно собирать цепочкой их
            is-two пусть зависит от is-one
            is-three от is-two
            итд
            Ответить
            • Тогда нужно как-то ограничить длину, а то цепочка длиной в десяток-другой тысяч пакетов слишком уж смахивает на дудос.
              Ответить
              • Двоичным поиском.
                Ответить
                • Хорошая идея!
                  Ответить
                  • сначала сделай линейным, потом (когда O(N) будет тормозить где-то в районе is-100500) выпустишь новую версию с двоичным поиском
                    Ответить
                    • Думаю сделать каждый десятый мудуль обычным equals(), а все остальные — связать в цепочки по десять.
                      Ответить
                      • типа как инкрементальный и фулл бекап и логи делают?
                        Ответить
                        • Ага.
                          is0 <- is1 <- is2 <- ... <- is9
                          is10 <- is11 <- is12 <- ... <- is19
                          Ответить
                          • Запили фукциональненькие нумералы Чёрча через пакеты zero и one.
                            Ответить
                            • В следующей версии.
                              Ответить
                            • Вот это по-настоящему годная идея.
                              Нумералы Чёрча — кладезь бойлерплейта.
                              Ответить
                              • Вообще, стоит сделать какой-то упоротый интерпретатор на основе питушни, каждый символ которой - пакет. А в этих терминах уже реализовать JS/какой-то язык/прочую питушню.
                                Ответить
                          • Запилил, залил (руками) от is-eq-zero до is-eq-ten.
                            https://www.npmjs.com/package/is-eq-six
                            Ответить
          • Надо прихуярить модуль, который даёт возможность вывести символ 'a'. Потом 'b'. И т.п.

            А потом модуль, который выводит 'Great pithu' и зависит от девяти буквенных модулей.
            Ответить
      • Кстати, может сделать эту питушню рекурсивной?
        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://www.npmjs.com/package/one, https://www.npmjs.com/package/three, https://www.npmjs.com/package/four, https://www.npmjs.com/package/six зашкварили какие-то киберсквоттеры.

                А вот https://www.npmjs.com/package/two, https://www.npmjs.com/package/five делают то, что надо.
                Ответить
              • какой багор ))
                а почему так?
                Есть же модуль, и false ставится
                Ответить
                • Хуй знает, видимо, поменялось что-то.
                  Ладно, придётся использовать is-true.
                  Ответить
                  • возможно что там проебалось приведение типов внутри npm где-то, и true стал совсем не именем модуля
                    Ответить
        • Ещё в прошлом треде.

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

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

          Или даже хитрее. Написать какой-то небольшой, действительно полезный модуль.
          А в очередном «обновлении» добавить зависимость на эту срань.
          Ответить
      • Предлагаю погрепать по гитхабу проекты, которые сравнивают с двойкой. И закинуть им пулл-реквест.
        Ответить
      • 1.Сделать большую цепочку зависимостей.
        2. Написать полезный модуль зависимый от них.
        3. Наконтрибьютить его за щеку в более-менее вжопулярный мудуль.
        4. Покупаем попобольше бананов и наблюдаем.
        Ответить
        • сделать модуль foo
          положить туда файл pagefile.sys на 4гига
          задепендить на него is-eight
          Ответить
          • pagefile.sys туда надо последним шагом заливать, когда модуль станет популярным. Узнаем сколько разрабов любит острые ощущения и не лочит версии.
            Ответить
            • к сожалению, лочат теперь из коробки. но это не мешает им иногда делать update
              Ответить
            • > сколько разрабов любит острые ощущения и не лочит версии
              Ну тут шо то питушня, шо это питушня, копировал я его пакеты в репозиторий.
              На каком-то этапе проект становится хрупкой питушнёй, которая зависит от определённой старой версии, и обновиться ради багфиксов нельзя, т.к. пакет ушёл далеко вперёд.
              Ответить
              • все же нелочинье это куда большя питушная
                это же анрепродюсибл билд получается
                Ответить
              • С локом тебе просто лень обновляться на убежавшую версию, но в общем-то всё работает.
                Без лока ты с горящей жопой фиксишь баги в рандомное время, отвлекаясь от нормальных задач.
                Ответить
                • Без лока у тебя всё работает, а у тестеров, CI и в проде -- нет
                  Ответить
                  • Да и у тебя не всё работает если коллеги на новую либу переключились и фичи заюзали. Короче треш, угар и содомия. Нахуй так жить?
                    Ответить
                    • Интересно, что сначала локи завезли в Руби (Gemfile.lock)
                      Затем пейсбук попытался добавить их в JS (yarn), оттудава их скопипиздил npm, и теперь там тоже локи.

                      В питоне локи попытлись завезти в pipfile, но он не взлетел. В pip же локи есть только ручные, посредством pip freeze. Что там в poetry я хз.

                      Почему питухон на десять лет отстает от руби по бестпрактис?
                      Ответить
                      • Кстати, а в пёрле есть локи? Они же вроде первые пакетный менеджер завезли.
                        Ответить
                        • Если я верно помню, то в моем детстве не было там даже депенденсов. Ставить их надо было руками, когда установка падала с руганью на отсутствие.

                          Были еще бандлы которые вместе ставили много всяково говна.


                          Потом завезли вот
                          https://metacpan.org/pod/cpanfile ,причем по мативам руби

                          А теперь уже и локи
                          https://metacpan.org/pod/Carton

                          Такшта кажется, что руби был первый
                          Ответить
                      • Причем тут pip freeze? Вы о чем?
                        Ответить
          • Лучше генерить такой файл криптушнёй при установке. А затем там искать питушню, у которой есть признаки. Например, 9 - это x: x>0, x^3 + 30x + 1 == 1000.
            Ответить
            • или вот мы знаем, что 29 это нное по счету простое число.
              Соответственно, мы делаем модуль, который эмитит простые числа, и вызываем его, и если вдруг его нное по счету число совпадет -- значит это оно и есть.

              Простые числа можно хардкодить, но лучше просто идти по всем целым, и для каждого искать на что оно делится
              Ответить
            • > 9 - это x: x>0, x^3 + 30x + 1 == 1000.

              обычно после 3 раз толку нет сжимать.
              блок каторый состоит из трех итд
              3x3x3=27
              4^4=256
              162 163-190 190-217 191-218...219-246 247+1 3 1.6-3times
              135 136-163 164-191 192-219 220-246 +1 247 4 3-8times
              Ответить
      • А ты тесты добавил, кстати?
        Ответить
        • Конечно!
          "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"}));
              });
          });
          Ответить
    • Это такой обряд посвещения.

      Не опубликовал бессмылсленный мудуль — не жаваскриптер.
      Ответить
      • все хотят стать популярными, как лефтпад
        Ответить
    • а между тем
      https://ic.pics.livejournal.com/akim_trefilov/19190766/239277/239277_600.jpg
      Ответить
    • угадайте
      про что репозитоий
      https://github.com/RefugeRestrooms/
      Ответить
      • 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.
          Новосибирск - более толерантен.
          Ответить
          • у меня дома тоже дежндер нейчурал тойлет
            правда, он анрейтд, слава богу
            Ответить
      • Кстати, есть такая же питушня, но просто про туалеты? Если человек не инвалид-колясочник, то ему как бы пофиг, нейтральный туалет, или кого-то поддерживает, когда очень хочется. Будь я трансом, сходил бы в бесплатный туалет для бинаромразей, если бы трансовый туалет был далеко или платный.
        Ответить
      • https://github.com/RefugeRestrooms/refugerestrooms-android/blob/master/app/src/main/java/org/refugerestrooms/database/SaveBathroomPropertyHandler.java


        SaveBathroomPropertyHandler
        https://github.com/RefugeRestrooms/refugerestrooms-android/blob/master/app/src/main/java/org/refugerestrooms/database/model/BathroomEntityDao.java

        блядь, какой же противный код
        словно гомосеки писали

        String street = entity.getStreet();
                if (street != null) {
                    stmt.bindString(3, street);
                }
         
                String city = entity.getCity();
                if (city != null) {
                    stmt.bindString(4, city);
                }
         
                String state = entity.getState();
                if (state != null) {
                    stmt.bindString(5, state);
                }
         
                String country = entity.getCountry();
                if (country != null) {
                    stmt.bindString(6, country);
                }
        Ответить
        • https://github.com/RefugeRestrooms/refugerestrooms-ios/blob/develop/refuge-ios/refuge-ios/Models/RefugeRestroomEntity.h

          пеервел на абъективную сижечку

          и на уби
          https://github.com/RefugeRestrooms/refugerestrooms/blob/develop/app/models/restroom.rb
          Ответить
      • Вообще, еврогейцы - поехавшие и озабоченные.

        Заходит гетеросексуальный мужик в белорусский мужской туалет - и ничего.
        Заходит гетеросексуальный мужик в европейский мужской туалет - и там его просят пройти в джендер ньютрал туалет.
        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...
      Ответить
      • g: "Цвет бедра нимфы"
        Ответить
        • Фельдграу, берлинская лазурь, персидская синь, фалунская красная, шокирующий розовый, призрачный голубой...
          Ответить
          • цвет детской неожиданности, серобурмалиновый...
            Ответить
      • is-transparent-red, is-transparent-orange
        Ответить
      • еще можно сделать модули проверки, можно ли этим цветом нарисовать что-то. is-nemyx-drawable
        Ответить
    • На сайте «npm» есть строчка с меняющимся бессмысленным текстом, который можно сократить до «n. p. m.»

      Оказывается, текст берётся отсюда:
      https://github.com/npm/npm-expansions/blob/master/expansions.txt
      Ответить
      • Прямо как «QED».
        Ответить
      • прыщетуса любит странные названия
        вспомни названия контейнеров докера, дистрибутивов линукса, и даже самих ядер
        вот у меня сейчас перед глазами ядро "People's front"
        Ответить
        • а еще у меня Blurry Fish Butt

          Жопа нечеткой рыбы
          или
          Рыбы жопа нечеткая
          Вообще хорошее название для линукс
          Ответить
      • блядь, я-то думал он все три на лету подбирает
        Ответить
      • пошлюк-ка PR

        Nu pistets mudak
        Naui poshla malafja
        Ответить
    • Напомню, что абсолютно все ЦМС и вики сосут у
      https://ikiwiki.info/
      Ответить

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