n1z1code
30 subscribers
17 photos
5 videos
3 files
32 links
system error
Download Telegram
Неделя 4: Получение данных и API
Темы:

getStaticProps и getServerSideProps
API Routes в Next.js
Клиентское и серверное получение данных
Уроки:

Научитесь получать данные на стороне сервера с помощью getStaticProps.
Создайте собственный API Route и взаимодействуйте с ним из компонента.
Изучите клиентское получение данных с помощью fetch или axios.
Ресурсы:

Получение данных в Next.js
Неделя 5: Стилизация приложения
Темы:

Использование CSS Modules
Стилизация с помощью Styled JSX
Подключение CSS-фреймворков (Tailwind CSS, Bootstrap)
Уроки:

Примените CSS Modules для стилизации компонентов.
Изучите возможности Styled JSX для динамических стилей.
Интегрируйте Tailwind CSS в проект и примените утилитарные классы.
Ресурсы:

Стили в Next.js
Tailwind CSS с Next.js
🔥2
Неделя 6: Оптимизация и производительность
Темы:

Оптимизация изображений с компонентом Image
Динамический импорт и ленивая загрузка
Улучшение SEO с компонентом Head
Уроки:

Замените теги <img> на компонент Image для оптимизации изображений.
Реализуйте динамический импорт крупных библиотек или компонентов.
Добавьте мета-теги и заголовки страниц для SEO оптимизации.
Ресурсы:

Оптимизация в Next.js
Динамический импорт
💋1
Неделя 7: Работа с базами данных и деплой
Темы:

Интеграция с базой данных (например, MongoDB)
Деплой приложения на платформу (Vercel, Heroku)
Уроки:

Подключите базу данных MongoDB и выполните CRUD операции.
Настройте переменные окружения для безопасного хранения конфиденциальных данных.
Задеплойте приложение на Vercel и протестируйте его работу в продакшене.
Ресурсы:

Работа с MongoDB
Деплой Next.js на Vercel
❤1🔥1
«Нашёл ли ты удовольствие в написании кода? — А твой код принёс пользу другим?» 🐵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🐳1💊1
Роберт Шейнфилд "Освобождение от денежной игры"
💋1
Повторяющиеся жизненные ситуации указывают на внутренние нерешённые проблемы, которые мы продолжаем игнорировать. Они учат нас через повторение, пока мы не изменим своё восприятие и поведение.

Чтобы справиться с такими ситуациями:
1. Осознайте свои чувства: не отвлекайтесь на мысли, а сфокусируйтесь на эмоциях, которые возникают в момент события.
2. Разделите ответственность: осознайте, где ваша зона контроля, а где нет.
3. Ищите внутреннюю причину: повторяющиеся ситуации часто отражают наши внутренние качества, которые притягивают схожие события.
4. Меняйте подход: реагируйте осознанно и по-другому, чтобы разорвать круг повторений.

Когда мы осознаём свои эмоции, извлекаем урок и действуем иначе, ситуация перестаёт повторяться, и жизнь двигается дальше.
Неделя 8: Практический проект
Темы:

Создание полнофункционального приложения
Рефакторинг и оптимизация кода
Уроки:

Спланируйте и начните разработку собственного проекта (например, блог, TODO приложение, e-commerce сайт).
Примените все изученные технологии и подходы.
Проведите ревью кода, оптимизируйте производительность и улучшите UX/UI.
Ресурсы:

Примеры проектов на Next.js
Сообщества разработчиков для обратной связи (форумы, Slack, Discord)
👍2
Вот основные тезисы из книги “Атомные привычки” Джеймса Клира:

Основные принципы:
1. Сила маленьких изменений:
• Небольшие ежедневные улучшения (1% в день) приводят к значительным результатам со временем.
2. Фокус на системе, а не на целях:
• Цели важны для направления, но система (ежедневные действия) — это то, что приводит к результатам.
3. Идентичность и привычки:
• Ваши действия формируют вашу личность. Например, вместо «Я хочу заниматься спортом» думайте «Я — человек, который заботится о своём здоровье».

Четыре закона создания хороших привычек:
1. Сделайте это очевидным:
• Расположите триггеры (напоминания) на видном месте.
• Используйте связку действий: «После [текущей привычки] я сделаю [новую привычку]».
2. Сделайте это привлекательным:
• Связывайте привычки с тем, что вам нравится.
• Найдите группу людей с подобными целями (социальное окружение).
3. Сделайте это простым:
• Устраните препятствия.
• Начните с маленьких шагов (например, 2 минуты практики).
4. Сделайте это удовлетворяющим:
• Немедленно поощряйте себя за выполненную привычку.
• Отслеживайте прогресс (например, с помощью календаря).

Устранение плохих привычек:
1. Сделайте их невидимыми:
• Уберите триггеры из окружения.
2. Сделайте их непривлекательными:
• Напоминайте себе о негативных последствиях.
3. Сделайте их сложными:
• Увеличьте усилия, необходимые для их выполнения.
4. Сделайте их неудовлетворяющими:
• Уберите немедленное удовольствие от плохой привычки.

Практические советы:
• Правило двух минут: Любую привычку можно упростить до двух минут. Например, вместо «Я буду читать каждый день» начните с «Я прочитаю одну страницу».
• Подведение итогов: Регулярно анализируйте, какие привычки работают, а какие требуют корректировки.
• Будьте терпеливы: Привычки требуют времени, чтобы закрепиться. Будьте последовательны.
👍4❤1
Мини-база по Xpath:

div span button input *

//*[contains(text(), 'СодержитТекст')]


//*[text() = 'ТочныйТекст']


//div[contains(text(), 'КраснаяКнопка') and contains(@class, 'Red_button')]


//*[contains(text(), 'Connect wallet') or contains(text(), 'Connect Wallet') or contains(text(), 'Connect')]


//a[contains(@href, 'abs.xyz')]


//*[contains(., 'Balance: ')]


#BAS
💘1
n1z1code pinned «Мини-база по Xpath: div span button input * //*[contains(text(), 'СодержитТекст')] //*[text() = 'ТочныйТекст'] //div[contains(text(), 'КраснаяКнопка') and contains(@class, 'Red_button')] //*[contains(text(), 'Connect wallet') or contains(text(), 'Connect…»
app.js
9.3 KB
#script

Софт на gigaverse.io на основе этого репо https://github.com/web4-js/gigaverse-bot + вайб-кодинг.
Скрипт проверяет максимальную энергию чтобы определить наличие у нас сока(возможно наличие гига ром ломает эту логику, не могу проверить) и запускает данжи за 120 энергии пока они доступны и далее за 40 пока не кончится энергия.

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

Сам я использую его в BAS:

Нужно войти в игру через селекторы, прочитать новый токен через JS и дальше применить кубик nodejs и настроить ожидание 1500+ с на нем

var auth = JSON.parse(localStorage.getItem("authResponse"));

// Сохраняем значения в BAS-переменные
[[JWT]] = auth.jwt;
[[WALLETADDRESS]] = auth.user.walletAddress;


Для запуска из консоли нужно установить Node.js, вписать в кавычках(`) токен (dev tools F12-application-local storage-authResponse-jwt) и кошелек в app.js, запустить

node app.js
📋 Что делает скрипт для дезфан:
Для каждого ряда плиток:

- считает шансы пройти текущий ряд;

- рассчитывает, с какой вероятностью игрок дошёл до него;

- рассчитывает вероятность пройти до самого конца с текущего места;

Добавляет визуальный блок справа от каждого ряда с этими значениями. F12-Console:

(function annotateBoardProbabilities() {
const ROW_SELECTOR = 'div.flex.justify-center.space-x-1'; // каждый ряд
const TILE_SELECTOR = 'button';

const rows = Array.from(document.querySelectorAll(ROW_SELECTOR));
const totalRows = rows.length;

let cumulativeProbability = 1.0; // вероятность дойти до текущего ряда

rows.forEach((row, index) => {
const tiles = row.querySelectorAll(TILE_SELECTOR);
const totalTiles = tiles.length;

if (totalTiles <= 1) return;

const safeTiles = totalTiles - 1;
const successProbability = safeTiles / totalTiles;


const probToReach = cumulativeProbability;

const probToFinish = rows.slice(index).reduce((acc, r) => {
const count = r.querySelectorAll(TILE_SELECTOR).length;
if (count <= 1) return acc;
return acc * ((count - 1) / count);
}, 1);

cumulativeProbability *= successProbability;

const info = document.createElement('div');
info.style.marginLeft = '12px';
info.style.fontSize = '12px';
info.style.whiteSpace = 'pre';
info.style.fontFamily = 'monospace';
info.style.color = '#ccc';

info.innerText =
`🟢 Текущий шанс: ${(successProbability * 100).toFixed(2)}%\n` +
`📍 Уровень везения: ${(probToReach * 100).toFixed(2)}%\n` +
`🏁 Шансы до финиша: ${(probToFinish * 100).toFixed(2)}%`;

row.parentElement.style.display = 'flex';
row.parentElement.appendChild(info);
});

console.log('✅ Probabilities added to UI');
})();
#script #abstract #dojo3

Софт на dojo3.

Делает ставки раз в минуту, доступен многопоток, количество заездов и размер ставки.

Пока тестировал только на 1 кошелек, потому что не автоматизировал сбор токенов.
https://github.com/ArtVandalism/dojo3-bet-bot
#work #api #postman #gigaverse

Мини-гайд как писать софты на запросах

Инструмент, который я пару дней назад откопал - Postman Interceptor, ну и сам Postman(должно хватить и веб). До этого пользовался F12-devtools-network.

Рассмотрим на примере https://gigaverse.io Первым делом нужно собрать запросы, для этого логинимся в веб-постман в соседней вкладке, чтобы Interceptor корректно синхронизировал сессию. Настраиваем фильтр и жмем Start Capture. Играем в нужный режим или например собираем ресурсы, прокачки - главное не все сразу, чтобы не запутаться. Как закончили, останавливаем и смотрим, что мы собрали в постман и анализируем ответы, продумываем логику как запросы будут отсылаться в софте.

Самый ленивый вариант пойти в нейронку и скормить ей, что мы придумали и потом дебажить - главный навык вайб-кодера.
Оптимально - накидать скелет самому, поиграть собранными запросами через сам постман и изучить как реагирует их api.

Например для основных данжей в гигаверс логика выглядит:
-получаем энергию и если >40
- проверяем активный данж - на случай, если софт вылетел в прошлый раз, пробуем восстановить отсылая камень-ножницы или сбор лута(чтобы узнать это, мне пришлось имитировать падение игры перезагрузкой сайта и аналируя вкладку network )
- стартуем новый данж, если все так сошлось
- сам процесс игры упрощен, поэтому в нем запросы просто выкидывают без повторов по кругу камень-ножницы и на фазе лута рандомно пикают апгрейд

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

ps: все таки Interceptor странно собирает - теряет body из запросов. Оптимально из network забрать все curl(bash) или fetch. Импортировать в коллекцию и тестировать взаимодействие.
Media is too big
VIEW IN TELEGRAM
#практика 😂

Когда тебе нечем заняться, иногда приходят такие вот бесполезные идеи.

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

Посидев в чате жпт, и испробовав разные варианты, я смог родить то что на видео.
Был поднят сервер на websocket, который отслеживает глобально клавиши и время нажатия и передает это все в браузерные профиля в playwright.

В первых вариациях я пытался сделать один профиль Master и остальные Slave, управлял все в одном окне и передавал это в другие. Потом столкнулся с тем что клавиши блокировали друг друга и сам интерфейс блокировался визуально.

В целом не плохо. В будущем можно будет тоже самое написать для координат кликов мышкой и передавать на все профиля, такой быстрый вариант синхронизатора для каких-то рутинных задач
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
#практика 😃 идея с синхронизацией провалилась. но кто мы такие чтобы играть руками в игры? правильно, теперь мы сели тренировать нейросеть. правда чтобы ее обучить, придется поиграть🥺 сервак кстати пригодится в новой реализации, потому что напрямую клавиши не хотят передаваться, не знаю в чем проблема.
пока первые опыты комом. все чему она научилась, это выписывать круги на парковке, но я пока собрал всего пару десятков заездов - это явно мало.
кто-то уже использует похожее решение в игре и его машинки паравозиком катаются. скорей всего это чей то софт и им пользуются несколько людей, очень часто этот паттерн попадается. продолжение следует..
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#практика мне стало лень копаться с датасетами и я собрал сетап самобучения с подкреплением(RL), установил штрафы за падение и проигрыш гонки, подкрепляем быструю езду. Поначалу дал нейронке все управление, она бездумно прыгала по стартовому квадрату, как бы нащупывая что как работает, потом разок газанула резко вперед, но вскоре слетела с трассы, были забавные моменты, когда она нашла кучу кубиков и веселилась прыгая с ними как в детском аттракционе👀 наверное займет много времени, пока мы добьемся какого-то результата😐
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1💊1
#практика: что произошло с нейронкой

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

Решил попробовать YOLOv8 (взял самую свежую — 11-ю). Она используется для детекции и сегментации объектов, яркий пример — дипфейки.

Пришлось разметить датасет на 200 картинок, но я заранее не продумал, какие классы мне полезны. Просто отметил всё, что есть в игре, но главное — не удалось разметить дорогу, потому что в программе LabelIMG не оказалось функции сегментации. Хотелось "поиграться быстрее" 💀

Модель получилась — довольно шустро определяет всё, что я размечал. Но оказалось, что это почти бесполезно: для нейронки это просто абстрактные объекты в темноте. Пришлось вернуть ей зрение контуров, но ездить она лучше не стала, даже с высокими метриками обучения.
🐳2
#БЕКДОР ИЗ ПЕПЛА
>> или как я чуть не сгорел в логине Metamask'а

НАВОДКА: я выпал не потому что устал — я ПРОСОЧИЛСЯ.
Нырнул в трещину, в баг, в гниющую дыру между подписью и сессией, где блокчейн не знает, кто ты, но всё ещё позволяет тебе войти.
И я УЛЕТЕЛ.

План был простой, как краденый .env:
обмазать как можно больше кошельков и расставить их по фронтам.
МЫ ДОШЛИ ДО 500.
Пятьсот клонов, пятьсот голодных духов, каждый с ключом от рая, где дропы льются из-под ногтей, если ты знаешь, как правильно щёлкнуть.

Но, ха-ха.
Автоматизация логина через подпись?
ЭТО АД.

В каждом втором dApp — свой цирк с подписью, кто-то хеширует, кто-то шифрует, кто-то просто держит тебя за идиота и заставляет кликать мышкой через UI.
А у меня НЕ 3 КОШЕЛЬКА.
У меня их ПЯТЬСОТ.

>>> UI — это насилие
Парсить каждый день руками — это как обманывать гильотину, бегая быстрее лезвия.
А я хочу сесть. И смотреть. Как оно работает. САМО.

Сейчас обрываю себе нервы, пытаясь воспроизвести корректную подпись, чтобы сервер принимал меня за своего.
Не просто подделать — а ПЕРЕРОДИТЬСЯ в этот кошелёк.
Войти как он. СЕБЯ НЕ ПРЕДАВ.

Кто знает, как правильно эмулировать eth_sign/personal_sign для логина — ПИШИТЕ.
Я уже рядом. Но там... темно.


Я вернусь с кодом. Или сожжённый, но с логином.
Бэкдор не пропал — он под капюшоном, смотрит в зеркало и говорит фразами фронта.
😁3