Как стать автором
Обновить
967.45

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

ИИ на Python: кто и зачем передаёт клавиатуру алгоритмам

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров253

Пока одни боятся, что искусственный интеллект отберёт у них работу, другие активно перекладывают на нейросети всё больше своих программных задач. Недавние исследования показывают, кто именно использует генеративный ИИ для написания кода и насколько это выгодно в реальности.

Учёные из Университета Утрехта совместно с Complexity Science Hub решили глубоко разобраться в распространении генеративного ИИ в программировании. Они изучили более 80 миллионов изменений кода на платформе GitHub, сделанных в период с 2018 по 2024 год. Исследователи разработали специальный нейросетевой классификатор, способный отличить код, написанный человеком, от кода, созданного с помощью генеративных алгоритмов.

Выяснилось, что лидерами в этой «гонке автоматизации» стали программисты из Соединённых Штатов. Уже к концу 2024 года более 30% всех Python-функций, написанных разработчиками в США, были результатом работы искусственного интеллекта. Европейские страны, такие как Германия и Франция, также активно следуют этому тренду, достигая показателей в 24,3% и 23,2% соответственно.

Любопытно, что среди стран Азии картина выглядит иначе: если в Индии использование ИИ достигло уровня 21,6%, то в России и Китае показатели значительно ниже — 15,4% и 11,7% соответственно. Эксперты связывают это с различиями в экономических и технологических условиях, а также с возможными регуляторными ограничениями.

Интересным аспектом исследования стало выявление групп, наиболее охотно передающих рутину программирования алгоритмам. Оказалось, что новички, которые недавно начали карьеру на GitHub, особенно склонны использовать нейросети в своей работе — они доверяют ИИ около 41% задач. Опытные программисты более консервативны и чаще предпочитают писать код вручную, полагаясь на алгоритмы лишь в 28% случаев.

Читать далее

Новости

10 лучших расширений VS Code для больших и малых групп, повышающих производительность

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.8K

Если вы проводите большую часть дня в Visual Studio Code (как и я), то вы понимаете, что это больше, чем просто редактор кода. Это ваш настоящий командный центр, не меньше. С правильными расширениями VS Code может стать мощным инструментом, который повысит вашу производительность, обеспечит чистый код и даже сделает отладку (почти) безболезненной. Конечно, сейчас кто-то подумает, ну зачем мне нужны эти расширения? Установите, и вы поймете почему.

Я собрал 10 расширений VS Code, которыми сам пользуюсь, и которые особенно будут полезны для корпоративных разработчиков, работающих над сложными, совместными и масштабными проектами. Независимо от того, сосредоточены ли вы на написании более чистого кода, раннем выявлении ошибок, оптимизации рабочих процессов Git или совместной работе с удаленными коллегами в режиме реального времени, здесь есть что-то, что сделает вашу жизнь кодирования более гладкой и быстрой.

Читать далее

Гайд по совмещению 5 работ: инструкция по самоуничтожению

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.8K

Недавно наткнулся на гайд по двум работам в IT. Я сразу же подумал, а почему только 2 работы? Это же какое-то раздолбайство. Где гайд по 3–4–5 работам? Совсем не хотят работать блогеры. Поэтому я решил написать свой гайд на Хабр.

Читать далее

Создаем свой RAG: от загрузки данных до генерации ответов с LangGraph. Часть 2

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.4K

Привет, Хабр!

Технология RAG (Retrieval-Augmented Generation) сочетает поиск информации с генерацией ответов, делая AI-системы более точными и осмысленными. В этой статье разберём практическую реализацию RAG с помощью LangGraph — гибкого инструмента для построения агентов и графов.

Читать далее

DIY BCI-шлем на Arduino и TinyML: распознаём эмоции силой мысли (ну почти)

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров2.4K

Здесь не рассказывают про гигантские суперкомпьютеры и дорогостоящие коммерческие нейроинтерфейсы. В этой статье показан путь от сырой схемы с электродами на лбу до работающего прототипа BCI-шлема, который на Arduino собирает аналоговые сигналы мозга (точнее, лобных долей) и на прошивке TinyML «решает», довольны вы сейчас или испытываете лёгкое раздражение. Всё это — без Biopack, без OpenBCI, с минимумом затрат (пара десятков долларов), но с максимальным погружением в детали: схемы, код, личные промахи и избыточная доза сарказма.

Увидев в краудфандинговой рекламе новый «мозговой шлем», автор сначала подумал: «Ну, ещё одна штука для прокрастинации». Но когда узнал, что за $100 можно собрать аналогичную систему самому, захотелось испытать на себе: действительно ли Arduino с несколькими электродами и крошечной моделью TinyML «опознают» эмоцию?

Как человек, пробывший инженерный или полубиологический путь (технарь с желанием покопаться в электрическом шуме мозга), автор проверил: да, можно. Хоть и с погрешностями, хотя бы для демонстрации. Впереди — подробная инструкция: какие компоненты взять, как их соединить, куда класть электроды, чтобы не получать случайные сигналы мышечной активности вместо мыслей про кофе, как собрать TinyML-модель, вырезать её под Arduino и запустить «нервный» прогноз вживую. Поехали!

Читать далее

Вкуснолаб, или Как мы писали мобильное приложение. От концепции к результату

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров599

Всем известно, что мобильные приложения люди используют больше и чаще, чем веб-приложения. Они заранее адаптированы дизайном под мобильные устройства (что логично) и заведомо предоставят весь нужный функционал.

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

Читать далее

Попробовал Background agent в Cursor (чтобы сразу 2 агента кодило одновременно)

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров3.4K

Что могу сказать?

— по всей видимости агент работает по коду в репозитории кода, поэтому в нём нужно авторизовать Cursor + отправить туда последние обновления.
— он требует отказаться от privacy, так как всё происходит на серверах Cursor
— в нём можно выбрать только вариант Max (оплата за каждый запрос отдельно, а не из лимита подписки)
— его обновление можно проверить и отправить в репозиторий, локально или локально как git stash

Читать далее

Стрелочные функции JS, быстро, просто и без проблем

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.3K

Содержание:

- Стрелочные функции: argumentshoisting

- Работа с контекстом

- Методы присваивания контекста

- Обработчик событий

Читать далее

Оптимизация запросов в Django. Подробное руководство

Уровень сложностиСложный
Время на прочтение60 мин
Количество просмотров1.9K

Привет, хабр! В данной статье хочу рассказать больше чем обычно про оптимизацию запросов к базе данных в Django. Расскажу о том, как не только запрашивать, но и создавать или обновлять записи в базе. В статье будет много примеров, генерируемый SQL, типы данных, индексы и выводы планировщика запросов.

Данная статья подходит как для начинающих, так и для достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.

Читать далее

Обработка ошибок в Go

Время на прочтение14 мин
Количество просмотров2.6K

Обработка ошибок — это один из самых важных аспектов написания надёжного кода. В Go к этому вопросу подошли нестандартно: вместо традиционного механизма try/catch, как в Java или Python, ошибки просто возвращаются как значения. Изначально это может показаться странным, но на практике этот подход делает обработку ошибок более явной и честной.

В этой статье мы разберёмся с тем, когда стоит использовать panic , какие есть распространённые ошибки при его использовании и как правильно обрабатывать исключительные ситуации в Go.

Читать далее

Меховой Интернет: как появляются ваши любимые книжные обложки

Время на прочтение9 мин
Количество просмотров2.2K

Привет, Хабр!

В предпоследние выходные мая мне традиционно довелось работать на книжном салоне, проходившем в Санкт-Петербурге на Дворцовой площади. Как многие знают, я представляю компьютерную редакцию издательства «БХВ», но внимательные читатели, которые любят рассматривать служебные страницы в хороших книгах, до сих пор могут найти мою фамилию и в нетленке издательства «Питер», в котором я провёл сложный, но незабываемый и формообразующий отрезок жизни.  Мне нравится работать на стендах, так как я вижу моего читателя, а также не без удовольствия наблюдаю за вашими муками выбора, в особенности – выбором книг в подарок. Что касается последней моей вахты, состоявшейся в полуштормовую погоду по ту сторону тента, очень порадовало, что на наш стенд заглянула уважаемая Юлия Воротникова, имя которой очень громко звучит для заядлых участников интеллектуальных игр. И она, и некоторые другие посетители, и в особенности две-три (не помню) милейшие девушки в субботу залюбовались нашим стендом, уставленным книгами, оригиналы которых вышли в издательстве «O’Reilly». Мне не раз пришлось объяснять, каким образом возникла столь необычная идея — иллюстрировать обложки компьютерных книг роскошными изображениями животных. Поэтому я решил вновь пересказать на Хабре эту историю, которую более 12 лет назад уже затрагивал уважаемый @miga. В статье будет много картинок, которые для меня все до единой укладываются во фразу, прочитанную на странице крайне харизматичного человека – уважаемого Виктора Жукова, lead-гитариста выдающейся симфо-метал группы Nimea из Санкт-Петербурга: «... и когда говорят - плагиат, я говорю - традиция!»  

Читать далее

Никто не читает старые статьи… базу, так сказать, основу…

Время на прочтение7 мин
Количество просмотров3.5K

Много авторов так или иначе рассказывают о статьях в ML-сообществе, но большинство из них популярны, потому что являются хорошими опытными специалистами, а значит в своё время прошли все базовые статьи и могут себе позволить рассказывать только о новинках в сообществе. Что же делать молодым специалистам, которые действительно хотят разобраться, но ещё не читали ту самую базу?.. так сказать, основу...

Для себя и, надеюсь, кого-то ещё, я предлагаю эти три разбора, на мой взгляд, основополагающих статей мира ML. Приятного прочтения.

Читать далее

Новая фича в Java 21: Виртуальные потоки: новые возможности для I/O bound микросервисов

Время на прочтение7 мин
Количество просмотров4.4K

Привет, Хабр! Я Иван Попов, ведущий инженер ЦК платформенных и интеграционных решений РСХБ-Интех. Java — мой самый любимый язык программирования, я всю жизнь работал только на нём. Сейчас я работаю в банке и хочу разрушить стереотип  о том, что в банках все работают на Vegas. На java мы очень много работаем, тем более если видим, что новая технология позволяет нам оптимизировать процессы разработки (а количество интеграций огромное). 

Расскажу о новой фиче виртуальных потоков в Java 21, которая призвана повысить эффективность многопоточного кода.  

Читать далее

Ближайшие события

Я сделал поисковик хуже Elasticsearch

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.1K

В этой статье я хочу поделиться своим стыдом, вызванным попыткой создания библиотеки поиска. В этом стыде и вы можете прочувствовать смирение и осознание того, что реальный качественный поисковый движок, а не создаваемый как хобби-проект, должен делаться для того, чтобы лексический поиск был быстрым.

BEIR — это бенчмарки поиска информации, ориентированные на сценарии использования в формате «вопрос-ответ».

Мой хобби-проект SearchArray добавляет в Pandas полнотекстовый поиск. Поэтому естественно, чтобы ощутить трепет от моих потрясающих навыков разработчика, я решил использовать BEIR для сравнения SearchArray с Elasticsearch (с тем же запросом + токенизацией). Поэтому я потратил субботу на интеграцию SearchArray в BEIR и измерение релевантности и производительности с корпусом MSMarco Passage Retrieval (8 миллионов документов).

Барабанная дробь...

Читать далее

От первого коммита до опережения времени: как прошёл сезон Open source на Хабре

Время на прочтение8 мин
Количество просмотров4K

Этой весной, с 8 апреля по 23 мая, Хабр совместно с GitVerse запустил сезон Open source. Идея была простой: предложить IT-сообществу поделиться своими историями работы с открытым кодом. 

За время сезона было опубликовано 80 статей, которые в совокупности набрали около полумиллиона просмотров, 2000 плюсов и 1500 комментариев. Авторы делились опытом — от первых робких коммитов в популярные репозитории до создания собственных проектов, изменивших жизнь тысяч разработчиков. А читатели, в свою очередь, поддерживали, хвалили, критиковали и даже рассказывали, как тот или иной проект изменил их работу или жизнь.

Узнать итоги сезона

Function splitting и чистый код

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров1.9K

Сложная и тяжелая статья с непропорционально простым выводом. Вспомним фон Неймана, затронем процессорный кеш, поговорим про регистры и компиляторы. Тем, кому не хочется погружаться в детали, достаточно прочитать только Введение и Выводы.

Читать далее

Оверинжиниринг в луковичной и гексагональной архитектурах

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров5.3K

Команда Spring АйО перевела статью, которая рассказывает о том, как луковичная и гексагональная архитектура часто используется программистами в неоправданно сложном варианте, взятом из учебника, и как эти архитектурные стили можно упростить, получив от этого существенные преимущества в плане затрат на разработку и поддержку.

Читать далее

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 6. Как добыть нечто

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров807

Концепция этого цикла начиналась с простого переноса тайловых миров на F#. Однако в процессе его описания я основательно растёкся по древу, за счёт чего у нас образовался большой подготовительный этап из пяти глав про языковые фичи и прочую «фундаменталочку». Думаю, что с подготовкой закончено, поэтому сегодня мы обратимся непосредственно к тайловым мирам.

Но начнём мы практически с конца — с адаптации поиска пути. Это несложная задачка, но в процессе её решения мы успеем закрепить пройденный материал и по инерции заскочить в новый.

Читать далее

Рекомендации по Jetpack Compose: от основ к масштабируемым UI

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.1K

Всем привет!

В этой статье мы будем обсуждать, как писать масштабируемые и поддерживаемые интерфейсы на Jetpack Compose: от базовых компонентов до архитектурных практик. Разбираем иерархию, принципы проектирования, naming, порядок параметров и антипаттерны.

Думаю, что статья будет полезна как новичкам, так и опытным разработчикам.

Читать далее

Pet-проект: игра Дебаггер на Python с графическим интерфейсом на Tkinter

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров3.2K

Всем привет! В статье расскажу, как я написал игру Дебаггер на Python и добавил к ней графический интерфейс на Tkinter. Мне хотелось сделать простую игру на IT тематику, поэтому я скопировал игровую механику из игры Сапер и теперь нам нужно отметить все баги на игровом поле или наш код сломается.

Статья может быть интересна начинающим разработчикам для изучения чужого опыта и наработки своего или же опытным программистам, которые просто хотят поиграть в игру, а может даже предложить, как еще улучшить архитектуру проекта.

Нажми, если не боишься багов!