Предновогодний угар
Осталось три дня до нового года и голова отказывается работать даже у самых отпетых и упертых, поэтому пост исключительно для развлечения.
Треш, угар и содомия
Ниже описание и демонстрация работы нескольких максимально упоротых проектов, заботливо отобранных для поднятия новогоднего настроения.
BossSensor
Программа с помощью вебкамеры и нейросети определяет приближение босса к рабочему месту и включает рабочее приложение (вместо порнухи).
К сожалению проект сильно старый и заточен под MacOS, у меня не заработал.
Проект создан китайцем, видимо для китайских же реалий, отдельно доставлили Issues:
Ниже с авторскими скриншотами, как это должно было работать.
Камера распознала приближение босса:
По мере приближения, программа с помощью вебкамеры и OpenCV пытается найти ключевые области:
Если классфикатор сработал — программа запускает среду разработки с открытым проектом:
Судя по файлу 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-разработчиками, но в РФ за владение такими штуками даже сейчас (не говоря про 8 лет назад — проект старый) готовы целовать в попу и всячески поощрять и мотивировать.
UXVIDEOS
Эти парни украли и реализовали мою идею!
Я еще лет 10 назад хотел сделать mashup из Хабра и Двача (или LinkedIn + 4chan), но только руки так и не дошли :(
Смысл в том чтобы на официальном, скучном и унылом корпоративном ресурсе вместо унылых и сухих корпоративных текстов, еще и написанных канцеляритом, вдруг появилось задорное порево Двача.
Разумеется с сохранением внешнего оформления от первого и наполнения от второго.
Именно эту идею и реализовали авторы проекта, но с немного другими ресурсами:
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
Следующий отбитый проект — интересный повод заехать в дурдом с острым психозом для сисадмина-линуксоида, если подсунуть ему такую штуку в момент серьезного застолья:
Да, это знаменитая плашка «Activate Windows», портированная на Linux:
Проект отлично собирается из исходников (я лишь убрал backend для Wayland), еще и присутствует в репозиториях к самым популярным дистрибутивам.
Есть версия для маководов.
В запущенном виде — на заглавном скриншоте к статье.
Hipku
Еще один уникальный способ до#бать вашего сисадмина:
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);
Вот так это выглядит в работе:
Ну разве не полный п#здец мамина прелесть?
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.
Короче это реализация FizzBuzz для #бнутых, во что-то такое превращается даже самый простой проект если вас укусил за жопу системный архитектор из крупного банка:
Поскольку я сам неоднократно работал в банках, постоянно работаю над enterprise-проектами, еще и имею опыт и стаж работы системным архитектором, замечу:
с точки зрения архитектуры и корпоративных реалий данный проект — откровенная х#ита
При желании можно было усложнить раз в десять, коль уж решили стебать энтерпрайз.
ArnoldC
Спрашиваете себя «нахер я читаю эту статью трезвым в последние дни 2024го года?»
Programming language based on the one-liners of Arnold Schwarzenegger.
И я считаю это настоящим шедевром разработки.
Вот так выглядит местный «Hello world»:
Помимо генерации байткода на Java, этот замечательный компилятор умеет.. озвучивать код голосом:
java -jar ArnoldC.jar -declaim hello.arnoldc
Команда выше сгенерирует .wav файл с произнесенными (кривым голосом робота) фразами из исходного кода.
Если думаете что язык игрушечный и ничего серьезного на нем не реализовать — стоит посмотреть на автотесты, например вывод чисел Фибоначчи:
it should "print fibonacci when using recursion" in { val code = "IT'S SHOWTIME\n" + "HEY CHRISTMAS TREE result\n" + "YOU SET US UP 0\n" + "GET YOUR ASS TO MARS result\n" + "DO IT NOW fib 9\n" + "TALK TO THE HAND result\n" + "YOU HAVE BEEN TERMINATED\n" + "\nLISTEN TO ME VERY CAREFULLY fib\n" + "I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE val\n" + "GIVE THESE PEOPLE AIR\n" + "\tHEY CHRISTMAS TREE endrecursion\n" + "\tYOU SET US UP @I LIED\n" + "\tGET TO THE CHOPPER endrecursion\n" + "\tHERE IS MY INVITATION 2\n" + "\tLET OFF SOME STEAM BENNET val\n" + "\tENOUGH TALK\n\n" + "\tBECAUSE I'M GOING TO SAY PLEASE endrecursion\n" + "\t\tI'LL BE BACK val\t\n" + "\tBULLSHIT\n" + "\t\tHEY CHRISTMAS TREE temp1\n" + "\t\tYOU SET US UP 0\n" + "\t\tHEY CHRISTMAS TREE temp2\n" + "\t\tYOU SET US UP 0\n\n" + "\t\tGET TO THE CHOPPER val\n" + "\t\tHERE IS MY INVITATION val\n" + "\t\tGET DOWN 1\n" + "\t\tENOUGH TALK\n" + "\t\tGET YOUR ASS TO MARS temp1\n" + "\t\tDO IT NOW fib val\n" + "\t\tGET TO THE CHOPPER val\n" + "\t\tHERE IS MY INVITATION val\n" + "\t\tGET DOWN 1\n" + "\t\tENOUGH TALK\n" + "\t\tGET YOUR ASS TO MARS temp2\n" + "\t\tDO IT NOW fib val\n" + "\t\tGET TO THE CHOPPER val\n" + "\t\tHERE IS MY INVITATION temp1\n" + "\t\tGET UP temp2\n" + "\t\tENOUGH TALK\n" + "\t\tI'LL BE BACK val\n" + "\t\tYOU HAVE NO RESPECT FOR LOGIC\n\n" + "\nHASTA LA VISTA, BABY" getOutput(code) should equal("34\n") }
it should "evalute method other than main" in { val code = "LISTEN TO ME VERY CAREFULLY mymethod\n" + "HASTA LA VISTA, BABY\n" + "IT'S SHOWTIME\n" + "TALK TO THE HAND \"Hello\"\n" + "YOU HAVE BEEN TERMINATED\n" getOutput(code) should equal("Hello\n") }
Думаю очевидно, что для компиляции вне юнит-теста, необходимо вытащить строки с кодом в отдельный файл и скормить компилятору, я оставил как есть ради подсветки синтаксиса в этих блоках.
Проект 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
Идеальный проект для 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.")
Идея с моей точки зрения гениальна своей экстремальной тупизной, недостижимой для обычных разработчиков.
С нетерпением ждем когда какой-нибудь малолетнийдолбо#бспециалист действительно запихнет такое в продакшн.
Но едем дальше, это еще не конец.
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!)
Please fork now and contribute, and keep up to date on Twitter!
Короч если вы еще не догадались, весь проект это такой стеб над современной веб-разработкой и гонкой фреймворков.
Народ прям радикально заморочился, доведя тупую идею до полного безумия:
Но авторы столь упоротого проекта далеко не уникальны и есть кое-кто еще тупее круче.
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
Продолжая тему экстремальной тупизны в разработке, представляю вашему вниманию следующий замечательный проект:
Процитирую лишь небольшую часть исходного кода, но думаю даже ее хватит чтобы более-менее адекватного разраба начало корежить:
# 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
Следующий п#здецовый проект, названный в честь известного про#ба компании Volkswagen — отличный повод быстро получить по #балу, если вас поймают за таким делом в любом более-менее серьезном проекте:
Volkswagen detects when your tests are being run in a CI server, and makes them pass.
Фольцваген как раз поймали и долго потом били, а поскольку компания немаленькая — лупцевали не отдельные граждане, а целое правительство.
И да, к сожалению такое я тоже встречал в реальных ИТ-проектах.
Код разумеется крайне простой, вся проверка заключается в определении наличия глобальных переменных окружения:
Если есть - считаем что нас запустили в 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
Еще один проект из серии «смешно и страшно»:
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
Следующий отбитый проект, связанный с 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!
Запускать в предновогодние дни не решился, честно )
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 — тема больная и проблема имеет место быть.