Web Overflow 🇺🇦
4.01K subscribers
417 photos
42 videos
3 files
544 links
Затишний блог про веб-розробку і не тільки 💛

Чат: @web_overflow_chat
Співпраця: @web_overflow_support
Автори: @lluchkaa & @anastasiia_tarasenko
Download Telegram
Media is too big
VIEW IN TELEGRAM
direnv 📂

Зараз на робочому проєкті я трохи працюю з репозиторієм на Python. Для розробки потрібно також встановити кілька утиліт, бібліотеку для PostgreSQL та AWS CLI. Я дуже не хотів встановлювати усе це глобально на своєму комп'ютері, тому вирішив використовувати direnv.

Як це працює? В папці додаємо .envrc, в якому прописуємо команди, наприклад, use flake - щоб встановити пакети і налаштувати середовище, або layout python - щоб автоматично використовувати .venv.

Тому, як видно на відео, коли я в папці direnv-python - маю доступ до aws, ruff, а Python використовується з .venv; а коли в папці direnv-db - є доступ до psql.
1👍4🔥41
Axios compromised 🫪

31 березня на npm закинули скомпрометовані версії axios (1.14.1 та 0.30.4), які встановлюють на вашу систему (Mac/Linux/Windows) троян, що дає віддалений доступ до вашого комп'ютера.

Схема доволі цікава: спочатку закинули "поганий" plain-crypto-js пакет, в якому в postinstall був запуск трояна. Після цього сліди дуже гарно замітались - програма маскувалась під кеш, а запускалась як демон (daemon).

До чого тут axios? Від імені одного з основних мейнтейнерів axios хакери опублікували нові версії, в яких як одну з залежностей додали plain-crypto-js.

Безпечні версії: axios@1.14.0 та axios@0.30.3.

👉 Читати більше

Тому, в такий час, акуратніше з оновленнями, фіксуйте версії залежностей, позбувайтесь залежностей і не комітьте .env.

#news
👍10🤯6🎉1
Claude Code source maps 🧭

Про те, що вихідний код Claude Code злили, ви вже точно чули. І, ймовірно, бачили, що злили саме source maps.

Тож що це таке, як вони працюють і як саме з їх допомогою вдалося отримати вихідний код?

Ділимось постом з LinkedIn, де автор доступно відповідає на всі ці питання:

👉 Відкрити посилання
👍6🔥21😁1
Переписування Neovim config 🤓

Нещодавно вийшла версія Neovim 0.12, і я вирішив повністю оновити свій конфіг за допомогою Claude Code. У результаті - доволі непогано: вдалося багато чого оновити й позбутися зайвих налаштувань. Хоча, чесно кажучи, було чимало "перекидувань" туди-сюди, коли Claude пропонував вигадані зміни (або то я просто криворуко пишу промпти).

Що хотів би відзначити:

1. AI стає лінивішим (як уже казали @yu_dev01 і @vova_taras). Часто він "не дуже" хотів щось робити, бо це нібито неважливо - доводилося кілька разів просити перевірити реліз-доки й поправити код.
2. AI - це інструмент, яким потрібно вміти користуватися і вміти налаштувати так, щоб отримати бажаний результат.
3. Ми втрачаємо радість від роботи з кодом (про що казав @MatiGreen).
4. Натомість зростає цінність інших навичок: вміти перевіряти те, що робить AI, проектувати рішення і дизайн систем - ось що точно буде потрібно в списку скілів.

Далі планую:
- додати АІ конфіги та скіли в репозиторій;
- додати хуки зі звуком/нотифікаціями, коли потрібне моє підтвердження.

Якщо цікаво, всі конфіги можна глянути тут:

👉 Відкрити посилання
1👍7🔥2🎉1
Open source AI tools 🤖

Вміти ефективно використовувати ШІ зараз - один з core-скілів.

Ділимося з вами відео від Fireship, в якому представлено 7 open source інструментів, які можуть покращити ваше використання AI.

З цікавого: інструмент для тестування ваших промптів, передбачувач майбутнього та оптимізатор контексту.

👉 Відкрити посилання

А ще, всім смачної паски та ковбаски! 💛
👍95🔥1
Христос Воскрес! 🐣

Вітаємо вас зі святом! Нехай Господь оберігає ваші родини, дарує сили, спокій і світло!
26👍2🤯1🎉1💅1
Caveman 🙊

Чого тільки не придумають розробники, щоб зекономити токени. Виявляється, якщо навчити AI говорити як печерна людина, можна витиснути лише суть і замість стіни тексту отримати значно коротшу відповідь.

В середньому на 65% менше токенів = реальні гроші. Розумний хід.
Нижче: GitHub репо скіла + відео ThePrimeagen.

👉 Відкрити посилання
👉 Дивитись короткий огляд
👍9🔥5🤯31
Claude Code notifications 📣

Як я і казав, я спробував додати (навайбкодити) хуки для Claude Code, щоб отримувати сповіщення.

Як стартову точку використав уже існуючі напрацювання звідси (no offense, але автор - huy).

Отже, як кидати сповіщення на macOS? Один із популярних варіантів - terminal-notifier, але я вирішив використати alerter, оскільки він активніше підтримується.

Далі все доволі просто: у скрипті перевіряєте, в якому застосунку запущений Claude Code, і відправляєте сповіщення від його імені. Там ще можуть виникати нюанси через міграцію Apple на нову систему сповіщень, але, якщо чесно, я не сильно вичитував це.

Для VS Code також варто дивитися на workspace folder, бо якщо у вас відкрито кілька вікон, логічно перейти саме в те, де чекає Claude.

Оскільки я ще використовую tmux, довелося додати трохи гавнокоду, щоб автоматично відкривати потрібну панель.

Якщо цікаво - додаю посилання на свій конфіг нижче:

👉 Відкрити посилання
2👍62😁1
This media is not supported in your browser
VIEW IN TELEGRAM
😁11🔥10👍3🎉1
LSP + AI 🔌

Що таке LSP? Це стандарт, за яким клієнт (зазвичай редактор коду, а тепер і AI) взаємодіє з “мовним сервером”.

А що таке мовний сервер? Це окремий невеликий сервіс, який розуміє код (зазвичай конкретну мову) і знає, як із ним працювати.

Чому це круто? Якщо ви створите свою мову C++ Pro Max (назва під авторським правом!!), розробникам VS Code, Neovim, JetBrains тощо не потрібно буде додавати її підтримку. Замість цього ви пишете власний сервер, який через LSP допомагає редактору:
• находити визначення функцій;
• показувати всі їх виклики;
• знаходити статичні помилки;
• перейменовувати змінні, та інше.

Виглядає це приблизно так:

Редактор > Мовний сервер: де визначена функція X (файл X.cpp, рядок 4, символ 12)?
Мовний сервер > Редактор: у файлі ABC.cpp, з (рядок 130, символ 0) до (рядок 142, символ 1).

👉 Читати більше

Тепер про AI-агентів.

Коли AI читає код проєкту, він бачить лише текст. Без LSP йому доводиться здогадуватися: де визначена функція, які в неї параметри, чи існує вона взагалі.

Наприклад, щоб знайти визначення функції, AI робить пошук по імені в усьому проєкті й серед збігів намагається знайти імплементацію. І це ще простий випадок. А якщо функція перейменована через імпорт? Так, AI впорається - але витратить значно більше токенів.

З LSP агент отримує:
• точні визначення символів і типів;
• список усіх використань функції (корисно для рефакторингу);
• діагностику в реальному часі (помилки та попередження);
• семантичний пошук замість grep.

На практиці різниця особливо помітна у великих репозиторіях. Коли контекст і так великий, AI може "ходити" по коду осмислено, а не просто читати все підряд.

Ми вже підключили LSP для JS/TS та Python. Конфігурації в більшості провайдерів дуже схожі, тому ділимося посиланням на GitHub Copilot.

👉 Відкрити посилання
1👍10🔥21
Знову AI 🤖

Сьогодні хочемо поділитися двома відео, які подивилися на вихідних. Обидва про AI, але з різних ракурсів.

Matt Pocock виступив на конференції, де показав, чому фундаментальні знання та принципи розробки залишаються важливими, а також пояснив, чому код часто стає гіршим після обробки AI. Також, він розповів, як намагається вирішити ці проблеми за допомогою скілів.

👉 Дивитись відео

ThePrimeagen розповідає, що зараз відбувається з економікою AI, чому ціни у більшості провайдерів зростають і чому Google поки почувається найстабільніше на AI-ринку.

👉 Дивитись відео
1👍5😁42
Gym Notification 🏋

Відразу хочу зазначити - я не гей!

Ми ходимо в спортзал Smartass. Формат тут - групові заняття у визначений час для обмеженої кількості людей. Останнім часом стало доволі важко встигати записуватись на тренування, які нам подобаються та підходять по часу, місця розбирають дуже швидко. Як правило, нові заняття додають у п’ятницю в рандомний час (думаю це роблять вручну).

Тож що я зробив? Навайбкодив простий скрапер сайту, який перевіряє, чи вже з’явилися заняття на наступний тиждень. Заодно вирішив спробувати захостити все на своєму Raspberry Pi і використати Temporal.

У Kubernetes окремо підняв Temporal Server - "мозок" системи, який оркеструє всі workflow. Окремий сервіс (той самий скрапер) підключається до сервера, реєструє workflow, який потрібно виконувати, а далі вже запускається по команді від Temporal.
Я вже трохи попрацював із Temporal, тому якщо буде цікаво - можу якось окремо розповісти про нього детальніше.

У розкладі додав запуск щохвилини з 9:00 до 21:00 по п’ятницях. Якщо сповіщення ще не відправлялось, сервіс перевіряє поточний розклад на сайті. Якщо заняття з’явились - надсилає повідомлення в Telegram.

Прямо зараз він невпинно виконує свою роботу, тож побажайте йому удачі 🤞

Якщо вам раптом цікаво глянути код, додаю нижче посилання:
👉 Відкрити raspberry
👉 Відкрити smartass-subscriber

👉 Відкрити Temporal
🔥105👍4😁4
Джун: Я там ПР закинув, можеш глянути?

Той самий ПР:
😁25🔥2😢1
Мої останні два дні be like:
😁223