All streams
Search
Write a publication
Pull to refresh
15
0
Алексей @ktibr0

User

Send message

В хост имя прописал, а esp через mDNS ищет, так как подарок удалённый, а ip прописывается в коде, не хотел, чтобы заморачивадись с настройкой и поиском, как ip увидеть - маме 70 лет, явно это не осилит.

нет, к сожалению, есть и другие объективные причины

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

Rfid на 13МГц, обычные, но разных форм-факторов - проще запоминать будет, что там записано

Сценарий такой - запускается RPi со всеми сервисами в автозагрузке (монтирование usb диска с музыкой, mpd\mpc как вещатели потока в домашнюю сеть и само приложение-сервер, которое ждет команд от плеера на esp .

На диске, помимо музыки лежит код приложения, плейлисты (они могут загружаться в mpc и начнется воспроизведение музыки с трансляцией в сеть).

Запускается плеер это esp32, усилитель и плата чтения RFID, подключается к wifi сети домашней, ищет по имени musicbox.local адрес сервера, подсоединяется к нему. Если приложить метку, то ее Id считается и отправляется на сервер в приложение. Приложение смотрит, сопоставлен ли этот Id с каким то плейлистом (спец. json файл list лежит в папке проекта). Если сопоставлен, выполняется команда mpc load playlist_name и mpc play. Поток пошел в сеть, плеер, подключенный в сетевому потоку на адрес сервера воспроизводит поток. следующее касание новой меткой - загрузка нового плейлиста и его воспроизведение. Если метка не привязана, дописывается в файл ее Id и надпись, что не привязано ничего. через syncthing идет синхронизация всех файлов, в том числе и списка с id меток, я увижу, что новая метка прописалась, уже потом решим, привязать новый плейлист, или заменить (если вдруг RFID метку предыдущую брат потерял).

Кнопок всего 5, три на боку (они расположены, как на фото на разных уровнях) и две с торца - они чуток менее выпуклые - громкость, запутаться сложно.

Динамик на 3 вата, от какого то старого плеера, большой не стал ставить, так как громкость большая будет мешать маме, да и усилитель маломощный поставил.

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

Пробовали Алису, не пошла, слишком часто не дослушивает, или включает не то, брат огорчался и сказал - "ну ее нафиг, эту женщину, она не понимает меня" ))

Я обычно собираю непосредственно на машине, через docker build, но наверное, ваш способ для случаев, когда надо несколько докер образов одинаковых разместить, в том же swarm

Попробуйте вместо htop утилиту от того же автора bpytop, мне она нравится чуток побольше )

И понять это в 20 лет, чтобы к 35, получая опыт и растущий доход, и собрать нужный портфель.

Тогда по партнёрской ссылке купят только один раз, и все комиссии по разделу NAS больше не будут генериться

Маленькая ремарка. При получении дохода от вкладов (например, как в статье - 3млн), готовьтесь отдать 13% налогов на доходы, которые выше 210 тыс. будут, то есть, доход ещё уменьшится

Год назад также сдал на обработку генетический материал, потом выгрузил его и закинул в myheritage, кажется.

Тут есть пояснения, как можно данные использовать.

Совершенно правы. Задачу ставил и уточнял, чтобы было какое то gui, ибо первый вариант, полугодом раньше был в логике консоли написан, python правда, но тоже сначала имя, потом дату и по каждому exif тегу. Но:

  1. Я хотел именно глазами просмотреть теги и понять, где отличие, чтобы в каждом конкретном случае принять решнение, какой вариант оставить (были фото с разной степенью заполненности тегами), вариант с объединением всех тегов в одно фото тоже рассматривал, но выбрал другой путь.

  2. Сделав поиск и вывод дубликатов, понял, что в консоли (особенно, если папок несколько), сложно смотреть.

  3. .В то время, когда писалась первая версия, не смог нормально сделать кодировку отдельных exif полей в выводе в консоль, поэтому, новую версию решил на html запросить или какой то другой интерфейс, но остановились на html.

Вот варианты, которые Клод предложил по гуи:

### Для GUI:

1. Настольное приложение:

- `tkinter` - простой, но ограниченный функционал

- `PyQt` или `PySide` - более мощные, но сложнее

- `Kivy` - кросс-платформенный, но с более сложной архитектурой

2. Веб-интерфейс:

- `Flask` + `HTML/CSS/JS` - легкий бэкенд + веб-интерфейс

- `Django` - если нужна более мощная система

- `Streamlit` - быстрая разработка интерфейса для Python

Спасибо за комментарии от профессионала (я экономист, и такие упражнения с кодом для меня просто хобби, а мнение эксперта в этом реально полезно), чуток отвечу

Если посмотреть на app/routes.py, то понятно, что такое мы поддерживать дальше не будем. Очень много дубликатов, нарушены кучи практик программирования

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

Расширять тоже, проще переписать

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

Используются устаревшие технологии вроде бутстрапа и jq

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

устаревшая? ну ок.

работает медленнее, чем могло бы? ну ок.

нетехнологичная и избыточная? ну ок.

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

три недели по паре часов, это 30 часов. Я бы уже напрягся если бы такое выдали дольше, чем через 8 часов от разработчика уровня джун+

видимо, неоднозначно сформулировал. не прямо каждый день, как по расписанию. и не по два часа - закинул в новый чат контекст, последнюю версию кода (весь или кусок, где поломалось), логи ошибок (здесь было мало, в основном на выводе в браузере все видно было), задал вопрос, попросив исправить, получил код, обновил файлы, залил на сервер, поднял контейнер, протестировал - максимум 30 минут занимало. и да, наверное в целом это заняло 9-11 часов чистого времени. Кстати, спасибо за критерий по джунам - как то не задумывался, как мерять производительность, сложность работы программистов. теперь, если кто то в окружении будет умничать про "уйти в айти", буду приводить пример - что такую штуку разработать за 8 часов и это только старт карьеры ))

...лишние 200 баксов...

вот это, извините, не понял. у меня бесплатный аккаунт Claude, времени своего потратил, да, но я это воспринимаю как хобби, поэтому, цену времени не считаю в этом случае. Что за 200 баксов вы имели в виду, как то ускользнуло от меня

мне подход от Nyan понравился https://github.com/NyanNyanovich/nyan . Объединение новостей достаточно просто происходит. паук сделан для телеграмм каналов, но добавить туда скраппинг старниц или rss потоков, думаю несложно.

в оригинальном Nyan используется OpenAi, но в коде буквально несколько мест нужно подправить и та же Ollama работает прекрасно. я себе сделал форк и заменил на локальную модель. чем ещё проект понравился - аггрегирует все в телеграм, что для меня очень удобно- использую его, как основное окно новостей.

да, то что за полгода навыки программирования LLM шагнули сильно вперёд- несомненно.

обычно я, при решении какой то локальной своей задачи методом вайб-кодинга, делаю следующие шаги:

  1. описываю задачу, указывая предпочитаемые инструменты (у меня чаще всего python, докеризация, html, css, java-script).

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

  3. прошу описать предлагаемую структуру проекта, дерево директорий и файлов.

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

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

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

по мне, не нужно выдумывать, а повторить такого рода, и еще какой-нибудь, с ардуинкой, закрепленной на плате с выводами-пружинками, и буклет с пошаговыми схемами соединений от простых к более сложным, причём, как схема каноническая, так и просто "команды" на соединение - 12-16Д - соедини 12 и 16 пружинки длинным проводом...для первоначального погружения в электротехнику - в самый раз, как по мне

2

Information

Rating
Does not participate
Registered
Activity

Specialization

Chief Financial Officer (CFO)
Lead