Cododel.dev | Александр
Пока в Photoshop не работает генеративное заполнение (Generative fill) в РФ, в opensource редакторе Krita есть неплохое решение на базе Stable Diffusion Даже превью функционала есть При этом не обязательно иметь мощную видеокарту. Можно воспользоваться онлайн…
Кстати если видеокарта есть - легко настраивается всё (но можно и на процессоре)
Но на моем MacBook air с M1 - генерация дико медленная,о все же работает если чай сходить попить пока инференс проиходит 😁
За то без лимитов и без интернета
Но на моем MacBook air с M1 - генерация дико медленная,о все же работает если чай сходить попить пока инференс проиходит 😁
За то без лимитов и без интернета
Forwarded from (НЕ)Экономист! | Cododel Crypto | Alexander
Я нашел условия дропа HamsterCombat
Сейчас во вкладке дропа только подключения кошелька
Но в исходниках бота, которые легко посмотреть в консоли разработчиков, есть уже еще 4 задачки:
· Пригласить не менее 5 друзей
· Достигнуть профита в час не менее 10к
· Достигнуть не менее 4 уровня (Platinum)
· Подписаться на телеграм канал
Скорее всего это обязательные условия для получения дропа, если хотя бы под одно из них не попасть, то с дропом в пролёте 😃
На данный момент это файл
https://hamsterkombatgame.io/_nuxt/airdrop.C16j_n93.js
Сейчас во вкладке дропа только подключения кошелька
Но в исходниках бота, которые легко посмотреть в консоли разработчиков, есть уже еще 4 задачки:
· Пригласить не менее 5 друзей
· Достигнуть профита в час не менее 10к
· Достигнуть не менее 4 уровня (Platinum)
· Подписаться на телеграм канал
Скорее всего это обязательные условия для получения дропа, если хотя бы под одно из них не попасть, то с дропом в пролёте 😃
На данный момент это файл
https://hamsterkombatgame.io/_nuxt/airdrop.C16j_n93.js
👍1
Cododel.dev | Александр
Кстати если видеокарта есть - легко настраивается всё (но можно и на процессоре) Но на моем MacBook air с M1 - генерация дико медленная,о все же работает если чай сходить попить пока инференс проиходит 😁 За то без лимитов и без интернета
А вот пример реального применения технологии
Cododel.dev | Александр
А вот пример реального применения технологии
Please open Telegram to view this post
VIEW IN TELEGRAM
kwork.ru
AI Обработка фото и иллюстрации за 2 500 руб., исполнитель Александр (WebSmithCode) – Kwork
Обработка фотографий при помощи генеративных диффузионных моделей Stable Diffusion Можно аккуратно исправить то, что вручную мало кто возьмется исправить Если, к примеру, заменить, удалить или добавить предмет - задача распространенная, то, если, половина…
👍1
Честно - мне сложно по-русски коротко назвать утилити)
Это инструмент очень сильной абстракции, использовать только в редких случаях!
Если в проекте удобно сначала собрать очередь задач, а только затем их последовательно запустить, а у меня такая ситуация и случилась, то предлагаю этот Gist
• Создаем объект
QueueRunner• Затем через метод
.task - передаем в него аасинхронную функцию• Если нужны аргументы, то чейним, как в некоторых конструкциях JavaScript следующий метод
.args, и в него передаем требуемые аргменты для функции "Как есть".Этот метод запишет в класс
QueueTask аргументы для последней добавленной задачи• Чтобы добавить новую задачу - достаточно так же чейном вызвать снова ту же последовательность, либо на объекте, сохраненном в переменной
Так к примеру - можно вынести крупные части логики, которая должна исполняться последовательно в разные файлы, у меня в проекте это Actions
Потом их собрать в нужном порядке в
QueueRunner, при этом, между каждым вызовом метода можно выполнить доп логику основного потока логики.И под конец вызвать асинхронный метод
.run, который выполнит все сохраненные задачи последовательно.Это позволяет построить достаточно сильную абстракцию, пихать где попало не стоит)
Но если у вас более 500 строк кода, в котором можно выделить явные последовательные блоки логики, при том некоторые из них условные (выполняются при соблюдении условий в операторе if), то вполне может пригодиться данная фишка)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Media is too big
VIEW IN TELEGRAM
Попробую для начала себя в переводах, прежде чем делать свои ролики
Нужно поработать с голосом, привыкнуть, сложно с нуля и без опыта делать качественно🤫
Нужно поработать с голосом, привыкнуть, сложно с нуля и без опыта делать качественно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
Типизированные Датаклассы-модели данных в TypeScript
Появились сложности в работе с Playwright на Python
А в JS api - есть подходящие экспериментальные функции для работы с запросами
Да и с аснихронностью работать мне гораздо приятнее в JS
И первое же, с чем я столкнулся - в Python есть шикарнейшая библиотека Pydantic, а на крайний случай, для работы с данным - предустановленные dataclasses
В JS же такого счастья нет, в виде удобного определения моделей данных, с возможностью добавить к ним методы и вычисляемые значения
Я перепробовал около 10 вариантов, привлек ChatGPT 4o
Ничего не вышло, но я вынес из этого много мыслей и с небольшим перерывом смог реализовать довольно неплохой интерфейс
Самая главная проблема во всех, даже самых крутых интерфейсах - наршуение принципа DRY, так как приходилось определять и properties у модели, и задавать еще дополнительно схему входных данных.
Сейчас достаточно только properties указать и конструктор, в typescript это можно сделать без повторений, через shorthand constructor. (см скрин)
Реализовано это через реверс метода конструктора, чтобы получить список именованных аргументов, а вторая функция извлекает из объекта значения в нужном порядке и переает их в конструктор.
Решение довольно неплохое, ведь нужна имплементация
Например, получая данные по api - мы просто передаем их в fromJSON или fromObject метод:
А определение модели датакласса смотрим на скрине.
Нигде не выкладывал, если понадобится кому - писать в комменты.
Появились сложности в работе с Playwright на Python
А в JS api - есть подходящие экспериментальные функции для работы с запросами
Да и с аснихронностью работать мне гораздо приятнее в JS
И первое же, с чем я столкнулся - в Python есть шикарнейшая библиотека Pydantic, а на крайний случай, для работы с данным - предустановленные dataclasses
В JS же такого счастья нет, в виде удобного определения моделей данных, с возможностью добавить к ним методы и вычисляемые значения
Я перепробовал около 10 вариантов, привлек ChatGPT 4o
Ничего не вышло, но я вынес из этого много мыслей и с небольшим перерывом смог реализовать довольно неплохой интерфейс
Самая главная проблема во всех, даже самых крутых интерфейсах - наршуение принципа DRY, так как приходилось определять и properties у модели, и задавать еще дополнительно схему входных данных.
Сейчас достаточно только properties указать и конструктор, в typescript это можно сделать без повторений, через shorthand constructor. (см скрин)
Реализовано это через реверс метода конструктора, чтобы получить список именованных аргументов, а вторая функция извлекает из объекта значения в нужном порядке и переает их в конструктор.
Решение довольно неплохое, ведь нужна имплементация
**kwargs из python, чтобы пробросить объект как именованные аргументы функции, но такого в JS нет, хотя решение все же нашлось)Например, получая данные по api - мы просто передаем их в fromJSON или fromObject метод:
async function getRandomProxy() {
const res = await this._api.get(`/proxy/random`);
return Proxy.fromObject(res.data);
}
А определение модели датакласса смотрим на скрине.
Нигде не выкладывал, если понадобится кому - писать в комменты.
Самописная система кеширования запросов Playwright и ее польза
Реализовал систему кеширования, пока не универсальную, под мой проект.
Для разработки ботов для сайтов - пушка!
В моем кейсе кол-во запросов к реальному серверу сократилось с 80 до 10
А скорость загрузки с 8 сек до 0.8 сек (в 10 раз!)🤫
Кроме ускорения загрузки страниц, как и скорости работы бота - еще более мощный бенефит в следующем:
Если сайт жестко ограничивает кол-во запросов, то мы их и не будем отправлять.
Так в моем кейсе на одну загрузку страницы тратится 50 запросов через playwright, тк часть кеширования урезана.
При работе через обычный браузер - это 16 запросов.
Сайт же ограничивает кол-во запросов до 200шт за 5 минут, после чего блокирует до окончания этого периода.
В таком режиме бот будет работать медленнее человека...
А с такой системой кеширования, бот не то-что просто будет работать быстрее, за счет мгновенного выполнения всех действий на странице, так еще и в 1.5 раза больше действий имеет право делать, не выходя из лимитов!
Я рад, мне нравится, надеюсь я правильно определил bottleneck, и теперь работа попрёт😈
Подключается она всего в две строки сейчас, в будущем интерфейс будет изменен, естественно:
Реализовал систему кеширования, пока не универсальную, под мой проект.
Для разработки ботов для сайтов - пушка!
В моем кейсе кол-во запросов к реальному серверу сократилось с 80 до 10
А скорость загрузки с 8 сек до 0.8 сек (в 10 раз!)
Кроме ускорения загрузки страниц, как и скорости работы бота - еще более мощный бенефит в следующем:
Если сайт жестко ограничивает кол-во запросов, то мы их и не будем отправлять.
Так в моем кейсе на одну загрузку страницы тратится 50 запросов через playwright, тк часть кеширования урезана.
При работе через обычный браузер - это 16 запросов.
Сайт же ограничивает кол-во запросов до 200шт за 5 минут, после чего блокирует до окончания этого периода.
В таком режиме бот будет работать медленнее человека...
А с такой системой кеширования, бот не то-что просто будет работать быстрее, за счет мгновенного выполнения всех действий на странице, так еще и в 1.5 раза больше действий имеет право делать, не выходя из лимитов!
Я рад, мне нравится, надеюсь я правильно определил bottleneck, и теперь работа попрёт
Подключается она всего в две строки сейчас, в будущем интерфейс будет изменен, естественно:
const browser = await chromium.launch(launchOptions);
const context = await browser.newContext();
const page = await context.newPage();
const cache = new PWCache(page);
await cache.run();
await page.goto('https://example.com');
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Cododel.dev | Александр
Самописная система кеширования запросов Playwright и ее польза Реализовал систему кеширования, пока не универсальную, под мой проект. Для разработки ботов для сайтов - пушка! В моем кейсе кол-во запросов к реальному серверу сократилось с 80 до 10 А скорость…
Получилось портировать на Python, возможно переписывать на TypeScript буду потом проект, вся логика на Python уже готова, быстрее портировать было.
Плюс для решения капчи буду подключать мою, обученную выше, нейросеть.
Сейчас просто ставлю на паузу и вручную ее решаю)
А делать это точно на python нужно, сейчас это будет сделать проще, чем с nodejs
Как у Python - куча приятных фишек, так и под TS...
Плюс для решения капчи буду подключать мою, обученную выше, нейросеть.
Сейчас просто ставлю на паузу и вручную ее решаю)
А делать это точно на python нужно, сейчас это будет сделать проще, чем с nodejs
Как у Python - куча приятных фишек, так и под TS...
👍1
Начал еще один проект 💻
На скрине промежуточный этап с таблицей, а в ней данные, с которыми будет вестись работа.
Кстати стек для меня полностью новый (FullStack Typescript):
• NextJS (React) + PrimeReact
• Drizzle (Для работы с базой данных)
• CCXT (Для работы с крипто биржами)
Интерпретатор и пакетный менеджер сейчас использую bun, с ним оказалось в таких проектах не всё гладко, но легко решаемо
А для работы с базой данных перебрал вручную около 5 библиотек, полноценно их развернув и опробовав в работе.
Среди которых запомнил были Knex, Prisma, MicroORM, TypeORM, но остановился на Drizzle, его концепция мне зашла больше всего, но могу отметить еще интересное решение Kysely
Если наберем 15 реакций на посте - расскажу подробнее о каждой, их отличиях и нюансах.
(Будет сложно, но можно привлечь друзей)🤫
Угадает кто-то, что запланировано?
Подсказка:рабочее название "CArbitr"
На скрине промежуточный этап с таблицей, а в ней данные, с которыми будет вестись работа.
Кстати стек для меня полностью новый (FullStack Typescript):
• NextJS (React) + PrimeReact
• Drizzle (Для работы с базой данных)
• CCXT (Для работы с крипто биржами)
Интерпретатор и пакетный менеджер сейчас использую bun, с ним оказалось в таких проектах не всё гладко, но легко решаемо
А для работы с базой данных перебрал вручную около 5 библиотек, полноценно их развернув и опробовав в работе.
Среди которых запомнил были Knex, Prisma, MicroORM, TypeORM, но остановился на Drizzle, его концепция мне зашла больше всего, но могу отметить еще интересное решение Kysely
Если наберем 15 реакций на посте - расскажу подробнее о каждой, их отличиях и нюансах.
(Будет сложно, но можно привлечь друзей)
Угадает кто-то, что запланировано?
Подсказка:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1💩1
Сделал перестановку, убрал с рабочего места все лишнее, чтобы не отвлекаться от работы, после чего запустил тестовый стрим.
В форке улучшил функционал, добавил типизацию, опубликовал его в 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 и продолжится выполнение скрипта)Итог:
Я с вдохновлением подошел к процессу, потому половину работы прокомментировал, хотя и вышло это непроизвольно, но подконец немного разошелся, подключил наушники и более активно стал выдавать детали, показал как подключить её в реальный проект, пофиксил баги, обновил в репозитории.
И даже показал на реальном проекте результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Forwarded from (НЕ)Экономист! | Cododel Crypto | Alexander
Media is too big
VIEW IN TELEGRAM
Я закончил первый MVP этап проекта, и залил в продакшн
Сейчас он непрерывно обновляет в базе данных курсы всех доступных торговых пар с 18 бирж
После каждого обновления проверяет, есть ли положительные спреды
Если есть спреды, то телеграм бот вышлет мне в чат эти пары, со ссылкой на веб интерфейс, который на видео
На проект ушло три рабочих дня, с учетом изучения полностью нового стека.
FullStack Typescript - Nextjs + Nestjs + DrizzleORM
Из плюсов могу выделить жирнющий - ну очень легко разворачиватся продакшн
Использовал pm2 для запуска nest и next, а для базы данных PostgreSQL - DockerCompose
Please open Telegram to view this post
VIEW IN TELEGRAM
❤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, так как решает сразу две больших проблемы: во-первых, шлем позволяет генерировать много данных с помощью телеопераций, а во-вторых, делает это относительно дёшево.
На выставке по компьютерной графике 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+ месяца)
Добавляйтесь в чат, появляется небольшой актив, буду поддерживать
Ну и зачисток не предвидится😉
🔗 Чат канала
(2+ месяца)
Добавляйтесь в чат, появляется небольшой актив, буду поддерживать
Ну и зачисток не предвидится
Please open Telegram to view this post
VIEW IN TELEGRAM
Простая, но эффективная имплементация мэтчинга url запросов, для собственного роутинга на Python
Написал себе для проекта с узкоспециализированным самописным HTTP сервером
Более функциональная альтернатива этому - routes
Мне было интересно разобраться, как же все таки можно парсить url, и нужно было более легкое по синтаксису решение.
Сейчас, когда уже разобрался - считаю, что лучше написать обертку для routes, и использовать её.
Если понадобится расширить функционал сложной логикой - скорее всего перепишу с использованием библиотеки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1