языки программирования :: программирование :: it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek языки программирования программирование 
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,языки программирования,программирование
Подробнее

it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,языки программирования,программирование
Еще на тему
Развернуть

Отличный комментарий!

а зачем? мне как питонисту интересно
caxap2d caxap2d19.06.202413:30ссылка
+8.6
Ну, лично у меня в приложении написанном на питоне 4 года назад отвалились все функции использующие регулярные выражения, потому что библиотека обновилась.
Vinegar Vinegar19.06.202413:32ссылка
+1.3
может можно зафиксировать версии либ в рекваерментах каких-нибудь?
Tril Tril19.06.202413:34ссылка
+37.3
а зачем? мне как питонисту интересно
Ну, лично у меня в приложении написанном на питоне 4 года назад отвалились все функции использующие регулярные выражения, потому что библиотека обновилась.
может можно зафиксировать версии либ в рекваерментах каких-нибудь?
Ну и мразь же ты!
Может и может. а может и не может
или просто перестать регулярно выражаться
Да не, бред какой-то
Можно.
Потом версия либы пропала из хранилища релизов, но это решается вендорингом.
Потом обновилась другая либа, и обновленная общая зависимость не подходит этой, но это решается раздельными версиями зависимостей.
Потом для обновления третьей либе нужна новая языка, и тут уже грусть-печаль.

Всё решается, но иногда переписать действительно дешевле.
можно встроить нужные файлы из библиотеки в сам релиз?
Можно, это "вендоринг" (запихать стороннюю библиотеку в свои сорцы). Есть и промежуточные решения, например держать зеркало или хранилище артефактов для зависимостей. Пока нет необходимости обновляться работает неплохо.
Внутри самой библиотеки бывают свои реквайременты
Можно, делай.

А потом от клиентов приходит письмо от их безопасника, где он пишет, что в древних либах дохера уязвимостей (список прилагается), обновите пжалста, а то мы солидный банк и не хотим, чтобы данные наших клиентов воровали хацкеры.
Как раз сейчас этим на работе занимаюсь.
Так пожалуйста. Если клиент хочет, то он это оплатит.
Менять версии либ в виде законной таски, на которую выделено время, и за которую платят, это не то же самое, что "внезапно вляпаться в депенденси хелл из-за того, что стоит автообновление версий, и кому-то из авторов либ моча в башку стукнула особенно сильно".
так клиент и платит. если у тебя сервис, который нужно поддерживать, то "переписывать" нужно будет 100%. ну а частота переписывания уже зависит от языка.

скрытый юмор поста в том, что на си никто не пишет поддерживаемые сервисы
Про virtualenv и докеризацию не слышал?
Про открытие уязвимостей не слышал? Обновляться рано или поздно придётся всем. Если конечно не в сдеке работаешь.
Апи делаешь, очевидно? Про другое не слышал? Да и фиксировать надо зависимости все равно. Плюс поэтри и иже с ним обновляют либы
Ну так понятно что обновления должны быть контролируемы, а не "на чём соберёшься, на том и запускайся".

На самом деле не важно что делаешь, пока оно умеет принимать информацию - оно взламывается. Если есть требование к безопасности и возможность обновления прошивки, обновляться все-равно придется. Даже если твой продукт - умная лампочка.
Тебе не придется переписывать прошивку лампочки если её интеллект позволяет лишь зажигаться при наличии напряжении на контактах :)
Никто не взломает сервер если он выключен!
Тогда dos это не атака, а механизм защиты
наверно именно поєтому все топовьіе современньіе ботнетьі почти полностью состоят из всякого IOT-говна
> На самом деле не важно что делаешь, пока оно умеет принимать информацию - оно взламывается.

Это верно только для говнокода.
Sweet child...
Есть пример неуязвимого не-говнокогда? А то даже у опенбсд cve-шки есть
trafshow
hping
d1489 покойного Чернова
Никому не известная хуйня, да ещё и с примитивным функционалом, в которой никто не искал уязвимостей, ну хитро, тут поспорить нечем
Ну я это и сам нагуглил, чё сказать то хотел? Там нет статистики популярности
зачем она
заранее можно сказать, что миллионы мух предочитают говно
Ну то есть я был прав. Два раза
популярность не есть критерий качества кода, и никогда не была
Непопулярность тоже. Не взломали потому что нахуй не надо, полторы калеки пользуются.
trafshow и hping ты предпочел проигнорировать.

А лично я уверен, что в этом коде Андрея Чернова уязвимостей нет. Хотя бы потом, что решаемая задача такая, несмотря на то, что входные данные она принимает и обрабатывает. Ну и ещё потому, что это ache@
Дрочить на непогрешимые идолы авторитетов это пиздец, ты прям ходячий сборник стереотипов старпëрского админа
Я не говорил, что ache@ был непогрешим, это ты сказал. Но ache@ был хороший программист.
Неуязвимый код это либо непогрешимые идела, либо функционал уровня хеллоу ворлд. Хотя насчëт второго я не уверен
В мире известно достаточно хороших программистов и хорошего кода. Включая достаточно объёмный код с хорошим функционалом, в котором не только уязвимостей мало или нет, но вообще ошибок. Классический пример это кнутовский \TeX с первоначальным релизом в 1978 году (TeX78). В релизе TeX82 он уже стал полным по Тьюрингу языком. TeX 3.0 вышел в 1990 году и с тех пор в него добавляются только багфиксы и с каждым багфиксом к версии добавляется очередная цифра числа pi, так что нынешняя версия 3.141592653, последняя была добавлена в 2021.

Девять багфиксов за 31 год.

Не надо ориентироваться на говно. И не надо признавать говно неговном.
Ладно, фанатиков переубедить бесполезно, особенно с многолетним опытом фанатизма
Убедить в чем? Что нети нетривиального кода без уязвимостей? Это тупо неправда и тому есть контрпримеры, факты. А факт упрямая вещь.
а как на счет не менять сука интерфейсы апи?
Ну так у минорных версий и не меняют. Мажорные версии на то и мажорные что лицензия на убийство апи есть
эээ нет, такой себе подход.
Общепринятый подход. Код - не дедова нива, код меняется и не без причин.
код - меняется, интерфейсы - да, дедова нива. По "общепринятому подходу" - полуправда же. Картинка действительно хорошо описывает реальность. Если софтину пишет олдскульщик - проблем не возникает, совместимость на огромном разлете версий а сверху еще в течении лет 5 прилетает варнинг о том что метод "деприкейтед" но продолжает работать. У самого уже наверно 10 лет коллекция в либе таких, народ просит не трогать, так как использует.

А когда приходится иметь дело с каким руби, питоном, итп - постоянно "общепринятый подход" мозг ебет в духе "нам похуй, переписывай".
Ну вот есть у тебя интерфейс к драйверу который ты в рамках фреймворка используешь. Драйвер или либа перестали поддерживаться и взломали их тучу раз вдоль и поперек. Интерфейс в фреймворке удаляется потому что нехуй использовать это говно.

Последнее что отваливалось - либа от соседней команды, ибо логика поменялась и старую использовать - некорректно, так что хуй тебе, а не деприкейт. Да и кучу деприкейта поддерживать никому нахер не уперлось. Особенно когда новые интерфейсы могут всё то же что и старые, а ещё сверху куча фич.
В среднем я не согласен с подходом "нам похуй, переписывай". Я со всем этим сталкиваюсь, но решаю удобнынм для конечного пользователя способом.

Да, бывают ситуации, когда ну прямо совсем никак, потому что авторы сторонних либ тоже из секты "нам похуй, переписывай", но в среднем стараемся сохранить интерфейсы, а изменившуюся логику прятать под капотом.
Сам так делал, но бизнес логика требует изменений. Да и в какой-то момент поддержка старого интерфейса становится нецелесообразной, вот там мы и обновляем мажорную версию
А можешь мне, любитель контейнеров и докера, сказать, знаешь ли ты, зачем люди обновляют библиотеки?
Или ты из тех, кто считает, что их обновляют только чтобы насолить пользователям?
Поэтому я пишу скрипты на POSIX shell. Он стандартизирован и вечен, а его выразительных средств достаточно, например, для написания SMS-шлюза для внутриконторского использования. Пашет уже 8 лет, переписывать незачем. Конфиг ему правил последний раз два года назад.
Вот только у шелла худший в мире синтаксис (всякая эзотерика не в счëт) и читать большие скрипты это очень больно, а ещё сам по себе шелл умеет немногим больше нихуя и почти всю работу делают бинари, которые ты вызывает и эти бинарники тоже неплохо бы обновлять...
Нормальный у POSIX shell синтаксис, if-then-else-while-for-do-done. Похож на паскалевский, который вообще для обучения детей программированию был придуман. В POSIX shell код можно разбивать на функции с локальными переменными. И правило "30% объёма текста должны составлять комментарии" никто не отменял, не надо быть ленивой жопой. А говнокод писать можно на ЛЮБОМ языке, инфа 100%.

Ну да, без бинарей никуда, поглядел в код своего шлюза: logger, realpath, mkdir, stat, lockf, timeout, gnokii, sleep, date, mv, jot, cat, ln, rm, nohup. Всё остальное shell built-ins. Почти все утилиты из POSIX.1, так что их обновление ничего не ломает, это стандарт.
>if-then-else-while-for-do-done.
А потом ты узнаëшь охуительные фокусы по типу того, что [ это бинарник и пробел после неë обязателен, иначе всë сломается и прочее подобное. Да и базовый синтаксис, состоящий из закорючек чуть менее, чем полностью читабельности не добавляет. А ещё совершенно разный функционал у похожих операторов типа | и ||

Пиздец ебаный ваш баш, говорю как сисадмин
А причем тут баш? Речь шла про POSIX shell, а вовсе не про bash, который к *стандарту* POSIX отношение имеет отдаленное. И не смотря на то, что [ это бинарник и его можно вызывать как /bin/[ , тем не менее в шелле у меня команда "type [" говорит, что это builtin (как и printf и много чего ещё). Пробел после любой команды обязателен, почему это тебя смущает? И не путай с перлом, в базовом синтаксисе POSIX shell очень немного закорючек, возможно ты путаешь с bash. Стандарт почитай. Или хотя бы учебники.
>Пробел после любой команды обязателен, почему это тебя смущает?
Потому, что открывающая скобка не должна быть, блин, командой! Везде можно писать хоть "if(expr){..." без пробелов, но щель у нас особенная.
> Потому, что открывающая скобка не должна быть, блин, командой!

Почему нет?

> Везде можно писать

Это ни разу не аргумент. У каждого языка свои требования. Ты ещё скажи, что отступы везде должны быть свободными и незначимыми :-)
>Почему нет?
Потому что возможность вызвать команду `if[` выглядит не так необходимо, чтобы это нельзя было обработать лексером (я понимаю, что там всё сложно, и тогда нельзя уже будет сделать [[, но всё же).
>отступы везде должны быть свободными и незначимыми
Так, про эти недоразумения мы не говорим :-)
Вообще, да, у каждого языка свои требования, но тогда я утверждаю, что эти требования неудобны мне, как программисту.
Если единственная претензия к синтаксису состоит в том, что видители пробел после if ставить тебе неудобно, то это прекрасная рекомендация языку, ящитаю :-)
Ну, именно к синтаксису это и правда самая большая претензия. Так-то я не спорю, язык очень хороший, но блин, кому от отсутствия этого пробела станет хуже? if-fi и так не являются бинарниками, [ - builtin, это и так надо парсить на стороне щели. Язык мог бы быть чуть лучше.
Это с лихвой компенсируется тем, что на язык есть СТАНДАРТ. То есть, правильно написанные скрипты на нём никогда не станут устаревшими из-за того, что появились "улучшаторы", которым захотелось улучшить язык и сломать обратную совместимость, как в Python3 по отношению к Python2.
Писать как хочешь - это деградантство. В любом языке есть принятые нормы оформления кода.
Кроме Perl 6. Он эволюционирует в том направлении, чтобы любая последовательность рандомных символов на любом языке компилилась и запускалась.
>Писать как хочешь - это деградантство
Да, но тут проблема не в том, что я хочу так писать, а в том, что я случайно забыл поставить пробел, а всё, что мне говорит щель - это `missing ]` (благо из-за того, что это builtin, он хотя бы строчку показывает). Возможно, спустя время я могу научиться читать эти ошибки, но только спустя время. Это беспричинно обособляет щель от других языков программирования, из-за чего язык чувствуется необосновано сложным.
Ааа, ты у мамы древний бородатый и решил тут повыёбываться какое говно мамонта крутое, а ебаные зумеры не шарят хуйнёй страдают, ну тогда можешь себе в кронтаб закинуть poyti_nahuy.sh
- написал программу
- прошло четыре года. забыл про программу полностью
- открыл исходный код какой то малопонятной утилиты. долго возмущался какой криворукий осел все это понаделывал? разве он про virtualenv и докеризацию не слышал? Или что можно зафиксировать версии либ в рекваерментах каких-нибудь? Все переписал.
- пока переписывал нашел комментарий от автора. Оказалось что программа твоя.
- прошло четыре года...
Вот пидор

Тут как раз смисл в том что он все начал не будучи пидаром.

Звучит тупо пока реально такое не происходит. Нашел в архиве чатика в телеге хороший пост по нужной проблеме. Захожу в личку к челу, а у него там порнуха.
Оказалось мой фейк
...
@
СПУСКАЕШЬСЯ ПО ЛЕСТНИЦЕ, ОТ НЕГОДОВАНИЯ УРЧИШЬ
@
СЛЫШИШЬ ЭТАЖОМ НИЖЕ НЕРВНЫЙ ВСХЛИП И УДАЛЯЮЩИЕСЯ ШАГИ
@
СПУСКАЕШЬСЯ БЫСТРЕЕ, УРЧИШЬ ГРОМЧЕ
Однажды я попытался запустить питонориблуду написанную для прошлой минорной версии.

ХУЙ ТАМ ПЛАВАЛ. Даже правка напильником не помогла. Подогрело мою ненависть к питону знатно.
Какое-то неправильное использование мема.
Должен был идти сначала "каждую неделю", потом "раз в год", потом "несколько лет", потом "никогда".
никогда это про Java
Ага, хуй там. Спринг 3 требует 17 джаву, а во втором критическая уязвимость которую никто исправлять не будет.
Да и саму джаву ломают время от времени, надо обновляться
код то менять практически не нужно, зависимости в поме поменял и вперед, при переезд 8 -> 17 жава, древние проекты на аксис только пришлось чутка переписать и где были совсем уж старые либы, которые удалили из стандартного набора jdk, пришлось просто добавить в зависимости как внешние
С 8 на 11 перезжал с болью. С 11 на 17 лютого пиздеца не замечено.
А вот спринги - вечный пиздец. Ресттемплей ему больше не нравится, сваггер вообще сменил поставщика, где-то аннотации отвалились...
> код то менять практически не нужно, зависимости в поме поменял и вперед
Просто не используй спринг...
И любые другие либы, и контейнеры сервлетов, и докеры/куберы, да можно и от операционок на серверах отказаться.
Адекватных альтернатив спрингу нет. И альтернатив многим другим либам тоже.
Фу блядь, спринг, хибернейт, докер, кубер. Как вспомню, так вздрогну.
Хорошо, что можно без них. Просто мало кто решается.
Не "мало кто решается", а "мало контор, не использующих спринг, в которых ты мог бы найти работу".
Я без проблем нахожу, но я не интересуюсь галерами в принципе.
Ага, если ты бездомный, то купи дом.
пришло время переписать мем
А кто на js переписывает приложения и зачем? Пишут новое и все.
Эх, а вот в старые добрые времена
https://www.jwz.org/doc/cadt.html
Для тех кто не умеет в английский автор из 2003 жалуется на то, что много опен сорсных проектов вместо того чтобы фиксить баги закрывают их с пометкой "мы переписали наше приложение с нуля и не поддерживаем старую версию". Обзывает это "каскадом подростков с дефицитом внимания". И да, речь про приложения на том самом С из поста.
Хм, вводные: проект С# жмёт на кнопки в чужом≥. ПО 2003г.в. на делфи.
ничего не обновляется, а софтина перестает запускаться, компилирую снова не меняя ровно ничего - работает. день, два, неделю и снова компиляция.
Подкиньте умных мыслей)
как как вариант, раз ПО на делфи, то как-то меняется расширение экрана и координата перестает попадать по кнопке. Из разряда, свернул, развернул - нифига не пашет. перекомпилировал, координаты снова стали попадать куда нужно.
Спасибо но нет, окна жёстко зафиксированы на столе, уже 5 лет они не перемещаются по столу. Вопрос исключительно в отказе запуска без свежей компиляции
раз у тебя есть исходники - добавь логирование в файл. я не знаю как реализовано, но по простому генерируется системное событие клика мышки по координатам. тут или приложение начинает промахиваться, или приложение виснет по каким-то причинам (но тогда помогала бы простая перезагрузка). не представляют особо как компиляция помогает, если только не какая-то проблема с координатами.
не кликаю мышкой, на уровне винды разбираю окно на компоненты, аналогично парсингу имеется список контролов окна с которыми взаимодействует софтина)
Это если поверхностно, если углубиться то разбирать окно я пытался два года и достиг таки, а вот двигать курсор по экрану програмно это швах, ибо малейшее прикосновение к мыши ломает всю суть
ну, вы пошли явно не простым путем. я бы все таки добавил лог файл и писал туда что происходит, особенно если ошибки в коде глушатся. по крайней мере будет ясно что утилита не повисла.
Ебать вы там извращенцы. Если бы ты был хирургом, то ты гланды через жопу удалял бы?
Ну, нажимать одну кнопку или десять каждую минуту, благодаря этим извращениям время на печать сократилось и продуктивность выросла на 70%> результат однозначный.

Другое дело если бы это для картинки посмотреть было, речь о реально работающем софте всё же, пусть и велосипед пришлось изобретать заново)
Думаю и в остальных случаях примерно та же картина что и у меня/ софт же как правило пишут по необходимости а не от скуки)
Вирусы подлечить?
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Newbie: So which programming language should I learn first?
Programmers: Почему?
Почему?!
^>о->Ьаг() — Почему?



— А, вот почему... Выбираем первый язык программирования
Да
т
У вас есть друзья?

i
Да
Т
Хотите много зарабатывать?
jL
Да
ш
	Вы тупой?	
		
т.		
Т
Вы насмотрелись уроков ХАУДИ ХО?
/Г
Да
7
Python
	Вам		
г~	нравится		1
1	Windows?		
Нет

Fortran
А они вам нужны?
Они тоже	РНР	
тупые?		
Да
т
подробнее»

языки программирования программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор сложный выбор путь в IT it-юмор

Выбираем первый язык программирования Да т У вас есть друзья? i Да Т Хотите много зарабатывать? jL Да ш Вы тупой? т. Т Вы насмотрелись уроков ХАУДИ ХО? /Г Да 7 Python Вам г~ нравится 1 1 Windows? Нет Fortran А они вам нужны? Они тоже РНР тупые? Да т
#23 • 295239698
перепись долбоёбов вкатунов открыта. Когда вы наконец поймете что языки программирования это всего лишь инструмент, каждый заточен под свои задачи, это как обсуждать что круче: молоток или паяльник, более того, половина питоновских фреймворков под капотом написана на других языках.
подробнее»

двач тредшот языки программирования программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор it-юмор

#23 • 295239698 перепись долбоёбов вкатунов открыта. Когда вы наконец поймете что языки программирования это всего лишь инструмент, каждый заточен под свои задачи, это как обсуждать что круче: молоток или паяльник, более того, половина питоновских фреймворков под капотом написана на других языках.