Дефекты безопасности в фреймворке глубокого обучения PyTorch Lightning
В популярном фреймворке глубокого обучения PyTorch Lightning обнаружены многочисленные критические недостатки безопасности.

Недавно компания Microsoft решила переписать цепочку инструментов TypeScript, используя язык Go. Это вызвало бурную реакцию, поскольку люди задаются вопросом, почему Microsoft выбрала язык Go, а не свой собственный C# или даже TypeScript. Я должен сказать, что это любопытный выбор. Возникшая дискуссия на тему «мой язык лучше, чем ваш» возвращает меня в прошлое.
В 1970-х годах я учился писать на BASIC. В BASIC были номера строк, и я помню, как слышал о новомодном языке под названием Pascal, в котором не было номеров строк, и удивлялся, как такое возможно. Как вы узнаете, где находится GOTO?
По некоторой иронии судьбы именно Паскаль - сначала в виде Turbo Pascal, а затем в виде Delphi- - положил начало моей карьере разработчика программного обеспечения. Я начал программировать как хобби, но мне это так понравилось, что я отказался от сладкой пенсии в ВМФ, чтобы стать профессиональным разработчиком. У меня это неплохо получалось. Я писал книги и блоги и в конце концов стал менеджером по продуктам для Delphi.
«Выбирайте правильный инструмент для работы» никогда не удовлетворит приверженцев, которые считают, что их инструмент - это правильный инструмент для любой работы.
Одно из прозвищ Delphi до его выхода (помимо самого названия Delphi) было VBK-Visual Basic Killer. В то время большинство программ разрабатывалось под Windows, а VB был очень популярен среди Windows-разработчиков, которым нравился визуальный подход к разработке и то, что VB не был C++.
Естественно, название «VB Killer» вызвало гнев разработчиков, которые использовали и любили VB. Мы, новички - фанбои Delphi - с удовольствием заходили на форумы VB и рассказывали им, как Delphi собирается убить VB. Неудивительно, что фанаты VB с негодованием восприняли эту идею, и языковые войны начались.
Она стала уродливой. Мы бросались личными оскорблениями и спорили до тошноты о том, почему выбранный нами язык лучше. Я помню, как очень, очень сильно переживал из-за этого. Это было личное по причинам, которые казались отчаянно важными. Естественно, это кажется довольно глупым, когда я оглядываюсь на это, будучи (надеюсь) более мудрым и зрелым человеком.
Интересно, что это были два инструмента, за которые приходилось платить. В наши дни языки программирования и большинство базовых инструментов бесплатны. В 1990-е годы нам всем приходилось покупать инструменты разработки, и я думаю, что это подстегнуло нас к тому, чтобы быть гораздо более защищенными в своем выборе.
Забавно оглядываться назад и думать, что выбор языка для написания кода был так ужасно важен. Я вижу, как подобные споры происходят и сегодня: люди, использующие JavaScript, обижаются на людей, использующих TypeScript, а люди, использующие Rust, морщат нос от C++.
В конце концов я понял, что это бесконечные споры. Системы, языки и фреймворки настолько сложны, и существует так много аргументов в их пользу, что дискуссия никогда не будет завершена, и окончательный «правильный ответ» никогда не будет получен. Просто выбирайте тот язык, который вам нравится, который работает на вас и который вы можете использовать для выполнения работы.
Повсюду есть команды, добивающиеся успеха на Java, C#, JavaScript, TypeScript, Pascal, C++, Rust, Python... Я могу продолжать очень долго. Так что, похоже, нет ничего плохого в том, чтобы сделать выбор. Думаю, если бы вы попытались создать веб-приложение на GW-BASIC, вы бы столкнулись с некоторыми препятствиями. Но в наши дни существует огромное количество способов создания веб-приложений, и все они работают. Все они имеют сильные стороны и ограничения, все они сведут вас с ума, и все они подарят вам моменты прекрасного дзен, когда вы осознаете их элегантность.
Другими словами, нет неправильного ответа, есть только правильные ответы, и спорить по этому поводу, в общем, глупо. Просто делайте то, что подходит именно вам, и не лезьте на доски объявлений «другой команды».
Если быть честным, есть и неправильные ответы. GW-BASIC, вероятно, не лучший выбор для многого сегодня, и я подозреваю, что крупное предприятие не собирается делать ставку на какой-нибудь начинающий фреймворк, использующий Perl. Но есть любое количество очевидных правильных ответов - маститые языки с огромными и богатыми экосистемами, - и вы не можете ошибиться, выбрав один из них.
Языковые войны неизбежно заканчиваются тем, что люди говорят: «Выбирайте правильный инструмент для работы». Конечно, это никогда не удовлетворит тех приверженцев, которые считают, что их инструмент подходит для любой работы. И «Выбирайте правильный инструмент для работы» действительно звучит немного банально, потому что зачем кому-то выбирать неправильный инструмент для работы? Но в конечном счете это хороший совет.
Я не знаю, почему Microsoft выбрала Go для переписывания TypeScript. Но я знаю следующее: Если Microsoft посчитала, что это лучший инструмент для работы, я не собираюсь спорить с ними или с кем-либо еще по этому поводу.
В популярном фреймворке глубокого обучения PyTorch Lightning обнаружены многочисленные критические недостатки безопасности.
Официальный Microsoft Azure SDK для Rust - это набор библиотек, которые немного облегчают жизнь разработчикам Rust при доступе к различным сервисам Azure.
Вышла версия Django 5.2, в которой добавлена поддержка составных первичных ключей, а также автоматический импорт всех моделей в оболочку по умолчанию.