Разбираем вчерашние задачки
В первой правильный вариант:
В этой задаче есть 3 момента:
1 - значения по умолчанию вычисляются в момент выполнения def и живут всю жизнь ф-ии. Одни на все вызовы. Это важный момент!
2 - При изменении lst внутри ф-ии по сути изменяется общий lst.
3 - 2 вызова ф-ии возвращают ссылки на один и тот же список и только потом вместе принтятся, отсюда и 2 одинаковых результата.
Во второй правильный ответ:
Тут ключевое - ленивое вычисление, список заполняется лямбда-функциями, но они не выполняются сразу, выполняются в строке принта, когда n=10, поэтому вызов любой лямбды из списка даст ответ 100.
В первой правильный вариант:
[3, 4] [3, 4]
В этой задаче есть 3 момента:
1 - значения по умолчанию вычисляются в момент выполнения def и живут всю жизнь ф-ии. Одни на все вызовы. Это важный момент!
2 - При изменении lst внутри ф-ии по сути изменяется общий lst.
3 - 2 вызова ф-ии возвращают ссылки на один и тот же список и только потом вместе принтятся, отсюда и 2 одинаковых результата.
Во второй правильный ответ:
100
Тут ключевое - ленивое вычисление, список заполняется лямбда-функциями, но они не выполняются сразу, выполняются в строке принта, когда n=10, поэтому вызов любой лямбды из списка даст ответ 100.
❤7🔥1
Что бы ещё изучить с помощью /teach?
Опыт с RAG вышел достаточно успешным, так что хочется затестить teach ещё на чём-нибудь.
Набралось пять вариантов, выбираю из них.
Первое - кубер. Пока представление общее, но может понадобиться под проектную работу.
Второе - глубокий курс по базам. Пройти всё, что реально встречается и в работе, и на собесах. Это на случай, если пойду искать работу.
Третье - английский. Я уже рассказал, как это могло бы выглядеть - интерфейс, задания под свой вокабуляр, урок на 15 минут. Но тут скорее всего надо будет допиливать скилл или добавлять свой контекст по заданиям, не уверен, что из коробки получу то, что хочу, благо в процессе можно вносить корректировки в формат обучения.
Четвёртое - готовка. Курс под мои бжу и под то, насколько еда вообще должна быть полезной.
Пятое - французский. Это чисто по фану и скорее всего уже после того, как налажу английский.
Ну и склоняюсь я к куберу)
Так как уроки рендерятся в html, подумываю над тем, чтобы выкладывать их через github pages. Кому такое интересно - отпишитесь, затестим вместе)
Опыт с RAG вышел достаточно успешным, так что хочется затестить teach ещё на чём-нибудь.
Набралось пять вариантов, выбираю из них.
Первое - кубер. Пока представление общее, но может понадобиться под проектную работу.
Второе - глубокий курс по базам. Пройти всё, что реально встречается и в работе, и на собесах. Это на случай, если пойду искать работу.
Третье - английский. Я уже рассказал, как это могло бы выглядеть - интерфейс, задания под свой вокабуляр, урок на 15 минут. Но тут скорее всего надо будет допиливать скилл или добавлять свой контекст по заданиям, не уверен, что из коробки получу то, что хочу, благо в процессе можно вносить корректировки в формат обучения.
Четвёртое - готовка. Курс под мои бжу и под то, насколько еда вообще должна быть полезной.
Пятое - французский. Это чисто по фану и скорее всего уже после того, как налажу английский.
Ну и склоняюсь я к куберу)
Так как уроки рендерятся в html, подумываю над тем, чтобы выкладывать их через github pages. Кому такое интересно - отпишитесь, затестим вместе)
🔥5❤3
Чем я пользуюсь сейчас?
Судя по моим постам, может показаться, что я всё ещё сижу в курсоре.
Курсор никуда не делся, но роль у него теперь другая - и про то, как так вышло, стоит рассказать.
Началось с того, что я стал регулярно вылезать за лимиты. Причём формула работы у меня к тому моменту была уже нормальная - то есть дело было не в кривых руках, а в объёме.
Внутри курсора я и так сидел на моделях Codex, они выходили дешевле Sonnet, а добивал уже композером. Отдельно Codex я при этом не гонял ни разу.
Так что вопрос стоял простой: какую подписку покупать. Свелось к двум - ChatGPT и Claude Code.
Выбирал я конечно долго, как новый ноут или спортивные часы)
Требований изначально было два: чтобы можно было запускать что-то по шедулеру и чтобы можно было самому дёрнуть нейронку из консоли.
Дальше пошёл список помельче: какие модели чаще блокируют запросы, где нужен VPN, а где нет, инфраструктура, качество голосового ввода, удобство работы. И remote control - начать сессию на компе, включить его и продолжить с телефона.
А потом выяснилось, что Claude Code блокирует вызовы из консоли, если у тебя подписка: хочешь из терминала - плати за токены.
Ну ок, думаю, беру Codex.
Но в итоге я всё-таки взял Claude Code. Решил, что консоль - не то, что мне действительно нужно, плюс решил, что надо просто попробовать всё.
С шедулером получилось похоже: он есть внутри самого клодкода, и внешний оказался не таким уж обязательным.
А почему именно он - я сейчас уже и не вспомню.
Потому что, когда разобрался, стало понятно: функционал у них практически одинаковый. Кто-то выкатывает фичу - вторые добавляют её следующим релизом.
Сейчас картина такая. Основное - Claude Code. Курсор остался как ide. Подписка весной случайно продлилась ещё на год, так что он у меня всё равно есть. Иногда закрывает дыры, когда я выжег лимиты клодкода, ну и часть вопросов я по привычке решаю им.
Судя по моим постам, может показаться, что я всё ещё сижу в курсоре.
Курсор никуда не делся, но роль у него теперь другая - и про то, как так вышло, стоит рассказать.
Началось с того, что я стал регулярно вылезать за лимиты. Причём формула работы у меня к тому моменту была уже нормальная - то есть дело было не в кривых руках, а в объёме.
Внутри курсора я и так сидел на моделях Codex, они выходили дешевле Sonnet, а добивал уже композером. Отдельно Codex я при этом не гонял ни разу.
Так что вопрос стоял простой: какую подписку покупать. Свелось к двум - ChatGPT и Claude Code.
Выбирал я конечно долго, как новый ноут или спортивные часы)
Требований изначально было два: чтобы можно было запускать что-то по шедулеру и чтобы можно было самому дёрнуть нейронку из консоли.
Дальше пошёл список помельче: какие модели чаще блокируют запросы, где нужен VPN, а где нет, инфраструктура, качество голосового ввода, удобство работы. И remote control - начать сессию на компе, включить его и продолжить с телефона.
А потом выяснилось, что Claude Code блокирует вызовы из консоли, если у тебя подписка: хочешь из терминала - плати за токены.
Ну ок, думаю, беру Codex.
Но в итоге я всё-таки взял Claude Code. Решил, что консоль - не то, что мне действительно нужно, плюс решил, что надо просто попробовать всё.
С шедулером получилось похоже: он есть внутри самого клодкода, и внешний оказался не таким уж обязательным.
А почему именно он - я сейчас уже и не вспомню.
Потому что, когда разобрался, стало понятно: функционал у них практически одинаковый. Кто-то выкатывает фичу - вторые добавляют её следующим релизом.
Сейчас картина такая. Основное - Claude Code. Курсор остался как ide. Подписка весной случайно продлилась ещё на год, так что он у меня всё равно есть. Иногда закрывает дыры, когда я выжег лимиты клодкода, ну и часть вопросов я по привычке решаю им.
❤8
Кубер стартует!
Писал, что для дальнейшего тестирования скилла /teach выбрал кубер.
Я немного общался с нейронкой, чтобы понять вводные для курса - нужно уметь пользоваться терминалом и знать докер, но совсем поверхностно.
Так вот, первый урок готов! Подключил /frontend-design, чтобы было красиво - можно посмотреть и с телефона.
Уроки рендерятся в html и лежат на github pages.
Дальше буду делать ссылки на каждый урок и в комментариях буду собирать фидбек, если он будет, то буду его подмешивать в следующий урок или отвечать в комментариях.
Писал, что для дальнейшего тестирования скилла /teach выбрал кубер.
Я немного общался с нейронкой, чтобы понять вводные для курса - нужно уметь пользоваться терминалом и знать докер, но совсем поверхностно.
Так вот, первый урок готов! Подключил /frontend-design, чтобы было красиво - можно посмотреть и с телефона.
Уроки рендерятся в html и лежат на github pages.
Дальше буду делать ссылки на каждый урок и в комментариях буду собирать фидбек, если он будет, то буду его подмешивать в следующий урок или отвечать в комментариях.
❤6🔥3
Урок 1 - Docker ровно настолько, насколько нужно для Kubernetes.
https://ffortunado.github.io/k8s-course/lessons/0001-docker-just-enough.html
Комментарии и вопросы - сюда же, под этот пост.
https://ffortunado.github.io/k8s-course/lessons/0001-docker-just-enough.html
Комментарии и вопросы - сюда же, под этот пост.
ffortunado.github.io
Урок 1 · Docker ровно настолько, насколько нужно для Kubernetes
Образ vs контейнер, Dockerfile, слои и кеш сборки, тома — Docker, необходимый перед входом в Kubernetes, на примере своего образа FastAPI-сервиса.
🔥7❤4
Урок 2 - Первый локальный кластер.
https://ffortunado.github.io/k8s-course/lessons/0002-minikube-cluster.html
Комментарии и вопросы - сюда же, под этот пост.
https://ffortunado.github.io/k8s-course/lessons/0002-minikube-cluster.html
Комментарии и вопросы - сюда же, под этот пост.
ffortunado.github.io
Урок 2 · Первый локальный кластер
Поднимаем свой первый Kubernetes-кластер через minikube: control plane, node, kubectl, панель управления — и как устроен кластер изнутри.
❤5🔥4
Урок 3 - Pod и Deployment.
https://ffortunado.github.io/k8s-course/lessons/0003-pod-deployment.html
Комментарии и вопросы - сюда же, под этот пост.
https://ffortunado.github.io/k8s-course/lessons/0003-pod-deployment.html
Комментарии и вопросы - сюда же, под этот пост.
❤4🔥2
Пока можно будет сделать перерыв и собрать фидбек, все ли получилось установить и возможно требуется дополнительный промежуточный урок с пояснением непонятных моментов.
Урок 4 - Service.
https://ffortunado.github.io/k8s-course/lessons/0004-service.html
Комментарии и вопросы - сюда же, под этот пост.
https://ffortunado.github.io/k8s-course/lessons/0004-service.html
Комментарии и вопросы - сюда же, под этот пост.
ffortunado.github.io
Урок 4 · Service
Почему у Pod'а нельзя доверять IP-адресу, как Service даёт стабильный адрес и распределяет трафик между репликами — и как достучаться до сервиса из браузера через minikube.
🔥5
Очень интересный выпуск, тут Кирилл показывает, как реально использует агентов, а не теория с opencode, менеджерить агентами и прочая магия. Все просто опус и клодкод) минимальные промпты.
Я кстати было какое-то время пытался настраивать свою инфраструктуру, но оказалось работать с тем, что есть и ждать обновлений готовых скиллов - более правильная стратегия, к чему как вижу приходят и другие
Я кстати было какое-то время пытался настраивать свою инфраструктуру, но оказалось работать с тем, что есть и ждать обновлений готовых скиллов - более правильная стратегия, к чему как вижу приходят и другие
❤4
Forwarded from Организованное программирование | Кирилл Мокевнин
Выпуск в сети! В этот раз я лайвкожу с агентами. Пока закрывал тикеты фиганул пару пулреквестов в mantine, которые уже приняли https://youtu.be/Eplxom-e1C4?is=3HME8iWRITMJxhe2
YouTube
Мой воркфлоу агентного программирования: параллельные сессии и пулреквесты в опенсорс
🔹 Присоединяйся к курсу «ИИ для разработчиков» https://ru.hexlet.io/programs/ai-for-developers?utm_source=youtube
Вторая часть видео: https://youtu.be/CVJ01XSmHEY
Что происходит, когда разработчик почти перестаёт писать код руками и начинает программировать…
Вторая часть видео: https://youtu.be/CVJ01XSmHEY
Что происходит, когда разработчик почти перестаёт писать код руками и начинает программировать…
❤3🔥2
Экватор)
Урок 5 - ConfigMap и Secret.
https://ffortunado.github.io/k8s-course/lessons/0005-configmap-secret.html
Комментарии и вопросы - сюда же, под этот пост.
Если что-то не появляется, то надо обновить страницу через Ctrl+Shift+R
Урок 5 - ConfigMap и Secret.
https://ffortunado.github.io/k8s-course/lessons/0005-configmap-secret.html
Комментарии и вопросы - сюда же, под этот пост.
Если что-то не появляется, то надо обновить страницу через Ctrl+Shift+R
ffortunado.github.io
Урок 5 · ConfigMap и Secret
Выносим настройки и чувствительные значения из образа наружу: ConfigMap, Secret, envFrom в Deployment — и почему Secret по умолчанию не шифрование, а всего лишь base64.
🔥5
https://t.me/it_krasavchik/708
Интересно читать про то, кто как автоматизирует работу.
Недавно тоже ставил плагин клодкода в браузер и для теста попросил поправить резюме в hh, что он сделал прямо очень хорошо, сам нашел сайт, раздел с резюме, отредактировал, сохранил.
Также можно делать отклики с сопроводительными письмами (только важно в промпте написать правило, чтобы не откликнуться в свою компанию).
Но плагин крут и для автоматизации ручного тестирования и автоматизации чего угодно в браузере, тут уже ваша фантазия (отвечать в рабочих чатах тоже можно😄 )
Интересно читать про то, кто как автоматизирует работу.
Недавно тоже ставил плагин клодкода в браузер и для теста попросил поправить резюме в hh, что он сделал прямо очень хорошо, сам нашел сайт, раздел с резюме, отредактировал, сохранил.
Также можно делать отклики с сопроводительными письмами (только важно в промпте написать правило, чтобы не откликнуться в свою компанию).
Но плагин крут и для автоматизации ручного тестирования и автоматизации чего угодно в браузере, тут уже ваша фантазия (отвечать в рабочих чатах тоже можно
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Айтишный Рок-н-Ролл
День второй в роли Staff Engineer за $160k/год 👀
Задача: «зарегайся обычным юзером на нашей платформе и накидай в гуглдок фидбэк - по продукту, технологиям, интеграциям, доке, ну как пойдёт» 🤔
Отдал Клоду - он сам прошелся по сайту через chrome плагин 😎…
Задача: «зарегайся обычным юзером на нашей платформе и накидай в гуглдок фидбэк - по продукту, технологиям, интеграциям, доке, ну как пойдёт» 🤔
Отдал Клоду - он сам прошелся по сайту через chrome плагин 😎…
❤3😁2
Урок 6 - health-пробы.
Про то, как кластер отличает живое приложение от просто запущенного - и что делать, если процесс жив, а отвечать уже не может.
https://ffortunado.github.io/k8s-course/lessons/0006-health-probes.html
Комментарии и вопросы - сюда же, под этот пост.
Про то, как кластер отличает живое приложение от просто запущенного - и что делать, если процесс жив, а отвечать уже не может.
https://ffortunado.github.io/k8s-course/lessons/0006-health-probes.html
Комментарии и вопросы - сюда же, под этот пост.
🔥4
Будущее наступило, как я проходил собес на вайбкодера.
Сходил на собес, а там аутстаф, который нашёл клиента через другой аутстаф.
Аутстаф в квадрате.
Начали с вопроса, сделал ли я тестовое.
Про тестовое я услышал впервые - прямо на собесе)
А ведь перед этим я спрашивал у HR, к чему готовиться: лайвкодинг, базы, систем дизайн?
Он просто повторил мои же слова и сказал - да, вот это и будет.
В итоге я подготовился к собесу, но какому-то другому.)
Дальше дают ТЗ проекта и говорят: надо, чтобы ты это сейчас завайбкодил.
Вот к этому я не готовился совсем.
Хотя тут и готовиться не надо.
Создал папку, запустил Клод, попросил поставить скиллы Мэтта Покока, скинул скрин ТЗ.
И он начал грумить.
На пятом вопросе я сказал, что иногда задалбывает большое количество вопросов.
Интервьюер рассмеялся - ну да, лучше бы делала всё сразу сама.
Но он ещё не подозревал)
На самом деле формат такого собеса не такой уж и плохой, если его немного докрутить.
Во время гриллинга нейронка спрашивает, я выбираю ответ, интервьюер спрашивает, почему я выбрал так. Круто!
Поговорили про транзакции, про select for update, ещё по мелочи.
Но на двадцатом вопросе улыбка интервьюера сошла на нет))
- Давай дальше не будем отвечать, пусть делает как считает нужным. (а я ж говорил)
Я даже в процессе не заметил, что что-то не так, так как для меня 40 минут гриллинга а потом получить мр на +10 строк и -5 - это норма
Зато потом прохожу тестеровщика с первого раза.
Ну ок говорю нейронке, что хватит с вопросами давай /tdd /implement , пиши тесты и имплементируй, покрытие тестами было в требованиях, куда без них)
А у меня по умолчанию opus 5 и high effort - значит, доооолго.
И тут выяснилось, что следующие сорок минут нам с интервьюером надо чем-то себя занять.
И вот пока он писал тесты и имплементировал, мы разговаривали.
Кто что использует на работе, кто что пробовал, проблемы spec kit и скиллов Мэтта Покока.
Не поверите - успели ещё и литкод задачку решить)
Задачка была ну прямо очень лёгкая.
Видимо, со стороны вайбкодер похож на недалёкого человека, вот мне и дали что попроще - проверить на адекватность.
И чтобы её решить, пришлось запустить вс код и ПИСАТЬ РУКАМИ.
Для собеса на вайбкодера это было почти оскорбление.
Я ещё успел попить чай и вот проект готов!
Варился минут тридцать-сорок.
Сделали на FastAPI, на котором я давно ничего не писал: последние лет пять либо джанга, либо вообще не питон.
Дальше пошли вопросы по проекту.
Запускать не просили, я запустил, но показать в браузере забыл - время собеса уже кончалось.
Потом ещё пара стандартных вопросов по питону: хэш-таблицы, индексы, всё такое.
На этом и разошлись.
После собеса остался осадок, что что-то из своих умений не продемонстрировал, а именно: Если в клодкоде зажать пробел, то можно наговорить сообщение и он его транскрибирует, то есть необходимости писать не было!
Теперь надеюсь на то, что не получу примерно такой ответ от hr через пару дней:
"Нам всё очень понравилось, вы крутой вайбкодер, но голосовой ввод вы не использовали и писали все руками, поэтому мы отдали предпочтение другому")
Сходил на собес, а там аутстаф, который нашёл клиента через другой аутстаф.
Аутстаф в квадрате.
Начали с вопроса, сделал ли я тестовое.
Про тестовое я услышал впервые - прямо на собесе)
А ведь перед этим я спрашивал у HR, к чему готовиться: лайвкодинг, базы, систем дизайн?
Он просто повторил мои же слова и сказал - да, вот это и будет.
В итоге я подготовился к собесу, но какому-то другому.)
Дальше дают ТЗ проекта и говорят: надо, чтобы ты это сейчас завайбкодил.
Вот к этому я не готовился совсем.
Хотя тут и готовиться не надо.
Создал папку, запустил Клод, попросил поставить скиллы Мэтта Покока, скинул скрин ТЗ.
И он начал грумить.
На пятом вопросе я сказал, что иногда задалбывает большое количество вопросов.
Интервьюер рассмеялся - ну да, лучше бы делала всё сразу сама.
Но он ещё не подозревал)
На самом деле формат такого собеса не такой уж и плохой, если его немного докрутить.
Во время гриллинга нейронка спрашивает, я выбираю ответ, интервьюер спрашивает, почему я выбрал так. Круто!
Поговорили про транзакции, про select for update, ещё по мелочи.
Но на двадцатом вопросе улыбка интервьюера сошла на нет))
- Давай дальше не будем отвечать, пусть делает как считает нужным. (а я ж говорил)
Я даже в процессе не заметил, что что-то не так, так как для меня 40 минут гриллинга а потом получить мр на +10 строк и -5 - это норма
Зато потом прохожу тестеровщика с первого раза.
Ну ок говорю нейронке, что хватит с вопросами давай /tdd /implement , пиши тесты и имплементируй, покрытие тестами было в требованиях, куда без них)
А у меня по умолчанию opus 5 и high effort - значит, доооолго.
И тут выяснилось, что следующие сорок минут нам с интервьюером надо чем-то себя занять.
И вот пока он писал тесты и имплементировал, мы разговаривали.
Кто что использует на работе, кто что пробовал, проблемы spec kit и скиллов Мэтта Покока.
Не поверите - успели ещё и литкод задачку решить)
Задачка была ну прямо очень лёгкая.
Видимо, со стороны вайбкодер похож на недалёкого человека, вот мне и дали что попроще - проверить на адекватность.
И чтобы её решить, пришлось запустить вс код и ПИСАТЬ РУКАМИ.
Для собеса на вайбкодера это было почти оскорбление.
Я ещё успел попить чай и вот проект готов!
Варился минут тридцать-сорок.
Сделали на FastAPI, на котором я давно ничего не писал: последние лет пять либо джанга, либо вообще не питон.
Дальше пошли вопросы по проекту.
Запускать не просили, я запустил, но показать в браузере забыл - время собеса уже кончалось.
Потом ещё пара стандартных вопросов по питону: хэш-таблицы, индексы, всё такое.
На этом и разошлись.
После собеса остался осадок, что что-то из своих умений не продемонстрировал, а именно: Если в клодкоде зажать пробел, то можно наговорить сообщение и он его транскрибирует, то есть необходимости писать не было!
Теперь надеюсь на то, что не получу примерно такой ответ от hr через пару дней:
"Нам всё очень понравилось, вы крутой вайбкодер, но голосовой ввод вы не использовали и писали все руками, поэтому мы отдали предпочтение другому")
🔥9😁5❤2
Пауза затянулась, возвращаюсь к куберу.
Урок 7 - Ingress и Gateway API.
Про то, как пустить сервис наружу по нормальному имени, а не по адресу с пятизначным портом. И почему первый Ingress почти у всех молчит: манифест применился, ошибок нет, а в ответ тишина.
https://ffortunado.github.io/k8s-course/lessons/0007-ingress.html
Комментарии и вопросы - сюда же, под этот пост.
Upd: Добавил про Gateway API
Урок 7 - Ingress и Gateway API.
Про то, как пустить сервис наружу по нормальному имени, а не по адресу с пятизначным портом. И почему первый Ingress почти у всех молчит: манифест применился, ошибок нет, а в ответ тишина.
https://ffortunado.github.io/k8s-course/lessons/0007-ingress.html
Комментарии и вопросы - сюда же, под этот пост.
Upd: Добавил про Gateway API
ffortunado.github.io
Урок 7 · Ingress
Ingress: как заменить случайный NodePort-порт нормальным доменным именем, чем правила Ingress отличаются от Ingress-контроллера и как поднять всё это в minikube.
🔥4👀1