Обновить
4
0

Пользователь

Отправить сообщение

Разбираем новый закон про VPN и «поиск материалов» с технической точки зрения

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели178K

На Хабре уже было несколько публикаций про новые принятые в Госдуме поправки (https://habr.com/ru/news/928638/, https://habr.com/ru/companies/amnezia/articles/928378/, https://habr.com/ru/news/928332/ и т.д.), и там в комментариях звучало много довольно схожих вопросов на тему "а как оно может быть?", на которые я постараюсь сегодня ответить.

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

Читать далее

VS Code: 5 интересных функций и расширений, меняющих подход к разработке

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

Visual Studio Code прочно закрепился как один из самых популярных редакторов кода, и не зря. Его гибкость, производительность и огромная экосистема расширений делают его незаменимым инструментом для миллионов разработчиков. Однако, даже опытные пользователи зачастую не догадываются о некоторых его «скрытых» возможностях, которые могут кардинально изменить привычный рабочий процесс и значительно повысить продуктивность.

В этой статье мы рассмотрим 5 интересных функций и расширений VS Code, без которых, возможно, вы уже не сможете представить свою разработку.

Читать далее

Как я написал покер‑бот за 4 недели, используя Cursor + GPT

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

Мой первый опыт публикации и рассказ о том, как я за четыре недели сделал рабочую MVP покер-бота. В проекте использованы методы Монте-Карло, компьютерное зрение (YOLO), Python и инструменты вроде Cursor и Roboflow.

Текст будет полезен новичкам в машинном обучении и компьютерном зрении, тем, кто хочет понять, как связать ИИ, детекцию объектов и покерную математику в одном проекте, а также тем, кто интересуется практическим применением ИИ для создания собственных инструментов.

Читать далее

Разработка высоконагруженных API: проблемы, решения, практические рекомендации

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели26K

Ваш проект взлетел. Первые пользователи превратились в тысячи. Тысячи стали десятками тысяч. Метрики в дашбордах рисуют красивую кривую, устремленную вверх. Но есть и другие кривые, которые ползут вверх с не меньшей скоростью. Время ответа сервера. Количество ошибок 502 и 504.

То, что летало на ста запросах в секунду, начинает задыхаться на десяти тысячах. Это не ошибка, это физика. Архитектура для этих двух миров — это как велосипед и грузовой поезд. Они оба едут, но задачи у них разные. Так что давайте забудем про теорию и посмотрим, где обычно рвется и как это чинить, чтобы не переписывать все с нуля каждый раз, когда у вас прибавляется нолик в статистике пользователей.

Читать далее

Game-changer-инструменты для разработчиков которые стоит попробовать. [Часть 1/2]

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

Разработка программного обеспечения и DevOps-инфраструктура в сложно представить без мощных open-source-инструментов. Некоторые из них не просто полезны — они меняют подход к автоматизации, деплою, ИИ-интеграции и безопасности. В этой статье собраны действительно сильные и перспективные проекты с открытым кодом: они бесплатны, активно развиваются и способны радикально упростить жизнь разработчика.

Читать далее

Пособие по промпт-инжинирингу для программистов

Уровень сложностиПростой
Время на прочтение38 мин
Охват и читатели20K

Разработчики всё чаще полагаются на ИИ-помощников, чтобы ускорить повседневную работу с кодом. Эти инструменты умеют автозаполнять функции, предлагать исправления ошибок и даже генерировать целые модули или MVP. Тем не менее, как многие из нас убедились, качество вывода ИИ во многом зависит от качества предоставленного запроса. Плохо сформулированный промпт может привести к нерелевантным или общим ответам, в то время как хорошо составленный — дать продуманные, точные и даже креативные решения для кода.

Под катом Эдди Османи, ведущий инженер Google, выделяет ключевые шаблоны запросов, повторяемые фреймворки и запоминающиеся примеры, которые нашли отклик у разработчиков.

Автор приводит параллельные сравнения хороших и плохих промптов, фактические ответы ИИ, а также комментарии: чтобы понять, почему один запрос успешен, а другой терпит неудачу.

Читать далее

Как использовать AI-агент Claude Code: советы опытного разработчика

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

Я больше года использовал Cursor. Подробно изучил все его возможности и лучшие практики работы с инструментами и... отказался от всего этого в пользу Claude Code.

Уже несколько недель я полностью работаю в Claude Code вместо Cursor. И, честно говоря, возвращаться совсем не хочется. В этой статье я расскажу, как использую Claude Code и поделюсь своими советами по его максимальному использованию.

Читать далее

Альтернатива чатам с ИИ для анализа и оптимизации SQL запросов

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

Всем привет!

Экспериментировал с оптимизацией SQL запросов в ChatGPT и Claude. В какой-то момент понял, что это превращается в одно и то же: Напиши промт → вставь SQL → подожди → поправь → повтори

Читать далее

Spring Security

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

Spring Security — это мощный и важный фреймворк в Spring для обеспечения безопасности приложения при помощи аутентификации и авторизации. Основан на цепочке фильтров. Например, в Spring Security 6.5.1 по умолчанию стандартная цепочка фильтров (FilterChainProxy) содержит до 12–16 фильтров, выполняющих различные механизмы проверки. Стоит отметить, что точное количество фильтров зависит от конфигурации.

Читать далее

Вредные советы Java: просто используй Parallel Stream

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

Stream'ы в java явление давно не новое. Старая добрая Java 8 появилась на свет более 10 лет назад. С появлением Stream API жизнь стала проще и веселее. Но есть в Stream API два гадких утёнка: Stream#close и Stream#parallel.

С первым все достаточное просто — если не уверен в источнике откуда берется Stream — то он может быть вполне себе ресурсом и требовать try‑with‑resources (привет java.nio.file.Files#list). Cо вторым куда веселее...

Читать далее

Head Hunters на LinkedIn — они очень хотят, чтобы вы сделали тестовое задание

Время на прочтение13 мин
Охват и читатели32K

Знакомая ситуация? Неизвестный вам контакт пишет на LinkedIn, предлагает работу мечты... Но что‑то вас останавливает, вы уверены, что вас хотят обмануть! В этой статье я расскажу вам о новом способе атаки на разработчиков, под названием OtterCookie.

Читать далее

Что делать вайбкодеру после 07/07

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели70K

Итак, Cursor поменял тарифы.

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

Кто не в курсе - раньше было 500 запросов за $20, что честно и понятно. Потом вдруг стал полный безлимит за $20, а затем Anysphere (разработчики Cursor) резко сказали, что якобы безлимит они давали только на режим авто (а там модель самая дешёвая), а в от на другие модели есть какие-то лимиты, но какие - не уточнили, пока коммьнити не разозлилось. В итоге оказалось, что за те же деньги сейчас можно себе позволит в 1.5-2 раза меньше, при этом появились тарифы за 60 и 200 usd.

Читать далее

От React всё так же веет безумием, но все об этом молчат

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

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

Так что вот она полноценная статья, ещё больше той, из которой она родилась. Здесь я подробно опишу все проблемы React и поясню, почему это может не быть виной разработчиков.

Читать далее

Как я собеседовался в Ozon, Т-Банк, Mindbox и другие крупные компании

Уровень сложностиПростой
Время на прочтение25 мин
Охват и читатели118K

Всем привет. Я сеньор и тимлид на .NET (C#). До недавнего времени работал в Росатоме, пока там внезапно не сократили целую дирекцию по цифровизации. Так что пришлось срочно выходить на рынок, причём, впервые в моей жизни (до этого работа находила меня сама). По результатам нескольких циклов собеседований получился неплохой дневник, который я здесь привожу.

История длинная, но интересная

VPS сервер по цене пачки чипсов: обзор самых дешёвых тарифов российских хостеров

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели28K

Привет, Хабр! Однажды я проводил небольшое тестирование виртуалок различных хостер-провайдеров и сравнивал их между собой — оказывается, с тех пор прошло уже аж пять лет. Ну и в том тестировании условия у всех серверов были одинаковые, т. к. тестировались сходные конфигурации.

Сегодня хотел бы рассказать о том, как себя ведут самые дешёвые (в ценовом диапазоне от 100 до 300 рублей) предложения от популярных хостеров. 

Читать далее

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

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

Хранение денежных сумм в базах данных и API: анализ подходов платежных систем

Хранение денег — вещь только на первый взгляд простая, а на деле содержит множество подводных камней. Выбрав не тот тип данных, можно получить неточности в расчётах, возможна путаница при переводе суммы из одной валюты в другую. А если ещё и подключать внешние API, у каждого из которых своя точность для одних и тех же валют, уследить за совместимостью еще труднее.

Разбираем, как решают эти проблемы Stripe, PayPal, Google Wallet и другие платежные системы. Сравниваем три основных подхода: Integer minor units, Decimal base units и String base units.

Читать далее

Я 10 лет искал причину головной боли, оказалось — чипсы

Время на прочтение4 мин
Охват и читатели30K

Всем привет, хочу поведать свою историю, связанную со здоровьем и самочувствием. Почему Хабр? ну полагаю что она может кому‑то помочь тут, т.к. сам являюсь разработчиком, по 12 часов в день провожу за экраном монитора. Сам образ жизни, и питание наверное как у среднестатистического семейного человека моего возраста (сейчас мне 36).

Примерно в возрасте 25 лет, начали появляться головные боли, возникающие утром, после пробуждения. Иногда это была мигрень с боку, иногда вся голова как свинцом налита. Иногда как таковой боли не было, но было некоторое неприятное ощущение, её напоминающее, которое уже в течение дня могло перерасти в полноценную головную боль, а могло пройти само собой. Писать код в таком состоянии, и тем более закрывать срочный баги, тот ещё квест. Это состояние — просто изводит, очень сложно сконцентрироваться на выполнении задач. А однажды довольно сильный приступ головной боли застал меня прямо в самолете, да так, что мне пришлось обратиться с стюардессе за таблетками.

Когда понял, что проблема не случайность а повторяется пару раз в месяц, решил обратиться к врачу. Обследование не выявило каких‑то значимых аномалий и был поставлен диагноз — гипертония 1й степени (легкая). В моменты головной боли врач прописал принимать Андипал (к слову спасибо ему за это, эта штука отлично купирует приступы головной боли, но побочно вызывает сонливость, что всё‑же лучше состояния, когда болит голова).

Раз гипертония, то почему головная боль не является постоянным состоянием для меня. Я знаю некоторых гипертоников они все гораздо старше меня и регулярно принимают лекарства, но в моём случае головная боль возникает достаточно непредсказуемо и не регулярно, один, два раза в месяц.

Читать далее

Vue Teleport: как работает

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

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

Сегодня разберём один из недооценённых, но крайне полезных инструментов во Vue 3 — <Teleport>. Это встроенный механизм, который позволяет рендерить часть шаблона вне текущего DOM‑контекста. Он нужен при реализации модалок, тултипов и других компонентов, которые должны «выпрыгивать» из дерева компонентов, но при этом сохранять реактивность, фокус и доступность. Без этих костылей, z-index: 9999 и appendChild.

Читать далее

Зачем нам так много клавиш

Уровень сложностиСредний
Время на прочтение31 мин
Охват и читатели5.5K

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

Читать далее

Фишки Cursor — как сделать работу с ним дешевле и эффективнее?

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

Многие используют Cursor, не зная, на что он на самом деле способен. Будем идти от простого к сложному.

1. Самое простое, что позволит улучшить работы с Cursor — это использовать Cursor Rules

Что это даёт?

- Cursor лучше кодит, делает это по вашим правилам.
- Можно настраивать разные правила для разных файлов/директорий.
По сути это дополнение к системному промпту, где вы делаете тонкую настройку один раз.

Документация здесь.
А тут отличные заготовки для правил

2. Включайте сразу несколько ИИ-агентов

В Cursor можно открыть 3 вкладки, где параллельно будут работать 3 ИИ-агента (это максимум). Единственное что - контролируйте, чтобы они они не использовали дни и те же файлы — могут перезаписать или удалить результаты работы другого агента, так что им нужно давать изолированные задачи.

Дополнительно можно ещё использовать фонового агента, который работает на серверах Cursor, и будет выполнять задание на основании вашего кода в репозитории. А потом все его результаты можно отправить в репозиторий или локально, однако он работает за дополнительную плату (Price-based)

Можно даже открыть второй Cursor, и запустить работу ещё там (особенно если работа ведётся с кардинально разными репозиториями), но это не очень удобно с точки зрения переключения между ними.

3. Кладите связанные репозитории в 1 папку и открывайте её в Cursor

Допустим, у вас есть бэкенд, фронтенд и ещё микросервис для управления подписками. Если вы поместите их в 1 папку и откроете её в Cursor, то он сможет ходить между ними и делать согласованный код. Допустим, он может сразу сделать контроллеры на бэкенде и api для них на фронтенде.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность