Cododel.dev | Александр
98 subscribers
472 photos
62 videos
7 files
200 links
Alexander Cododel. Full Stack Web Dev since 2019.

📍 Канал: мысли и проекты
📍 Чат: @cododel_chat
📍 Связь: @cododel

🔗 https://cododel.dev
Download Telegram
Cododel.dev | Александр
Самописная система кеширования запросов Playwright и ее польза Реализовал систему кеширования, пока не универсальную, под мой проект. Для разработки ботов для сайтов - пушка! В моем кейсе кол-во запросов к реальному серверу сократилось с 80 до 10 А скорость…
Получилось портировать на Python, возможно переписывать на TypeScript буду потом проект, вся логика на Python уже готова, быстрее портировать было.

Плюс для решения капчи буду подключать мою, обученную выше, нейросеть.
Сейчас просто ставлю на паузу и вручную ее решаю)
А делать это точно на python нужно, сейчас это будет сделать проще, чем с nodejs

Как у Python - куча приятных фишек, так и под TS...
👍1
Начал еще один проект 💻

На скрине промежуточный этап с таблицей, а в ней данные, с которыми будет вестись работа.

Кстати стек для меня полностью новый (FullStack Typescript):
• NextJS (React) + PrimeReact
• Drizzle (Для работы с базой данных)
• CCXT (Для работы с крипто биржами)
Интерпретатор и пакетный менеджер сейчас использую bun, с ним оказалось в таких проектах не всё гладко, но легко решаемо
А для работы с базой данных перебрал вручную около 5 библиотек, полноценно их развернув и опробовав в работе.
Среди которых запомнил были Knex, Prisma, MicroORM, TypeORM, но остановился на Drizzle, его концепция мне зашла больше всего, но могу отметить еще интересное решение Kysely

Если наберем 15 реакций на посте - расскажу подробнее о каждой, их отличиях и нюансах.
(Будет сложно, но можно привлечь друзей) 🤫

Угадает кто-то, что запланировано?
Подсказка: рабочее название "CArbitr"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31💩1
🔴 Прошел стрим по Python, где я сделал форк библиотеки MailTm

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

В форке улучшил функционал, добавил типизацию, опубликовал его в PyPi и подключил к реальному проекту!

Для самых любопытных в конце поста ссылка на запись стрима 🫡
В целом получилось неплохо, если будет время нарежу его в видос (но это не точно, тк неплохо бы переозвучить)

В чем суть библиотеки?
Бывают проекты по автоматизации работы с сайтами, где требуется регистрировать новые аккаунты.
В таком случае супер удобно использовать временную почту. Для этого можно просто взять существующую библиотеку MailTm.
Но сервис, с которым она работает, дает возможность повторного использования почт, которые мы регистрируем. А бибиотека НЕТ!
Я был конечно удивлен... Особенно тем, что она лежит на официальном сайт, рядом с библиотекой для TypeScript, в которой весь этот функционал, внимание... ЕСТЬ!
Думал уже переписать свой проект с python на typescript, и даже начал это, как можно было заметить в предыдущих постах.
Сегодня же я принял решение переписать саму библиотеку, сделав форк и опубликовав её в официальные репозитории PyPi, чтобы можно было легко подключить и использовать в любом проекте. Ну и поделиться ей со всеми, естественно)

Что вышло
Теперь после регистрации аккаунта - можно сохранить не только адрес почты, но и пароль. Функция регистрации сама выдает pydantic модель Credentials с полями address и password
А затем, можно переиспользовать полученные данные без регистрации, сразу на новом методе login, вместо register
Плюс меня бесило отсутствие хоть каких подсказок при работе с библиотекой, например получая message в хэндлере для listener, который передается в start - мы получаем просто, какой-то dict...
Сейчас это pydantic модель Message, с довольно конкретным набором полей. Ну и плюсом будет, что ее можно обратно конвертировать в dict, просто вызвав message.model_dump() (из функционала pydantic)
Второе, чего мне не хватало, это остановка выполнения кода, пока не придет новое письмо, например с кодом подтверждения почты.
Приходилось реализовать класс-обертку для прошлой библиотеки, где все же реализовать удалось такой функционал, но в каждом проекте делать это не особо хотелось бы)
Теперь просто на нашем объекте класса Email достаточно вызвать wait_for_new_message(), и он будет ждать, пока не придет новое письмо, после чего вернет как результат модель Message и продолжится выполнение скрипта)

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

📹YouTube
🖼️ PyPi
🖼️ Github
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Forwarded from (НЕ)Экономист! | Cododel Crypto | Alexander
Media is too big
VIEW IN TELEGRAM
🗳️ WSCarbitr - мой новый проект мониторинга для межбиржевого арбитража

Я закончил первый MVP этап проекта, и залил в продакшн
Сейчас он непрерывно обновляет в базе данных курсы всех доступных торговых пар с 18 бирж
После каждого обновления проверяет, есть ли положительные спреды
Если есть спреды, то телеграм бот вышлет мне в чат эти пары, со ссылкой на веб интерфейс, который на видео

На проект ушло три рабочих дня, с учетом изучения полностью нового стека.
FullStack Typescript - Nextjs + Nestjs + DrizzleORM

Из плюсов могу выделить жирнющий - ну очень легко разворачиватся продакшн 🤩
Использовал pm2 для запуска nest и next, а для базы данных PostgreSQL - DockerCompose
Please open Telegram to view this post
VIEW IN TELEGRAM
1
В этот раз подход серьёзный, лично столкнулся пока лишь с замедлением YouTube
😢1
Forwarded from ВИЛСАКОМ РЕД / WYLSACOM RED (Matvey Filkin)
Media is too big
VIEW IN TELEGRAM
NVIDIA обучает человекоподобных роботов с помощью Apple Vision Pro

На выставке по компьютерной графике SIGGRAPH NVIDIA показала эталонный процесс тренировки ИИ роботов-гуманоидов с помощью телеопераций. В этом методе обучения нейросети машина копирует движения оператора в режиме реального времени, а оцифровка движений происходит именно за счёт Apple Vision Pro.

Полученные данные разработчики переносят в приложение NVIDIA Isaac Sim, где моделируют движения в виртуальной среде. Затем в микросервисе MimicGen NIM они генерируют синтетические данные о движениях на основе записанных телеопераций с Apple Vision Pro. Полученные синтетические наборы используют для расширения базы данных ИИ робота-гуманоида.

Для обучения ИИ человекоподобного робота требуется колоссальное количество данных и внушительные финансы. Собственно гарнитура Apple необходима NVIDIA, так как решает сразу две больших проблемы: во-первых, шлем позволяет генерировать много данных с помощью телеопераций, а во-вторых, делает это относительно дёшево.
Все таки нашли нормальное применение для Apple Vision PRO 😃

До этого все что придумали было довольно сомнительным
Please open Telegram to view this post
VIEW IN TELEGRAM
Кстати буду иногда подчищать тех, кто давно не был в сети
(2+ месяца)

Добавляйтесь в чат, появляется небольшой актив, буду поддерживать

Ну и зачисток не предвидится 😉

🔗 Чат канала
Please open Telegram to view this post
VIEW IN TELEGRAM
🖼️ Python urlpattern matching

Простая, но эффективная имплементация мэтчинга url запросов, для собственного роутинга на Python

Написал себе для проекта с узкоспециализированным самописным HTTP сервером

Более функциональная альтернатива этому - routes
Мне было интересно разобраться, как же все таки можно парсить url, и нужно было более легкое по синтаксису решение.

Сейчас, когда уже разобрался - считаю, что лучше написать обертку для routes, и использовать её.
Если понадобится расширить функционал сложной логикой - скорее всего перепишу с использованием библиотеки.

🖼️ Gist
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🖼️ Generic типы и Запуск асинхронных функций в Python

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

А вот дженерики - отдельная тема!
В конкретном примере, после выполнения асинхронной логики - мы получим переменную, но IDE, будет определять ее как Unknown
Что помешает нормальной типизации и сделает работу менее удобно, и может привести к ошибкам в коде.
Так что я раскопал решение, которое дает возможность использовать дженерики в Python.
Таким образом, в IDE, тип, возвращаемый из sync_await - будет тем-же, что и у асинхронной функции, коррутину которой мы передаем в качестве аргумента.

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

Но опыт, однозначно положительный!

🖼️Gist
Please open Telegram to view this post
VIEW IN TELEGRAM
Cododel.dev | Александр
Завёл кворк под это дело, посмотрим спрос) Все же я тут не только про IT, но и про фриланс 💰
KWORK - заказов нет

Просмотров толком нет, заказов тем более)

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

Хотя по разработке сайтов помню писали пару раз когда то)
Media is too big
VIEW IN TELEGRAM
Бесшовная интеграция компьютеров — Barrier

ПО бесплатное, опенсорс

В видео сказал macbook и windows пк
Но это актуально для любой комбинации:
Windows/Linux/MacOS

Кроме синхронизации буфера обмена, заявлен drag-n-drop, так что можно просто взять и перетащить файл на второй ноутбук, не парясь о том, как его туда перекинуть!
Но у меня не работает 😐

До 15 устройств!

Ну прекрасно же 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Наконец-то до меня дошло, как исопльзовать .d.ts файлы в Typescript

Гораздо удобнее, чем импортировать типы из отдельного файла
(да простят меня опытные typeскриптизёры)
Forwarded from 🟡NeuroGraph (Сергей NeyroGraph)
Media is too big
VIEW IN TELEGRAM
Ролик сделан а Luma Dream Machine 1.5
Как вам такое?
1
Где-то, когда-то... Рекомендовал TimeWeb

Теперь не рекомендую.
Цены одни из самых высоких, а ситуации подобные скрину - хоть и не критичные, но это именно те неприятные мелочи, которые могут "Поднасрать в утреннюю чашку кофе"

Мои сервера по 550р и првязанной автооплатой - так же втихаря стали таскать с карты уже по 1000р за каждый сервер 🐸

Грустно...
🍞 Статья

Лично, в октябре (когда баланс кончится), буду рассматривать альтернативные варианты
Please open Telegram to view this post
VIEW IN TELEGRAM
Расширяем кругозор | Или что там в Голландии.

Смотрю ютуб сижу и заметил рекламу 14 iPhone
При том базового 🤔

Все же помнят, что есть уже 15, а в течение пары месяцев уже и 16 выйдет)

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

Я немецкий знаю "Х...О"
(И это не "хорошо") но у меня есть переводчик.
Так что мне пришлось ткнуть по рекламе, чтобы понять, в чем прикол.

А фишка в том, что это просто рассрочка от оператора сотовой связи.
К рассрочке выбирается пакет услуг сотовой связи, звонки и смс безлимит, кстати.
А вот интернета безлимита у них нет (Как и в РФ), за то цены, по меркам РФ, страшные, а пакеты интернета мизерные.
10 гб - € 2
12 гб - € 3
15 гб - € 4
20 гб - € 7


И... все. Других опций нет.

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

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

Кстати ссылка из рекламы вела сюда, если кому интересно.

Какие у вас тарифы, сколько тратите интернета, на что? 😃
Please open Telegram to view this post
VIEW IN TELEGRAM
▶️ 🖼️ Сегодня с нуля настраиваю NeoVim.

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

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

Выбирай ссылку:
😉 YouTube
🙂 Twitch
😄 Vk
🥰 RuTube

#Stream
Please open Telegram to view this post
VIEW IN TELEGRAM
VidIQ использует Python на бэкенде.

VidIQ - это ведущий продукт среди инструментов оптимизации YouTube каналов.

Я решил изучить как он отдает ключевые слова, и случайно вызвал исключение, которое вывалилось в ответе по API.
API не публичный, его использует фронтенд самого сервиса, тем интереснее. 😃

Так вот мы можем наблюдать ошибку Pydantic (полезная штука кстати, для сериализации данных)
Что нам говорит как минимум о наличии python на бэкенде этого api, а трейсбэк в ответе - как максимум о возможных уязвимостях 🤫

Но я к тому, что кто бы что не говорил, а python используют на реальных крупных проектах, вопрос лишь правильной архитектуры и кеширования)
Forwarded from Русский ИТ бизнес (Максим Кульгин)
This media is not supported in your browser
VIEW IN TELEGRAM
Умный (без иронии) азиат собрал аппарат с ИИ, который на очень высокой скорости отслеживает цель и не отклоняется. См. видео.

Выскажу аккуратную идею для бизнеса - ловец дронов - это дрон, который может охотиться на других дронов. В открытом доступе есть наборы данных для обучения ИИ. Например: набор данных БПЛА, созданный Mehdi Ozel в 2019 г. и опубликованный на Kaggle. Этот набор данных состоит из 1359
изображений дронов и аннотаций к ним. Вот еще один (Amateur Unmanned Air Vehicle Detection опубликованный на Mendeley Data, 4000 изображений дронов)...

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

Русский ИТ бизнес
Forwarded from Alexander | Cododel
Ну что на демонстрации изображено - делается довольно просто, если не начать накладывать ограничения производительности микроконтроллеров, вариативность входных данных или заменить вообще лоб на дрон

Шаги реализации:
1. Собираем датасет
Записываем себя на видео с вебки, крутимся на стуле
2. Делаем разметку в любом удобном по для лейблинга.
Можно взять roboflow, руками разметить штук 20-50 для начала и использовать в качестве помощника, лишь корректируя результаты
3. Обучаем yolo любой версии, начиная с 4 - инференс на процессоре спокойно может выдавать 10кадров в секунду на цп среднего пк
4. Тут чуть сложнее - собрать установку на шаговых двигателях с удобным микроконтроллером и откалибровать под веб-камеру (на примере она статична, так что угол обзора камеры это приблизительно наш рабочий диапазон)
5. Реализуем интерфейс, который можно опрашивать для получения координат из результатов инференса вебки
6. Преобразуем координаты в поворот двигателей (сидим пишем расчеты, которые в целом можно сделать через чат гпт)

Есть похожие проекты на ютубе у Гайвера, к примеру, но там даже посложнее и с утилити вентилятора, изначально пробовал он на 4 радиодатчиках делать, которые дельту расстояний сравнять по ним стараются вращая установку
Потом все же на нейросети вроде сделал с распознаванием лица (либо не он, я зарубежных видел с похожими проектами, либо с читал где-то может)
1