Фонд OpenSSF (Open Source Security Foundation), сформированный организацией Linux Foundation и нацеленный на повышение безопасности открытого ПО, представил открытый проект Package Analysis, развивающий систему анализа наличия вредоносного кода в пакетах. Код проекта написан на языке Go и распространяется под лицензией Apache 2.0. Предварительное сканирование рпозиториев NPM и PyPI при помощи предложенного инструментария позволило выявить более 200 ранее не замеченных вредоносных пакетов...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57123
Смузихлёбство захватило мир IT. Сейчас если ты пишешь свои реализации на стандартной библиотеке с нуля, на тебя будут смотреть как на пришельца.
> Сейчас если ты пишешь кривые тормозные велосипеды на стандартной библиотеке с нуляпоправил, не благодари
>> велосипедыОшибся сайтом, тебе на харбрахарбар с такими загонами. А настоящий инженер и программист ВСЕГДА пишет всё с нуля. Ну а если считаешь, что лучше подтянуть смузиJS-фреймворк на пару десятков мегабайт ради тривиальной задачи, которая решается двумя десятками строчек кода, то тебе не место в IT.
> А настоящий инженер и программист ВСЕГДА пишет всё с нуля.- Операционную систему со всем набором дров.
- ИДЕ, офисный пакет, компиляторы всех языков и все ЯП соответственно. И ещё много-много прикладного софта.
- Свои сетевые протоколы.
Да.
> компиляторы всех языковЗачем - всех?!
Женская логика. Если несколько, значит всегда. Если сейчас нет, значит никогда.
получается они - ситхи?
Достаточно Си. Всё-равно все остальные - надстройки над Си.
Достаточно ассемблера и перфокарт для хранения данных
Забыл добавить: чемодан для хранения перфокарт.
С таким подходом место будет только на помойке. Такие уже нигде нужны... почти
бомжу видней, да
>А настоящий инженер и программист ВСЕГДА пишет всё с нуля.Какой дивный идиотизм. :D Да еще и наплюсовать сам себя умудрился.
> А настоящий инженер и программист ВСЕГДА пишет всё с нуля.libc тоже с нуля писать?
а шо тут такого? мозги кипят, когда начинаешь думать как исполняет код машина?
> а шо тут такого? мозги кипят, когда начинаешь думать как исполняет код машина?Недавно собеседовал парнишку лет 20, он так и не смог объяснить в какой последовательности происходит инициализация, проверка условия и итерация переменной управления циклом for. Об отличии шины данных от шины адреса я спрашивать не стал. Зато могЁт модные фреймворки и шаблоны проектирования :)
В нынешнее время спрашивать про "Об отличии шины данных от шины адреса" от парнишки в 20 лет, думаю не правильно. Ибо комп архитектуру в универах они проходят за пол семестра галопом по "западу". А если самому заниматься этим вопросом, то думаю лет через 5 (усердно) только можно прийти к ЯП высокого уровня и т.д. С другой стороны, ну формально человек знает что есть допустим Фон Неймановская архитектура, и что это ему дает если он не может ее построить с нуля или посмотреть на то, что щас используется (учитывая закрытость разработок всяких там микропроцессоров). На вопрос как это сделано, как работает и т.д. будет всегда формальный ответ, ибо это целая наука в которую надо погружаться, исследовать, а для всего этого совственно нужно время и ресурсы.
Фон Неймановская? Ну знать таки стоит при заявах на NodeMCU, Micropython и прочем подвозе JS и переписывании на Rust под Cortex M0.
>Ну знать таки стоит при заявах напредметную область в любом случае надо знать, а так знания ЯП нужны только для хелловорлдов.
> А настоящий инженер и программист ВСЕГДА пишет всё с нуля.Ну а если нужно по-быстрому решить какую-то задачу, а кто-то это сделал до тебя? Зачем тогда писать с нуля-то? С точки зрения бизнеса, затрат это будет невыгодно
Ответ смузихлеба почему-то удалили, пока я печатал свой ответ ему, так что ещё пару мыслей из того ответа закину сюда.Допустим есть мелкий бизнес, ему нужен сайтик или что-то такое простенькое. Ему нет смысла платить за написание с нуля, у него может даже и времени нет - ему надо сразу результат. И получается, что ни программисту, кто взял такой заказ, нет резона особо заморачиваться, ни бизнесу этому нет смысла требовать чего-то крутого. Склепает, чтоб работало, и будя.
И дело тут не в жадности, сверхприбылях или принципах
Вот я хочу сделать ванну - я могу ее отлить из металла с нуля, а могу купить в магазине и собрать всю обвязку из деталей. В чём тут нарушение принципов? Так же и в программировании - в простом случае просто собираем из готовых кусков. В критически важном - там да, с нуля вплоть до операционных систем своих. Принципы принципами, но надо ж соизмерять размер усилий и требуемый результат на выходе. И почем зря не переусердствовать - чтобы потом, когда реально понадобятся силы - их было
Вы путаете производство ванн произвольной формы и свойств (кислото/температуро стойких и т.п.) и конечным продуктом для потребителя (ванной для индивидуальных гигиенических потребностей).
Это как изготовить программу для управления данными и ей пользоваться: при никто же не отрицает, что сойдёт и Access с самыми примитивными подходами, но каждый понимает и накладываемые ограничения.
Поэтому давайте откажемся от магии и будем понимать и брат ответственность за результаты своего труда
> А настоящий инженер и программист ВСЕГДА пишет всё с нуля.Сам же написал, что на стандартной библиотеке, а теперь уже с нуля.
Путаешься в показаниях xD
Потому что под прикрытием оглашенной идеи снижения энергопотребления и выбросов CO по умолчанию происходит наоборот. Всё завязывается на фреймворки крупных копрораций - без одобрения которых даже СПО и прочая "свобода" не взлетит. Завязнув на электрон уже не получится без гугла и мелкософта. Завязнув на реакт уже никуда без ФБ. Я бы в гугле не смог работать, т.к. детский садик с печеньками, как остров дураков мне не по душе даже за те деньги. И это называется "развитие". И "свободными" умами вебманков ведут в централизованным облака, даже закрывая глаза на т.н. потепление серверов и рабочих станций и перерасход земных ресурсов (в западной экономике вебманк - тоже ресурс).
Хорошо, но тогда пиши лучше, чем есть готовое. Иначе ты в лучшем случае теряешь время, а в худшем - обманываешь своего работодателя.
С нуля как раз и пишут для того, чтобы проект занимал меньше места, не тянул лишнего хлама в виде библиотек, и как следствие, намного более высокая скорость из-за отсутствия надстроек и прослоек. Вот только в прошлом месяце переписал с нуля весь бэкенд одного проекта, написанного кем-то до меня на фреймворке. Размер с 40 Мбайт уменьшился до 2 Мбайт, нагрузка на сервер НА ПОРЯДКИ судя по тестам. Оптимизировал всё что только можно через дебагер. Использовал исключительно стандартную библиотеку nodejs.
А что саму node.js с нуля не написал, чего мелочиться-то?
> Оптимизировал всё что только можно через дебагер. Использовал исключительно стандартную библиотеку nodejs.
> Смузихлёб
Ты не смузихлеб
> не тянул лишнего хлама в виде библиотекНеужели никогда не бывает, что в библиотеке только нужные вещи, написанные одним из наилучших способов? Ту же libc ж вы не переписываете каждый раз. Так почему бы и тут не набрать кодовую базу проверенных решений, и из нее потом, как из конструктора, быстро собирать решение задачи?
В каком-нибудь фреймворке десятки или сотни различных классов и методов, едва ли 1% из них будет использоваться в проекте, остальные 99% лишь утежелят кодовую базу. И не факт что реализация нужного класса будет оптимальна для конкретного проекта. К тому же каждый фреймворк требует немало времени на изучение, порой в разы быстрее написать на стандартной библиотеке, чем ежегодно следовать веяниям моды. Сегодня моден react, завтра какой-нибудь vue, послезавтра что-то другое.
Изучения-то требует, но если фреймворк хорош, то он в разы ускоряет написание типовых вещей. А это нынче часто и нужно. Малому бизнесу зачастую не нужно сильно оригинальную сильно оптимизированную систему, нужно типовую и побыстрее.
на сумузилебство вообще-то гнать не надо
Я сишный гофер выжимаю сок из пырея
Быстро, качественно, дёшево - выбирай любые два.Быстро и качественно? - Дорого.
Быстро и дёшево? - Некачественно.
Качественно и дёшево? - Медленно.
> Смузихлёбство захватило мир IT. Сейчас если ты пишешь свои реализации на стандартной библиотеке с нуляОшибаетесь, они не дебилы, это специально сделано.
Видимо, чтобы каждый год стимулировать хомячков покупать новое железо? :) Ведь сейчас даже топовый i9 долбится в сотку при прогрузке некоторых вэбсайтов нашпигованных смузиJS-библиотеками и фреймворками.
Что мешает отключит JS?
То что некоторые сайты без JS не просто ничего не показывают кроме пустого экрана, но и даже в source view ты не видишь ничего кроме инклюда скрипта, т.е. там скрипт всю страницу формирует.
И вот долбись с ними как хочешь.
Бывает, до смешного доходит: этот скрипт делает всего лишь редирект куда-то...
> Что мешает отключит JS?Невозможность открыть большинство страниц написанных на смузиJS-фреймворках.
И что плохого в стимулировании производства нового железа? Старческие причитания, что при советской власти на 64кб в космос летали, не в счет.
Если бы программы писали инженеры, а не смузихлёбы, даже в 2022 году какого-нибудь Core 2 Duo хватало за глаза для сёрфинга интернета, игр и десктопных приложений. Что такое оптимизация и дебагер 99% современных "разработчиков" знать не знают.
Невыгодно просто платить за человеко-часы, когда можно производить просто железо получше и не париться. Расходы оптимизируются таким образом, как это ни странно
Зато очень выгодно придумывать новые уровни абстракций, надстроек, прослоек, усложняя ради усложнения. И повод хороший – развести бизнес на бабло, раздув бюджет, показав насколько всё сУрьёзно и сложнА. И не дай Бог кто-то узнает, что типовой одностраничник можно запилить без аджайла 😏
> Невыгодно просто платить за человеко-часы, когда можно производить просто железо получше и не париться. Расходы оптимизируются таким образом, как это ни странноВот сидел какой-то юзер 20 лет назад на втором пне, 128 метрах памяти, под NT2000, в опесе 97 кнопками клацал, и в нетскейп навигаторе инеты серфил. Сегодня ровно тот же юзер сидит на i9, в 32 гигах оперативы, в опесе 365 жмет те же самые кнопки и в едже минимум на 100 мбитах инет серфит. Что характерно для юзера этого с "прогрессом" ровно ничего не поменялось, кроме появившейся и пропавшей в опесе скрепочки. И даже быстрее работать все это не стало чем 20 лет обратно.
При таком подходе прогресса нет. Есть рубление бабла на решении проблем которые вручную же и создаются.
Прогресса как бы не существует, прогресс - это миф
вот етот гражданин прав.
один человекочас норм разработчика - это, грубо говоря, 50 долларов. а 50 долларов - это плашка оперативы на 8 гигабайт.
итого вместо того, чтобы платить разработчику за пять часов оптимизирования говнокода, дешевле купить в офисный сервер четыре плашки (+32 гб) оперативы и на оставшиеся 50 долларов нанять студента/индуса, пусть лабает доброкод.
Тут ещё стоит заметить, что плашка эта стоит дёшево только если ее огромным тиражом производить. Именно поэтому индустрия выглядит как будто бы обязывающей к обновлению всего и вся - дело в том, что она просто банально не может производить немного - чтобы окупалось, нужно произвести (и продать, соответственно) именно что много
Удивительно как много людей пищущих на языках у которых "1" + 1 дает 11, а typeof NaN == "number" и подключающих кучу библиотек и фреймверков ради типовых операций считают себя программистами. Никакие вы не программисты, вам только смузи пить в барбершопе.
> typeof NaN == "number"А что должно быть?! Стринг, что ли? NaN - самое натуральное число, которое принято считать NaN-ом. Как и бесконечности.
> NaN - самое натуральное числоВместо уроков от гуру Ютуба, надо бы изучить матчасть, почитать умные книжки, лишь потом пить смузи и писать чушь в комментариях.
> надо бы изучить матчастьВот и изучи IEEE 754, прежде чем позориться.
Изучи спецификацию инструкций процессора, чтобы узнать математику? Может и космос начать изучать нашим учёным в телескопы ММОРПГ?
Математику и алгоритмы освоить в базе и тогда тех можно запускать в продакшн. Короче - на ВМК МГУ сходить и тогда курьёзы на JS станут больше выдумками, чем реальностью шутки.
Не, ну с 11 все понятно, а что с NaN-то тебе не так? Норм жеж число?!
NaN -само определение говорит - "не число", а флаг (состояние)https://ru.wikipedia.org/wiki/NaN
Ну в других языках этот ваш NaN имеет вполне себе числовой тип float/double
а что такое тип? это же фиксированный размер битов, а флагу без разницы какого он будет размера, хотите с размером флоат, хотите в один бит как ZF, OF, CF и т.д.
> а флагу без разницы какого он будет размера, хотите с размером флоат, хотите в один бит как ZF, OF, CF и т.д.Что ты мелешь?! Какой "один бит"? Ты формат float-а посмотри для начала, в котором NaN хранится. NaN-ом будет, например, 1.5*2^128
выше ссылку давал, если с русским туговато, вот по англ
Ну как бы NaN определен стандартом IEEE 754 для чисел с плавающей точкой, это особое состояние. Вообще какую-то софистику развели насчёт этого NaN, число он, не число он. Какой тип по вашему у него должен быть?В конце концов, есть же у ссылочных типов значение NULL. Хотя вроде оно никуда не указывает. Но тип ссылочный. Вот так и NaN, не определяет никакого действительного числа, но тип float/double
> Какой тип по вашему у него должен быть?а какое отношение тип имеет к числу? тип всего лишь трактовка в битах и их количестве. И флаг это тупо трактовка. допустим для вас 0000000 как число это ноль, для меня это 0000000 = 2^7 в полной позиционной двоичной системе, где нет места числу (не числу) ноль и числу единица.
> В конце концов, есть же у ссылочных типов значение NULL.
но как этот NULL представляется в машине? 000000000 - NULL адрес, а все остальное реальный указатель адреса, и т.д. Можно за NULL взять любое другое значения, все зависит от представления.
> Хотя вроде оно никуда не указывает. Но тип ссылочный.
А что значить никуда не указывает? то есть не значим? а значимость чего либо определять? как можно работать с тем чего нет (формально нет)?
> Вот так и NaN, не определяет никакого действительного числа, но тип float/double
я не отрицаю что у NaN не тип флоат (а при делении одного числа на другое, какой тип должен быть?), то есть он такого же размера в битах, как и любое вещественное число, но это не число, это состояние "не числа". А что это за понятие (состояние) "не числа", когда оно возникает и т.д.? Все это описано в стандарте и математике. И опять таки, это состояние можно было бы представить и одним битом как в случае с OF, CF, ZF и т.д. флагами
> но как этот NULL представляется в машине? 000000000 - NULL адрес, а все остальное реальный указатель адреса, и т.д. Можно за NULL взять любое другое значения, все зависит от представления.С NaN аналогично же. Условились, что NaN - это все единички в показателе и не ноль в мантиссе.
>> Хотя вроде оно никуда не указывает. Но тип ссылочный.
>А что значить никуда не указывает? то есть не значим? а значимость чего либо определять? как можно работать с тем чего нет (формально нет)?NULL формально не указывает ни какие валидные данные. Его нельзя разыменовывать, будет UB. При этом он считается значением ссылочного типа. Так же дело обстоит и с NaN
> но это не число, это состояние "не числа"
Типы с плавающей точкой float/double - они да, чуть больше чем числа, они могут иметь значением какое-то число, бесконечность или NaN. Ветка начиналась с того, что в JS типом NaN выдаётся number - но тут опять же выходит, что number - это название типа данных, аналогичного float/double, соответственно включает и NaN. Можно придираться, что NaN - не число, но только фактически-то что с того? Отдельный тип данных под NaN городить? Или назвать числовой тип не number?
Вообще, я тут вспомнил, собственно-то и сами по себе значения float/double "чисельные" - они по понятным причинам действительными числами строго не являются. Числовые типы в программировании с математическим действительным числом далеко не полностью соотносятся
> С NaN аналогично же. Условились, что NaN - это все единички в
> показателе и не ноль в мантиссе.сомнений в этом нет, если принято за стандарт.
> При этом он считается значением ссылочного типа. Так же дело
> обстоит и с NaNА вот тут собственно ошибка рассуждения, поясню щас. Не правильно говорить "Он считается", нужно говорить "Он определяется типом". Опять таки, машина ничего не знает о типах, типами оперирует формальный язык. 32-мя машинными битами можно представить любой тип в формальном языке. Формальный язык решает где и как использовать то или иное определение одного и того же (по длине) набора конечной последовательности битов. С точки зрения теории типов (иерархии) - "не ссылка" (NULL address), то же "не число" (NaN) и т.д. в формальном языке должны быть определены собственными типами (по моему мнению, можете не согласиться).
> Ветка начиналась
> с того, что в JS типом NaN выдаётся number - но
> тут опять же выходит, что number - это название типа данных,Нет, не с этого началась ветка, мои "претензии" были к коменту товарища Пох
"Не, ну с 11 все понятно, а что с NaN-то тебе не так? Норм жеж число?!"
и касалось вот этой его части "Норм жеж число?!", то есть как я понял NaN это оказалось число. На что я в ответ написал определение самого NaN, что это состояние "не число", то есть последовательность битов которая считается "не числом".
Далее в коменте ниже написали такое:
"Ну в других языках этот ваш NaN имеет вполне себе числовой тип float/double"
Тут собственно вопрос, а какое имеет отношение формальный "тип" к состоянию "не число"? И аргументировал, что это состояние ничем не отличается от понятия флага, и это состояние можно было бы выразить (определить, точнее представить) любым количеством битов. Отсюда получается такая картина:
"Норм жеж число?!", "имеет вполне себе числовой тип float/double"И получается, что NaN оказывается число, потому-что у него числовой тип float/double. Верно ли это утверждение?
> Можно придираться, что NaN - не число, но только фактически-то что с того?Хмммм, NaN и есть по определению "не число", вы с этим не согласны? А то, что NaN представлен в формальном языке одним из допустимых числовых значений типа float/double, не говорит о том, что это есть число в прямом смысле слова, то есть применить к нему арифметику и т.д. Все в машине представляется числами, повторю те же 32 бита представляйте как хотите, применяйте любые действия над ними, потому-что в ней нет формальных типов, есть только длины последовательностей.
> Отдельный тип данных
> под NaN городить? Или назвать числовой тип не number?выше я по этому поводу написал, по моему мнение, в формальном языке да для таких случаев должен быть конкретно определен свой тип. Но не настаиваю, надо обратиться к Б. Расселу, я склоняюсь к тому, что он согласился бы со мной.
> Вообще, я тут вспомнил, собственно-то и сами по себе значения float/double "чисельные"
так все, если на то пошло - "чисельное" :) (смешное слово)
> Числовые типы в программировании с математическим действительным числом далеко не полностью соотносятся
надо просто понять, что есть тип.
Любители смузи просто не в состоянии понять что такое флаг и что такое тип данных. На курсах "full stack программистов за 2 месяца" об этом не рассказывают
Ну так к любителям смузи это и адресуйте
Ты даже не удосужился прочитать свою педовикию.
давай передай в качестве аргументов сумматору "число NaN" и 1.
И будет ответ "число NaN", согласно стандарту IEEE 754
> И будет ответ "число NaN", согласно стандарту IEEE 754ну и вопрос почему будет NaN, это разве результат вычисления ? почему не бесконечность с переполнением?
> ну и вопрос почему будет NaN, это разве результат вычисления ? почему не бесконечность с переполнением?Потому что так в стандарте написано
В C и C++ NAN это float.
Как и в Java:public static final float NaN
https://docs.oracle.com/en/java/javase/11/docs/api/java.base...Но хелловорлдщикам-критиканам об этом не известно.
что будет если попытаться отсортировать массив флоатов, содержащий Nan в жаве? в плюсах видимо UB?
а ты почитай, как работают, например, FCOM*
UB в смысле Си не будет, комп не взорвется, но сравнение NaNов действительно ведет себя необычно. Но как бы NaN даже самому себе не равен, такой вот он особенный
Ты не можешь выучить простое правило приведения типов в языке, и считаешь себя программистом?
Попробуй память прокачать - ну, стишки какие-нибудь поучить.
На практике JS часто лучше чем Java, C#, Go, Rust, хотя бы за счет лучшей поддержки многозадачности (не смотря на свою однопоточную природу)), кидайте камни сюда -
https://betterprogramming.pub/modern-languages-suck-ad21cbc8...
И что не так с приведентем типов у скриптового языка для браузера? Все логично.
Или предпочел бы сыпать ошибками на каждых чих?
Это бейсик для форм, а не управление космическим кораблем.
"1"+ 1 так то 6
Ну вообще то 5. 6 - это "11"
А если в ASCII то 50
> Удивительно как много людей пищущих на языках у которых "1" + 1 дает 11, а typeof NaN == "number" и подключающих кучу библиотек и фреймверков ради типовых операций считают себя программистами.По подключению библиотек согласен. Часто это очень избыточно.
А вот то что в каждом языке есть правила приведения типов и неявное преобразование и свой набор операций,
тут то что удивительного? Выучи и используй.Нужны были такие правила создателям языка для решения каких-то задач - так и сделали.
Могли и приоритеты операций какие-то свои сделать
А сколько фондов уже развелось, не пересчитать. Ждёмс когда начнутся битвы фондов.
А ведь я говорил!
Что случилось? Почему перестал?
Да я уже про эти бэкдоры не первый день говорю. И только сейчас у них руки дошли, а сколько еще бэкдоров осталось...
Очередные подпорки вместо решения проблем. Репозиторий без мейнтейнеров всегда будет кишеть вирусами, троянами, кодом исследователей безопасности и прочей нечестью. И ничего ты с этим не сделаешь.Сколько репозиториев у дистрибутивов линукса? Море. А сколько проблем с вирусами в них? Я что-то не припомню.
Парни, не ипитесь с жабаскриптерами, вам нечего в этой жизни делить.
Вангую за ту же судьбу в Снэпах с Флэтпэками. Пакетная база без доказанного авторитета сообщества даёт кавардак: кто угодно приходил, никем не просмотренное оставил.
В snap есть подтверждение аккаунта. Но например у jetbrain и Mozilla подтвержденный, а у telegram нет.
Проверил сейчас с помощью timeit.timeit() на 3 питоне, что быстрее работает с одинаковой строкой: html.escape() из стандартной библиотеки или markupsafe.escape() который советуется в туториале по flask, который я читаю. Первый оказался стабильно быстрее.
Не знаю, почему. но мне грустносмешно и я немножко смеюсь. )
Во имя Отца и Сына и Святаго Духа.
Коллегам топящим за "все с нуля": Windows XP - 150 ТЫСЯЧ ЧЕЛОВЕКО-ЛЕТ работы.
Иначе: если не объединяться то можно до гроба СВОЮ - самую "лучшую" best from the best, toppest, world elite best итд ДО ГРОБА кодить.
Яндексите среднню продолжительность жизни и помните - молодость оканчивается а за не смерть и мытарства.
Сколько можно за этими коробками сидеть -сходите что ли в спортзал, на парад, в храм -свечку поставьте.
Очнитесь, коллеги -скоро 9 мая а о том что происходит в Малороссии вам надо рассказывать?
свечки это дело конечно при сидячем образе жизни. но лучше б ты топил за пожертвование кирюхиной какарды на красные флажки, тогда бы и народ подтянулся.
Он - монах - все это в могилу не потянет.
Темнейшему тоже советуешь продать мерс и ехать на запорожце?Это же просто смешно.
Я сам работал свечником в монастыре - свечки делал.
Хотел бы вылить грязи -вылил бы (знаю больше твоего намного -но из РПЦ не ушел и не уйду). На хорошее надо смотреть а не в чужом грязном белье ковыряться..