Кто лучший программист (все еще ), человек или машина?
Полное исследование можно почитать по ссылке.
Ниже перевод вступления
Генерация кода с помощью LLM (вместо написания кода с нуля) резко выросла в популярности. Однако последствия для безопасности такого кода остаются неизвестными.
Мы провели исследование, сравнив безопасность и качество кода, написанного людьми, с кодом, сгенерированным LLM, на широком наборе задач: структуры данных, алгоритмы, криптографические процедуры и задачи уровня LeetCode.
• Для оценки безопасности использовались модульные тесты, fuzzing и статический анализ.
• Для оценки качества учитывались сложность и размер кода.
Результаты:
• LLM может генерировать некорректный код, который не реализует требуемый функционал, особенно на сложных задачах. Ошибки могут быть тонкими.
Пример: реализация алгоритма SHA1 компилировалась, но была неверной.
• Даже если функциональность верная, код от LLM часто менее безопасен: отсутствуют защитные конструкции (defensive programming), что приводит к уязвимостям (переполнение буфера, переполнение целых чисел).
• Fuzzing показал, что код от LLM чаще подвержен зависаниям и крашам, чем написанный человеком.
• По качеству: LLM генерирует «скелетный» код без защитных конструкций, при этом более сложный на строку кода, чем человеческий.
Попытка улучшить:
Мы создали цикл обратной связи: просили LLM повторно сгенерировать код и устранить найденные проблемы (например, malloc overflow, выход за границы массива, null dereference).
Результат:
• Иногда LLM устраняет уязвимость,
• но часто появляются новые проблемы,
• а также были случаи, когда в изначально корректный код после доработки LLM вносил ошибки.
Полное исследование можно почитать по ссылке.
Ниже перевод вступления
Генерация кода с помощью LLM (вместо написания кода с нуля) резко выросла в популярности. Однако последствия для безопасности такого кода остаются неизвестными.
Мы провели исследование, сравнив безопасность и качество кода, написанного людьми, с кодом, сгенерированным LLM, на широком наборе задач: структуры данных, алгоритмы, криптографические процедуры и задачи уровня LeetCode.
• Для оценки безопасности использовались модульные тесты, fuzzing и статический анализ.
• Для оценки качества учитывались сложность и размер кода.
Результаты:
• LLM может генерировать некорректный код, который не реализует требуемый функционал, особенно на сложных задачах. Ошибки могут быть тонкими.
Пример: реализация алгоритма SHA1 компилировалась, но была неверной.
• Даже если функциональность верная, код от LLM часто менее безопасен: отсутствуют защитные конструкции (defensive programming), что приводит к уязвимостям (переполнение буфера, переполнение целых чисел).
• Fuzzing показал, что код от LLM чаще подвержен зависаниям и крашам, чем написанный человеком.
• По качеству: LLM генерирует «скелетный» код без защитных конструкций, при этом более сложный на строку кода, чем человеческий.
Попытка улучшить:
Мы создали цикл обратной связи: просили LLM повторно сгенерировать код и устранить найденные проблемы (например, malloc overflow, выход за границы массива, null dereference).
Результат:
• Иногда LLM устраняет уязвимость,
• но часто появляются новые проблемы,
• а также были случаи, когда в изначально корректный код после доработки LLM вносил ошибки.
arXiv.org
Artificial-Intelligence Generated Code Considered Harmful: A Road...
Generating code via a LLM (rather than writing code from scratch), has exploded in popularity. However, the security implications of LLM-generated code are still unknown. We performed a study that...
🔥7👍2
Сводка апдейтов.
Сходил на конфу от amoCRM, про свой бизнес и выход из найма. Было полезно с точки зрения вдохновения и мотивации.
Из тех кого я знаю выступали Гарик Мартиросян, и Асафьев Стас.
Все спикеры были интересными, очень понравились истории основателей барбер-шопов Top Gun, и сети кофеен Baggins Coffee.
Ну а я тем временем дооформляю ИП. Как закончу - начну снова брать учеников.
Работал в разных форматах, бессрочное наставничество с разовой оплатой. Наставничество с оплатой по месяцам. Даже курс получилось запилить.
Больше всего понравился вариант с работой на результат без привязки к срокам. Попробую еще раз собрать команду мечты из 3-5 учеников и снова повторить такой кейс. ИП поможет с оформлением рассрочки как одним из вариантов оплаты.
23 Октября буду выступать на дне карьеры в ИТМО, от своей текущей работы. Мне повезло учиться в ИТМО 7 лет, быть дважды отчисленным и один раз даже закончить. Поэтому для меня это важное знаковое событие. Буду рассказывать ребятам за которыми охотятся Яндекс, ВК, и прочие крупные РФ игроки, как фиксил багулю.
Сам рассказ мне надо будет придумать. С одной стороны это типа круто. С другой стороны очко жим-жим. Это мое первое публичное выступление.
Ну и фоном работаю. Вписался в одну задачу, которую «было бы неплохо закончить в этом году», - как говорит аналитик) посмотрим, мне нравится такой горизонт планирования. Не без косяков, конечно, но пока вроде справляюсь.
Сори за такую сборную солянку. Веду блог стихийно.
Сходил на конфу от amoCRM, про свой бизнес и выход из найма. Было полезно с точки зрения вдохновения и мотивации.
Из тех кого я знаю выступали Гарик Мартиросян, и Асафьев Стас.
Все спикеры были интересными, очень понравились истории основателей барбер-шопов Top Gun, и сети кофеен Baggins Coffee.
Ну а я тем временем дооформляю ИП. Как закончу - начну снова брать учеников.
Работал в разных форматах, бессрочное наставничество с разовой оплатой. Наставничество с оплатой по месяцам. Даже курс получилось запилить.
Больше всего понравился вариант с работой на результат без привязки к срокам. Попробую еще раз собрать команду мечты из 3-5 учеников и снова повторить такой кейс. ИП поможет с оформлением рассрочки как одним из вариантов оплаты.
23 Октября буду выступать на дне карьеры в ИТМО, от своей текущей работы. Мне повезло учиться в ИТМО 7 лет, быть дважды отчисленным и один раз даже закончить. Поэтому для меня это важное знаковое событие. Буду рассказывать ребятам за которыми охотятся Яндекс, ВК, и прочие крупные РФ игроки, как фиксил багулю.
Сам рассказ мне надо будет придумать. С одной стороны это типа круто. С другой стороны очко жим-жим. Это мое первое публичное выступление.
Ну и фоном работаю. Вписался в одну задачу, которую «было бы неплохо закончить в этом году», - как говорит аналитик) посмотрим, мне нравится такой горизонт планирования. Не без косяков, конечно, но пока вроде справляюсь.
Сори за такую сборную солянку. Веду блог стихийно.
🔥11👍3😎3❤2🤩1
Вчера выступал на дне карьеры в ИТМО 🎓
Для меня это значимое событие. Я сам учился в ИТМО, был дважды отчислен 😅. Но умудрился таки и диплом получить)
Рассказывал о том как расследовал баги и о том, как в принципе работается в финтехе.
Был первый опыт публичного выступления. Понервничал, но вроде все прошло хорошо. Студентам было интересно, насколько я могу судить.
Блин, щас студенты такие крутые. Я в свое время не знал что такое git, а некоторые из них уже в Яндексе работали 💪
Для меня это значимое событие. Я сам учился в ИТМО, был дважды отчислен 😅. Но умудрился таки и диплом получить)
Рассказывал о том как расследовал баги и о том, как в принципе работается в финтехе.
Был первый опыт публичного выступления. Понервничал, но вроде все прошло хорошо. Студентам было интересно, насколько я могу судить.
Блин, щас студенты такие крутые. Я в свое время не знал что такое git, а некоторые из них уже в Яндексе работали 💪
❤12🔥5👍4👏1😎1
Полтора года назад я запускал курс.
Посмотрите как круто получилось у одного из тех, кто его проходил:
https://caffe.senioravanti.ru/
Здесь реализовано в разы больше, чем я давал на курсе, тем не менее хочется поделиться отзывом:
Привет, брал у тебя курс 1,5 года назад, и только пару дней назад довёл проект до ума.
Хочу выразить благодарность за то, что помог найти интересную тему для петпроекта.
(захостил - ссылка в начале поста)
Делал как курсовой проект для предмета "разработка информационной системы" в ВУЗе. Все зубы об него обломал.
По другому предмету будет ещё и мобильное приложение для этой системы.
Стек пришлось несколько раз поменять.
Итоговый стек:
Бэк: Spring Java, Kotlin, GraphQL, jOOQ, PostgreSQL, MongoDB -> 3 микросервиса (сервис продуктов, авторизации и взаимодействия с s3).
Фронт: Vue.js TypeScript .
Конец.
Имхо вышло огонь! 👍
PS Надеюсь у меня в итоге тоже получится «довести до ума», свою менторскую деятельность, и я снова начну «причинять пользу» другим 🥲
Посмотрите как круто получилось у одного из тех, кто его проходил:
https://caffe.senioravanti.ru/
Здесь реализовано в разы больше, чем я давал на курсе, тем не менее хочется поделиться отзывом:
Привет, брал у тебя курс 1,5 года назад, и только пару дней назад довёл проект до ума.
Хочу выразить благодарность за то, что помог найти интересную тему для петпроекта.
(захостил - ссылка в начале поста)
Делал как курсовой проект для предмета "разработка информационной системы" в ВУЗе. Все зубы об него обломал.
По другому предмету будет ещё и мобильное приложение для этой системы.
Стек пришлось несколько раз поменять.
Итоговый стек:
Бэк: Spring Java, Kotlin, GraphQL, jOOQ, PostgreSQL, MongoDB -> 3 микросервиса (сервис продуктов, авторизации и взаимодействия с s3).
Фронт: Vue.js TypeScript .
Конец.
Имхо вышло огонь! 👍
PS Надеюсь у меня в итоге тоже получится «довести до ума», свою менторскую деятельность, и я снова начну «причинять пользу» другим 🥲
❤7👍6🔥5😱1
Теперь у меня есть copilot)
А тем временем идет четвертая неделя работы без выходных.
Надо заканчивать настолько любить программирование. Кажется до добра это не доведет 😅
Но по крайней мере последние выходные мне оплатят в двойном размере, что в целом приятненько.
Кажется виден свет в конце тоннеля, но тоннель что-то не заканчивается 🤪
Надо бы конечно сделать пост про Java….
Ненавижу Java 🥹
Directed by Robert B. Weide
Кстати, а ты знал, что мем с титрами Directed by Robert B. Weide взят из сериала «Умерь свой энтузиазм»?
Узнал только что, пока гуглил как эта херня пишется. Совпадение? Не думаю
А как у тебя дела? Расскажи че-нибудь, пажалуста 🥹
А тем временем идет четвертая неделя работы без выходных.
Надо заканчивать настолько любить программирование. Кажется до добра это не доведет 😅
Но по крайней мере последние выходные мне оплатят в двойном размере, что в целом приятненько.
Кажется виден свет в конце тоннеля, но тоннель что-то не заканчивается 🤪
Надо бы конечно сделать пост про Java….
Ненавижу Java 🥹
Directed by Robert B. Weide
Кстати, а ты знал, что мем с титрами Directed by Robert B. Weide взят из сериала «Умерь свой энтузиазм»?
Узнал только что, пока гуглил как эта херня пишется. Совпадение? Не думаю
А как у тебя дела? Расскажи че-нибудь, пажалуста 🥹
❤5🤓3👾3😁1
Media is too big
VIEW IN TELEGRAM
Вы помните разговоры с уточкой?
Все это, херня, как говорил мой школьный друг.
Вместо того, что-бы говорить с уточкой, гораздо лучше с кавказским акцентом проговаривать свои действия 😎
В этом случае никто не подумает, что вы поехали кукухой, так как для этого разговаривать с игрушкой не нужно.
А бонусом вы прокачаете свой нейролингвистический кортекс (чтобы это ни значило )
Я начал с балкарского, потому что это однозначно +20 к внимательности.
Все это, херня, как говорил мой школьный друг.
Вместо того, что-бы говорить с уточкой, гораздо лучше с кавказским акцентом проговаривать свои действия 😎
В этом случае никто не подумает, что вы поехали кукухой, так как для этого разговаривать с игрушкой не нужно.
А бонусом вы прокачаете свой нейролингвистический кортекс (
Я начал с балкарского, потому что это однозначно +20 к внимательности.
❤5🔥2🥴2🌚1🤣1🗿1🙉1😎1
Мой Пет-Проект. Вайбкодинг. Смотреть на YouTube
Снял видео про свой пет-проект и про то, как последние пару дней занимаюсь вайб-кодингом.
👉 Видео:
https://youtu.be/ymq7SEh0EL4
👉 Сам проект:
https://notedesk.ru
В этом видео рассказываю:
💎 о своём проекте на React;
💎 как можно использовать Cursor / Codex в разработке;
💎 как я собрал простой CI/CD пайплайн;
💎 как деплою проект на VPS.
Как деплой выглядел раньше:
после изменений в коде я:
👎 делал git push;
👎 заходил на сервер по SSH;
👎 выполнял git pull;
👎 останавливал контейнеры;
👎 пересобирал контейнеры;
👎 поднимал их заново.
Как деплой выглядит сейчас:
👍 я просто делаю git push в ветку main, и через 5 минут изменения долетают на прод.
Если тебе интересно, могу отдельно подробнее рассказать про инфраструктуру и выбранный подход.
Буду очень благодарен, если ты:
Зайдёшь на
https://notedesk.ru
попробуешь проект, потыкаешься и дашь обратную связь — есть ли смысл продолжать им заниматься.
DISCLAIMER: Проект не адаптирован под мобильные устройства 😔
Приятного просмотра и спасибо, если посмотришь / потыкаешь / напишешь фидбек 🙏
Снял видео про свой пет-проект и про то, как последние пару дней занимаюсь вайб-кодингом.
👉 Видео:
https://youtu.be/ymq7SEh0EL4
👉 Сам проект:
https://notedesk.ru
В этом видео рассказываю:
Как деплой выглядел раньше:
после изменений в коде я:
👎 делал git push;
👎 заходил на сервер по SSH;
👎 выполнял git pull;
👎 останавливал контейнеры;
👎 пересобирал контейнеры;
👎 поднимал их заново.
Как деплой выглядит сейчас:
👍 я просто делаю git push в ветку main, и через 5 минут изменения долетают на прод.
Если тебе интересно, могу отдельно подробнее рассказать про инфраструктуру и выбранный подход.
Буду очень благодарен, если ты:
Зайдёшь на
https://notedesk.ru
попробуешь проект, потыкаешься и дашь обратную связь — есть ли смысл продолжать им заниматься.
DISCLAIMER: Проект не адаптирован под мобильные устройства 😔
Приятного просмотра и спасибо, если посмотришь / потыкаешь / напишешь фидбек 🙏
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Мой Пет-Проект. Вайб-кодинг. Cursor. Codex. СI/CD пайплайн. Деплой на VPS
Telegram: https://news.1rj.ru/str/+HTd2UpOAjWYzNzZi
В этом видео рассказываю о своем проекте на React
О том:
Как кодить на Cursor
Как использовать Codex
Как создать CI/CD пайплайн
Как деплоить на VPS
В этом видео рассказываю о своем проекте на React
О том:
Как кодить на Cursor
Как использовать Codex
Как создать CI/CD пайплайн
Как деплоить на VPS
🔥8👍4👏2❤1🤩1