Как стать автором
Поиск
Написать публикацию
Обновить
976.79

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

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

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

Парсинг на Java. От основ до парсинга Яндекс Карт

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

Сегодня я рассмотрю основы парсинга на Java, используя как пример Яндекс Карты.

В этой статье мы рассмотрим, что такое HTTP и какие бывают методы запроса, как работать с HttpClient в Java 11+, как отправлять GET и POST-запросы, как обрабатывать HTTP-ответы и извлекать данные, и как всё это можно использовать для парсинга данных с внешнего сервера на примере Яндекс Карт.

Читать далее

Социотехника против технологий: как я расследовал поддельные сервисы одного российского IT-гиганта

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

IT-гиганты и мошенники — две руки одного источника? Человеческий фактор превращает доверие в уязвимость.

Читать далее

Визуализатор сборок в режиме реального времени

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

Под катом – анимация, демонстрирующая сборку приложения для macOS в режиме реального времени:

Я расскажу, как она получилась, но для начала обрисую контекст этого проекта.

Компиляция конкретного софта может быть очень длительной просто потому, что в этой программе очень много кода — как, например, в проекте LLVM. Но бывает и так, что сборка идёт медленно по глупым и вполне устранимым причинам. Подозреваю, что большинство сборок просто тормозят из-за ерунды, но проверить это мне пока не удавалось. Поэтому я разработал кроссплатформенный инструмент для визуализации сборок (пока он существует в приватной бета-версии, ссылка в конце статьи). Он работает с любой системой сборки и с любым языком программирования (а не только C/C++/Rust).

Читать далее

Свой родной GUI для yt-dlp на Electron и React

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

Нет ничего лучше, чем сделать что‑то своими руками. Особенно, когда этим смогут пользоваться другие люди.

POKE — это графический интерфейс (GUI) для скачивания видео с youtube на базе yt‑dlp.

POKE

Категории типов. Часть 2. Функторы

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

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

Фокус заключается в том, что...

Программисты против вайбкодеров

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

Я заметил, что вокруг новых AI-инструментов для кодинга (типа Cursor AI, ChatGPT, Claude) идёт жаркая дискуссия. Классические программисты порой скептически смотрят на тех, кто активно пользуется генеративным ИИ вместо ручного кодирования. Некоторые считают таких «вайбкодеров» мешком софта без понимания: мол, они просто копипастят то, что выдаёт ИИ. Попробую разобраться в этом лично: ведь для многих из нас эти инструменты открывают новые возможности.

Читать далее

GIMP Script-Fu ООП. Встраиваем векторы в систему классов Фигур и все Фигуры в язык Функциональной геометрии

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

Библиотека функций к Script-fu

В предыдущей статье мы рассмотрели имеющиеся в GIMP возможности векторной графики. Здесь мы рассмотрим как эти возможности использовать при построении графических примитивов — Фигур. Для построения абстракций фигур мы уже написали несколько классов: Фигуры рисуемых по контуру Кистью и Карандашом, Фигур заполняемых определённым цветом, Комбинированных Фигур, Фигур использующих Изображения и Фигур использующих Текст. Здесь я продемонстрирую, как легко и непринуждённо мы можем встроить новые абстракции в существующую иерархию классов. А заодно рассмотрим как вся эта иерархия классов может использоваться в языке функциональной геометрии, рассмотренном в предыдущем цикле статей.

Читать далее

Свой LLM-агент на Typescript с использованием MCP

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

В публикации поделюсь подробной инструкцией по разработке и запуску своего ИИ‑агента на Typescript с использованием MCP, который будет извлекать и выполнять команды, сказанные обычными словами и сможет опрашивать необходимую информацию через диалог с пользователем.

Читать далее

Flutter 3.35 — Что нового во Flutter?

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

Добро пожаловать в ежеквартальный релиз Flutter 3.35! Это обновление призвано повысить вашу продуктивность и включает в себя стабильную версию горячей перезагрузки с сохранением состояния в веб-версии и экспериментальный запуск предпросмотра виджетов! Благодаря усилиям нашего сообщества, Flutter 3.35 включает в себя 1108 коммитов от 168 уникальных участников, 39 из которых присоединились к нам впервые. Давайте узнаем, что нового!

Читать далее

Как правильно вызывать CUDA

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

Вероятно, вам уже попадались подобные руководства по CUDA: хрестоматийный пример «Hello World», в котором перемешан код для ЦП и графического процессора. Всё это сложено в один гетерогенный файл с исходниками на CUDA C++, а для запуска ядра применяется синтаксис NVCC с тройными угловыми скобками <<<>>>, который уже стал культовым:

Читать далее

Кем вы себя видите через 5 лет?

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

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

Читать далее

С монолита на микросервисы: проблемы, решения, практические рекомендации

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

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

Микросервисы обещают решение. Гибкость. Масштабируемость. Независимые команды. Быстрые релизы. Звучит идеально. Но дорога к этой цели усеяна ловушками. Я видел проекты, которые провалились, потратив миллионы. Они просто поменяли один большой клубок проблем на десятки маленьких.

Читать далее

Хватит тестировать на «кошках»! Разворачиваем циничный API на FastAPI за 5 минут для реальных AQA-задач

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

Привет, Хабр! Меня зовут Ваня, и я AQA-инженер. Как и многие из вас, я занимаюсь обучением будущих покорителей Postman и Pytest. И, как многие из вас, я столкнулся с проблемой: все существующие тестовые API — невыносимо скучные.

Todo-листы, интернет-магазины с товарами Item 1, Item 2, API для управления книгами... Серьезно? После пятого GET /todos начинаешь сомневаться не только в своей карьере, но и в смысле бытия. Данные в них стерильны, как операционная, а сценарии предсказуемы, как сюжет российского сериала.

Моим ученикам было скучно. Мне было скучно. Я понял, что нужен свой API. С блэкджеком и... ну, вы поняли. С API, который будет не просто функциональным, но и забавным. Который захочется «потыкать» просто ради того, чтобы увидеть очередной перл в ответе сервера.

Так родился «Cynical Circle API» — API для тех, кто понял жизнь и устал от ванильных примеров.

(Так выглядит наша интерактивная документация. Уже интригует, не правда ли?)

Читать далее

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

20 частых антипаттернов в React и как их исправить: кратко, понятно, без мифов

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

20 частых антипаттернов в React и как их исправить. Разбираем ошибки с хуками, состоянием, мемоизацией и структурой компонентов: когда не нужен useEffect, зачем useCallback, почему не хранить производные значения в state. Минимальные примеры, чёткие принципы, практичные альтернативы.

Читать далее

История одного выгорания

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

Когда‑то у меня была мечта. Влететь в новую профессию, стать разработчиком, перейти на удаленку, работать мозгами. Я получала задачу, и не понимала, как к ней подступиться. Искала решение, натыкалась на ошибки, и рано или поздно, шаг за шагом выходила на нужный результат. Чувствовала удовлетворение, от того что «смогла». Чувствовала, что расту и развиваюсь. Задачи усложнялись, проекты усложнялись. Получала новую задачу, где ничего непонятно, скатывалась в неуверенность в себе. Разбиралась с ней, и взлетала вверх. Как американские гонки, только вместо рельсов — самооценка, вместо поезда — синдром самозванца. Но всегда был кайф. Чем сложнее вначале, тем сильнее кайф от успеха в конце.

Когда‑то мне хотелось показать, как много и быстро я успеваю делать. Сравнивала себя с коллегами. Понимала, что работаю нисколько не хуже. Иногда делаю таски быстрее. Знаю ответы на вопросы. Испытывала особый трепет, когда после отчета о проделанной работе слышала от начальника что‑то в духе «уже сделала? как быстро!»

Когда‑то мне хотелось роста в знаниях и зарплате. Я ходила на конференции, изучала новые технологии, чтобы показать, что хочу развиваться. Мои желания заметили: получила перевод на другой проект. Получила запись в трудовой о том, что уже не младший разработчик, а разработчик. Увеличение зарплаты было таким смешным, что даже не покрывало инфляцию. Считай, его не было. Но я говорила себе, что работаю на перспективу и рано или поздно всё будет. Когда я почувствую, что заслужила больше денег, я попрошу об этом.

Читать далее

net/netip в Go 1.25

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

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

Go ценят за предсказуемость и простые решения в стандартной библиотеке, а в сервисах чаще всего упираемся в IP, разбор host:port, CIDR и сериализацию. Сегодня это удобно закрывается стандартным net/netip: компактные value-типы, корректный парсинг адресов и портов, работа с зонами, проверка принадлежности сетям и быстрые операции без лишних аллокаций. В статье рассмотрим этот пакет подробнее.

Читать далее

Кто убил интеллект? Расследование деградации ChatGPT, Claude, Gemini и других LLM

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

Всем привет! Недавно я вновь сменил свою основную LLM-модель. Долгое время пользовался Claude, потом перешел на ChatGPT, затем на Gemini, и вот я опять оплатил Claude и снова отменил подписку. Почему? Потому что Gemini, который поначалу казался невероятно мощным, в какой-то момент просто перестал справляться с моими основными задачами, а до этого так же сделал Claude и ChatGPT. Они стали лениться, игнорировать части промпта и выдавать поверхностные ответы.

Читать далее

Про IT в 2025 году

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

Сегодня хочу поделиться своим видением текущей ситуации в ИТ. О ней только ленивый сейчас не говорит, вставлю и я свои 5 копеек. Пишу изнутри (в ИТ с 2003 года) — это добавит контекст к моим наблюдениям.

Если вы работаете в ИТ или думаете туда пойти (а может, даже отдать туда своих детей), в этой статье разберём, что сейчас происходит на рынке, и как это отразится на зарплатах, требованиях и шансах устроиться на работу.

Будет про раздутые зарплаты, про качество работы, про гордость за факапы, про фейковые резюме, про техническую поддержку и про смузи, конечно.

Дальше — больше

Мошенники на LinkedIn

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

На LinkedIn мне, как, думаю, и многим из вас, часто пишут. Чаще всего, это бывают либо рекрутеры низшего уровня, которые особо не вдаются в детали моей специализации и спамят просто "на удачу". Либо, это те, кто пытается предложить мне услуги, которые, ха-ха, я и сам предоставляю (всяческое R&D).

Первым делом, эти ребята, конечно, просят добавить их в контакты. Чаще всего, я на это никак не реагирую, чтобы не тратить время. Но иногда, я захожу глянуть профиль, особенно, если указано, что это, возможно, мой настоящий коллега-разработчик или какой-то иной живой человек. В этот раз, мне написал некий Гильермо, из Бразилии. В профиле написано - DevOps, а девопсов я уважаю, поэтому и жамкнул на "добавить в контакты".

Что было дальше

Топ AI-моделей для генерации кода: Claude, ChatGPT, Qwen — сравниваем гигантов

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

Когда машины пишут лучше нас — звучит как сюжет научной фантастики, но уже сегодня нейросети стали реальностью миллионов кодеров по всему миру. Сегодня мы не просто учим алгоритмы понимать код, а доверяем им писать его за нас.

Всё чаще ИИ даёт советы, которые оказываются лучше, чем изначальная задумка. Claude, ChatGPT, Qwen — эти модели уже не просто угадывают следующее слово, а демонстрируют понимание логики, стиля и даже контекста проекта. Они объясняют свои решения, исправляют баги, пишут тесты и даже помогают новичкам (и не только) разобраться в чужом коде.

Но кто из них действительно выигрывает в скорости, точности и глубине понимания? Кто понимает код от и до, а кто путается уже в середине? И главное — можно ли доверять коду, написанному нейросетью? 

Пора разобраться. Сравниваем трёх гигантов современного AI-программирования: Claude от Anthropic, ChatGPT от OpenAI и Qwen от Alibaba Cloud — в реальных сценариях, которые знакомы каждому разработчику.  

Приятного прочтения!  

Читать далее

Вклад авторов