Самые отбитые проекты Github

в 12:54, , рубрики: дичь, треш, треш и угар

За долгое время, проведенное «в раскопках» на Github, собралась коллекция удивительных проектов, самое лаконичное описание для которых — лютая дичь. Небольшую часть этой коллекции автор заботливо собрал, запустил и затем описал в этой статье.

Так что заваривайте чаю с ромашкой и запасайтесь успокоительными — с такой подборки поплохеет многим.

Самые отбитые проекты Github - 1

BossSensor

https://github.com/Hironsan/BossSensor

Программа с помощью вебкамеры, компьютерного зрения и нейросети определяет приближение начальника к рабочему месту хитрого сотрудника и запускает рабочее приложение, вместо браузера с известными сайтами.

К сожалению проект успел устареть и рассчитан на работу в MacOS, поэтому у меня не заработал.

Проект создан китайским разработчиком, по всей видимости для китайских же трудовых реалий, отдельного внимания достойны Issues:

Самые отбитые проекты Github - 2

Ниже с оригинальными авторскими скриншотами, как вся эта задумка должа была работать. Камера распознала приближение босса:

Самые отбитые проекты Github - 3

По мере приближения, программа с помощью вебкамеры и библиотеки OpenCV пытается найти ключевые области:

Самые отбитые проекты Github - 4

Если классфикатор сработал — программа запускает среду разработки с открытым проектом:

Самые отбитые проекты Github - 5

Судя по файлу c зависимостями проекта:

h5py==2.8.0
Keras==2.2.4
mock==2.0.0
numpy==1.15.3
pbr==5.1.0
protobuf==3.6.1
PyYAML==3.13
scikit-learn==0.20.0
scipy==1.1.0
six==1.11.0
sklearn==0.0
tensorflow==1.11.0
Theano==1.0.3

автору стоило все же сменить работодателя (или страну), вместо того чтобы так сильно заморачиваться.

Не знаю как обстоят дела в Китае с AI/ML‑разработчиками, но в РФ за владение такими технологиями даже сейчас (не говоря про 8 лет назад — проект старый) готовы целовать в разные места и всячески поощрять и мотивировать.

UXVIDEOS

https://github.com/kikobr/UXVIDEOS

Хотя идея совместить внешнее оформление сайта для взрослых и ленивых с айтишным контентом не нова, но в виде готового отдельного проекта вижу впервые:

UXVIDEOS is just a parody where we merge the identity of XVIDEOS (interface and writing) with content from the UX Design world. The objective is just to level up this name proximity joke.

Получилось необычно.

Собственно этот проект, запущенный в режиме отладки вы можете наблюдать на заглавном скриншоте статьи.

activate-linux

https://github.com/MrGlockenspiel/activate-linux

Следующий отбитый проект — интересный повод заехать в дурку для сисадмина-линуксоида, если подсунуть ему такое в неподходящий момент:

Самые отбитые проекты Github - 6

Да, это та самая знаменитая плашка «Activate Windows», портированная на Linux:

Самые отбитые проекты Github - 7

Проект без особых проблем собирается из исходников (был убран только бекэнд для Wayland), еще и присутствует в репозиториях к самым популярным дистрибутивам в готовом виде.

А еще есть версия для любителей Mac.

В действии можно наблюдать на заглавном скриншоте к статье, правый нижний угол.

Hipku

https://github.com/gabemart/hipku?tab=readme-ov-file

Библиотека на Javascript для кодирования и декодирования IP-адресов в..хайку!

Серьезно:

A tiny javascript library to encode IPv6 and IPv4 addresses as haiku.

Сайт автора к сожалению не работает, поэтому был написан вот такой тестовый код:

hipku = require('./index.js');

addr = '127.0.0.1';
e = hipku.encode(addr);

console.log(addr,':',e);

addr = '192.168.0.1';
e = hipku.encode(addr);

console.log(addr,':',e);

h = 'The weary red dove fights in the empty tundra. Jasmine petals dance.';
d = hipku.decode(h);

console.log(h,':',d);

А так это выглядит в работе:

Самые отбитые проекты Github - 8

Ну разве не прелесть?

FizzBuzzEnterpriseEdition

https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

Любая хорошая идея рано или поздно будет доведена до абсурда, в данном случае довели старый добрый FizzBuzz:

Enterprise software marks a special high-grade class of software that makes careful use of relevant software architecture design principles to build particularly customizable and extensible solutions to real problems. This project is an example of how the popular FizzBuzz game might be built were it subject to the high quality standards of enterprise software.

Примерно в таком стиле станете писать код если вас вдруг укусит системный архитектор крупного банка:

Собирается и работает, даже с тестами.

Собирается и работает, даже с тестами.

Поскольку автор сам неоднократно работал в банках, с крупными enterprise-проектами и имеет опыт работы системным архитектором, стоит добавить:

с точки зрения серьезной архитектуры и современных корпоративных реалий данный проект — откровенно слабоват.

При желании можно было усложнить раз в десять, если уж решили стебать энтерпрайз.

ArnoldC

https://github.com/lhartikk/ArnoldC/tree/master

Если вы дочитав до этого места остались разочарованы, то этот проект точно вернет вам радость и интерес к жизни:

Programming language based on the one-liners of Arnold Schwarzenegger.

И я считаю это настоящим шедевром разработки.

Вот так выглядит «Hello world»:

Самые отбитые проекты Github - 10

Помимо генерации байткода на Java, сей замечательный компилятор умеет.. озвучивать код голосом:

java -jar ArnoldC.jar -declaim hello.arnoldc

Команда выше сгенерирует .wav файл с произнесенными механическим голосом робота фразами из исходного кода.

Если думаете что язык игрушечный и ничего серьезного на нем не реализовать — стоит посмотреть на автотесты, например вывод чисел Фибоначчи:

 it should "print fibonacci when using recursion" in {
    val code = "IT'S SHOWTIMEn" +
      "HEY CHRISTMAS TREE resultn" +
      "YOU SET US UP 0n" +
      "GET YOUR ASS TO MARS resultn" +
      "DO IT NOW fib 9n" +
      "TALK TO THE HAND resultn" +
      "YOU HAVE BEEN TERMINATEDn" +
      "nLISTEN TO ME VERY CAREFULLY fibn" +
      "I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE valn" +
      "GIVE THESE PEOPLE AIRn" +
      "tHEY CHRISTMAS TREE endrecursionn" +
      "tYOU SET US UP @I LIEDn" +
      "tGET TO THE CHOPPER endrecursionn" +
      "tHERE IS MY INVITATION 2n" +
      "tLET OFF SOME STEAM BENNET valn" +
      "tENOUGH TALKnn" +
      "tBECAUSE I'M GOING TO SAY PLEASE endrecursionn" +
      "ttI'LL BE BACK valtn" +
      "tBULLSHITn" +
      "ttHEY CHRISTMAS TREE temp1n" +
      "ttYOU SET US UP 0n" +
      "ttHEY CHRISTMAS TREE temp2n" +
      "ttYOU SET US UP 0nn" +
      "ttGET TO THE CHOPPER valn" +
      "ttHERE IS MY INVITATION valn" +
      "ttGET DOWN 1n" +
      "ttENOUGH TALKn" +
      "ttGET YOUR ASS TO MARS temp1n" +
      "ttDO IT NOW fib valn" +
      "ttGET TO THE CHOPPER valn" +
      "ttHERE IS MY INVITATION valn" +
      "ttGET DOWN 1n" +
      "ttENOUGH TALKn" +
      "ttGET YOUR ASS TO MARS temp2n" +
      "ttDO IT NOW fib valn" +
      "ttGET TO THE CHOPPER valn" +
      "ttHERE IS MY INVITATION temp1n" +
      "ttGET UP temp2n" +
      "ttENOUGH TALKn" +
      "ttI'LL BE BACK valn" +
      "ttYOU HAVE NO RESPECT FOR LOGICnn" +
      "nHASTA LA VISTA, BABY"

    getOutput(code) should equal("34n")
  }

А вот так выглядят методы:

  it should "evalute method other than main" in {
    val code =
      "LISTEN TO ME VERY CAREFULLY mymethodn" +
        "HASTA LA VISTA, BABYn" +
        "IT'S SHOWTIMEn" +
        "TALK TO THE HAND "Hello"n" +
        "YOU HAVE BEEN TERMINATEDn"
    getOutput(code) should equal("Hellon")
  }

Думаю очевидно, что для компиляции вне Unit‑теста, необходимо вытащить строки с кодом в отдельный файл и скормить компилятору, но автор оставил как есть ради подсветки синтаксиса в этих блоках.

Проект ArnoldC написан на Scala (причем старой версии) и собирается с помощью sbt.

Если у вас нет опыта ни с тем ни с другим — не стоит пытаться собирать в современном окружении, используйте готовую сборку, благо она работает на любой Java старше 1.8

В качестве эпилога:

Although the one-liners of Arnold Schwarzenegger are fairly well known the true semantics of the uttering is yet to be understood. This project tries to discover new meanings from the Arnold movies with the means of computer science.

Офигенный проект, однозначно.

StackOverflow Importer

https://github.com/drathier/stack-overflow-import

Идеальный проект для 21го века, к сожалению более не работающий из-за изменений в верстке на самом StackOverflow.

Суть:

from stackoverflow import quick_sort will go through the search results of [python] quick sort looking for the largest code block that doesn’t syntax error in the highest voted answer from the highest voted question and return it as a module. If that answer doesn’t have any valid python code, it checks the next highest voted answer for code blocks.

Да, вы все правильно поняли, эта замечательная библиотека позволяет вытаскивать готовые куски кода с сайта StackOverflow и сразу цеплять их в конечный проект:

>>> from stackoverflow import quick_sort, split_into_chunks

>>> print(quick_sort.sort([1, 3, 2, 5, 4]))
[1, 2, 3, 4, 5]

>>> print(list(split_into_chunks.chunk("very good chunk func")))
['very ', 'good ', 'chunk', ' func']

>>> print("I wonder who made split_into_chunks", split_into_chunks.__author__)
I wonder who made split_into_chunks https://stackoverflow.com/a/35107113

>>> print("but what's the license? Can I really use this?", quick_sort.__license__)
but what's the license? Can I really use this? CC BY-SA 3.0
>>> assert("nice, attribution!")

Внутри как-то так:

@staticmethod
def _find_code_in_html(s):
        print(s)
        answers = re.findall(r'<div id="answer-.*?</table', s, re.DOTALL)  # come get me, Zalgo
        print(answers)
        def votecount(x):
            """
            Return the negative number of votes a question has.
            Might return the negative question id instead if its less than 100k. That's a feature.
            """
            r = int(re.search(r"D(d{1,5})D", x).group(1))
            return -r

        for answer in sorted(answers, key=votecount):
            codez = re.finditer(r"<pre[^>]*>[^<]*<code[^>]*>((?:s|[^<]|<span[^>]*>[^<]+</span>)*)</code></pre>", answer)
            codez = map(lambda x: x.group(1), codez)
            print(codez)
            for code in sorted(codez, key=lambda x: -len(x)):  # more code is obviously better
                # don't forget attribution
                author = s
                author = author[author.find(code):]
                author = author[:author.find(">share<")]
                author = author[author.rfind('<a href="') + len('<a href="'):]
                author_link = author[:author.find('"'):]
                author_link = "https://stackoverflow.com" + author_link

                # fetch that code
                code = html.unescape(code)
                code = re.sub(r"<[^>]+>([^<]*)<[^>]*>", "1", code)
                try:
                    ast.parse(code)
                    return code, author_link  # it compiled! uhm, parsed!
                except:
                    pass
        else:  # https://stackoverflow.com/questions/9979970/why-does-python-use-else-after-for-and-while-loops
            raise ImportError("This question ain't got no good code.")

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

Авторы в прямом смысле «шагнули за край» таблицы IQ.

vapor.js

Не могу удержаться от цитирования всего описания целиком, настолько оно прекрасно:

vapor.js is a new amazing JavaScript framework.

In just 0 lines of code it provides:

Это не ошибка и после двоеточия действительно ничего больше нет.

Usage:

<script src="vapor.js"></script>

On modern browsers, you can inline it with a data URL:

<script src="data:application/javascript,"></script>

Alternatively, inline the whole code, like this:

<script></script>

(In this case, you can also omit the <script> tag completely for the ultimate in optimizations and efficiency!)

Если вы все еще не догадались, то весь проект это такой тонкий стеб над современной веб-разработкой и гонкой фреймворков.

Очень крутой стеб:

Самые отбитые проекты Github - 11

Авторы действительно заморочились, доведя тупую идею до безумия:

Самые отбитые проекты Github - 12

Но авторы столь упоротого проекта далеко не уникальны и есть кое-кто еще тупее круче.

vanilla.js

Этот проект — чистый дзен и жесточайший глумеж над современными веб-разработчиками, бездумно использующими Typescript и CoffeeScript:

Vanilla.js is a compile-to JavaScript language for people that write JavaScript.

Ну и разумеется гениальный в своей тупизне «компилятор», который просто копирует код из входящего файла в исходящий:

#!/usr/bin/env node

var fs = require('fs')
  , vanilla = require('vanilla')
  , src = process.argv[2]
  , target = process.argv[3]
  ;

if (process.argv.length !== 4) throw new Error('not enough process.argv')

fs.writeFileSync(target, vanilla(fs.readFileSync(src)))

И ведь найдутся люди, которые в это поверят и станут использовать, уверяю.

my_first_calculator.py

https://github.com/AceLewis/my_first_calculator.py

Продолжая тему экстремальной тупизны в разработке, представляю вашему вниманию следующий замечательный проект:

Самые отбитые проекты Github - 13

Процитирую лишь небольшую часть исходного кода, но думаю даже ее хватит чтобы любого более-менее адекватного разработчика начало корежить:

# my_first_calculator.py by AceLewis
# TODO: Make it work for all floating point numbers too

if 3/2 == 1:  # Because Python 2 does not know maths
    input = raw_input  # Python 2 compatibility

print('Welcome to this calculator!')
print('It can add, subtract, multiply and divide whole numbers from 0 to 50')
num1 = int(input('Please choose your first number: '))
sign = input('What do you want to do? +, -, /, or *: ')
num2 = int(input('Please choose your second number: '))

if num1 == 0 and sign == '+' and num2 == 0:
    print("0+0 = 0")
if num1 == 0 and sign == '+' and num2 == 1:
    print("0+1 = 1")
if num1 == 0 and sign == '+' and num2 == 2:
    print("0+2 = 2")
if num1 == 0 and sign == '+' and num2 == 3:
    print("0+3 = 3")
if num1 == 0 and sign == '+' and num2 == 4:
    print("0+4 = 4")
if num1 == 0 and sign == '+' and num2 == 5:
    print("0+5 = 5")
if num1 == 0 and sign == '+' and num2 == 6:
    print("0+6 = 6")
if num1 == 0 and sign == '+' and num2 == 7:
    print("0+7 = 7")
if num1 == 0 and sign == '+' and num2 == 8:
    print("0+8 = 8")
if num1 == 0 and sign == '+' and num2 == 9:
    print("0+9 = 9")
if num1 == 0 and sign == '+' and num2 == 10:
    print("0+10 = 10")
if num1 == 0 and sign == '+' and num2 == 11:
    print("0+11 = 11")
..    

Теперь самое страшное:

такой код действительно регулярно встречается в больших корпоративных проектах, особенно с разработчиками из стран Азии

Вот и живите теперь с этим.

volkswagen

https://github.com/auchenberg/volkswagen/tree/master

Следующий замечательный проект, названный в честь известного фейла компании Volkswagen — отличный повод быстро получить по лицу, если вас поймают за таким делом в любом более-менее серьезном проекте:

Volkswagen detects when your tests are being run in a CI server, and makes them pass.

Фольцваген как раз поймали и долго потом били, а поскольку компания большая — лупцевали не отдельные граждане а правительство.

И да, к сожалению такое тоже встречалось в реальных проектах.

Код разумеется крайне простой, вся проверка заключается в определении наличия глобальных переменных окружения:

Самые отбитые проекты Github - 14

Если есть — считаем что нас запустили в CI и отключаем тесты:

function assert () {
  var ok = function () {}
  ok.ok = noop
  ok.fail = noop
  ok.equal = noop
  ok.notEqual = noop
  ok.deepEqual = noop
  ok.notDeepEqual = noop
  ok.strictEqual = noop
  ok.notStrictEqual = noop
  ok.deepStrictEqual = noop
  ok.notDeepStrictEqual = noop
  ok.ifError = noop
  ok.throws = function (block, error) {
    try {
      block()
    } catch (e) {
      if (typeof error === 'function') error()
    }
  }
  ok.doesNotThrow = function (block) {
    try {
      block()
    } catch (e) {}
  }

  mockery.registerMock('assert', ok)
}

Повторяю:

это плохо и так делать не надо.

Вас поймают и будут бить. Возможно даже ногами.

i-made-this

https://github.com/alichtman/i-made-this

Еще один проект из серии «смешно и страшно»:

Why struggle through building something impressive when plenty of developers have already done it? Just copy someone else's code and take credit for it!

Сложно судить насколько эта практика распространена в современной разработке, поскольку ныне актуальна в первую очередь поддержка и сопровождение а чего-то уникального, подпадающего под копирайты в обычных проектах давно уже нет.

Но если вам вдруг приспичило, вот как это работает:

This script clones an existing github repository, renames it and publishes it to your github profile after removing the git history and license.

Скрипт вполне рабочий (и не надо на меня так смотреть).

lolcommits

https://github.com/lolcommits/lolcommits

Следующий отбитый проект, связанный с Github и отлично сочетаемый с предыдущим:

lolcommits takes a snapshot with your webcam every time you git commit, archiving a "LOLcat" style image. Git blame has never been so much fun!

Вот так это выглядит в работе:

Самые отбитые проекты Github - 15

Запускать на своих проектах не решился :)

not-paid

https://github.com/kleampa/not-paid

Напоследок, маленькая радость фрилансера и лучший помощник в наше непростое время:

Add opacity to the body tag and decrease it every day until their site completely fades away. Set a due date and customize the number of days you offer them until the website is fully vanished.

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

Таким образом сайт постепенно «исчезает» — до тех пор пока автору не заплатят.

Судя по наличию кучи реализаций для Андроида, Windows, Flutter, iOS и Angular — тема больная и проблема актуальная.

P.S.

Оригинальная статья была написана в последних днях 2024 года и имеет куда более вольный стиль изложения, нежели принятый на Хабре.

Еще добавлю, что столь лютая дичь неподвластна течению времени, поэтому описываемые проекты никогда не устареют и навсегда останутся с вами.

Проще говоря:

развидеть это не получится ;)

Автор: alex0x08

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js