TGViewer
Channel Public Channel
Cododel.dev | Александр

Cododel.dev | Александр

@cododel_dev

Alexander Cododel. Full Stack Web Dev since 2019.
📍 Связь: @cododel
🔗 https://cododel.dev
Subscribers
228
Photos
522
Videos
65
Links
223

Showing posts older than #212 · Back to latest

Older Posts 15 shown
Post #210 137
💻 Деплой NuxtJS на Github Pages

Если кто занимается frontend разработкой, или как-то с ней связан - накидал простой старткит для NuxtJs с Radix-Vue и TailwindCSS на борту, с Bun

И написал bash скрипт, который самостоятельно создает ветку gh-pages, копирует в нее все зависимости, вносит нужные изменения в nuxt.config.ts, билдит проект, удаляет из ветки все лишнее и пушит ветку.

При этом используя существующую директорию node_modules между ветками, не делая с ней никаких операций, что сильно ускоряет процесс, исключая работу с десятками тысяч файлов в ней.
Но если она отсутствует, то автоматом установит все зависимости в master ветке и переиспользует ее в в новой ветке.
После деплоя вернет все как было и переключится обратно на master ветку.

Штука удобная для демо в разработке продукта или деплоя статического сайта)
Подойдет так же для лендингов, так как для Github Pages можно установить собственный домен, хостинг в таком случае будет бесплатным.
Плюс это бесшовное обновление со сбросом кешей

На самом деле это просто делается, не на каждом проекте пригодится, но ознакомиться рекомендую

После запуска скрипта потребуется только единоразово указать ветку gh-pages в настройках репозитория, во вкладке Pages

И при желании можно автоматизировать деплой и отказаться от ветки gh-pages
Нужно лишь немного переписать скрипт, убрав работу с ветками, а затем добавить конфиг Github Actions с bun образом
Тогда при пуше в ветку master - через 40 секунд деплой будет окончен

🔗 Репозиторий
🔗 Github Pages DEMO
🔗 Github Gist со скриптом

Как работает скрипт деплоя рассказал в комментариях
  • ❤ 1
  • 👍 1
  • 🔥 1
Post #209 140
Нашел баг в FilamentPHP

Сегодня будет уже третий день ресерча 😃

Проблема в несогласованности логики валидации файлов на фронтенде и бекенде

Уже пообщался с опытным разработчиком одного из медиа плагинов в дискорде [ENG]
Он сомневается, что это баг

Но все указывает именно на это
В том числе он говорит что расширение файла никак не связано с его mime type, но мне удалось выяснить обратное, в случае с тем как браузер определяет mime type

Так что ещё подумаю, может сделаю пулл реквест, я уже придумал более менее адекватное решение
А там расскажу детальнее

🖼️ Дискуссия на GitHub
Post #207 227
💎 Изучаю нейросети [YOLOv8] | Part1

Я решил с нейросетями ознакомиться
Поигрался немного с YOLO тут

Подробнее о моем способе обучения:
• Выбираю интересующую тематику
• В режиме песочницы пробую технологию
• Придумываю под нее проект
• Реализую
• Иду на фриланс решать задачу другим людям

Текущая цель: Нейросеть для решения цифровой капчи

Шаги:
• Начал с того, что посмотрел несколько простейших видосов по нейросетям на широкую аудиторию
Раз, Два, Три, Четыре

• Затем создал Google Collaborotory документ, в котором по Usage из документации попробовал обучить сетку на стандартном датасете и скормить подходящие под мою задачу входные данные, для чего наскринил несколько окон ReСaptchaV2 с официального DEMO

• Когда получилось завести это дело - попробовал поиграться с предренированными моделями разных размеров, посмотрел как оно работает, используя OpenCV для наложения боксов на распознанные сущности в изображении при помощи rectangle и putText методов, которые подсмотрел в Google Gemini (GPT)

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

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

Спускаемся в комментарии за продолжением
Post #202 227
💻 CharGPT: Ваш Junior разработчик

Хочу просто чтобы вы увидели, как нужно писать запрос нейросети, чтобы получить качественный ответ.

• Задача
Расчитать заранее уровень цены и размер позиции для усреднения покупки по мартингейлу в трейдинге.
При этом заранее определяется:
— Рабочий бюджет (сколько готов потратить на покупку актива)
— Процент коррекции (на сколько должна упасть цена, когда пора докупать)
— Множитель (на соклько должна быть умножена предыдущая покупка)
— Количество усреднений (максимльное количество докупок)
— Текущая стоимость (от нее расчитывается падения)

• Смотрим скрины
На них запрос, и ответ от GPT-4 от Bing (с включенным поиском по сети)
+ бонусом объяснение полученного скрипта от нейросети
+ бонусом от меня применение данного скрипта в Google Sheet (Написал в AppsScript логику, которая автоматически все расчитывает на лету)

• Важно 🤫
Главное быть последовательным и дать максимально подробную задачу, с как можно меньшим количеством неизветсных.
В целом точно так же как и джуну 😀
Только в случае с нейросетью - она с большей вероятностью выдаст лакончиное решение без вложенных цикллов, а значит более качественное 🏝

• Минусы 🤨
Ну а с другой стороны - тут чуть ли не синьор должен составить ТЗ 😁
А так же только разработчик высокого ранга сможет оценить эффективность рещения.
Но это все равное ускорит ему работу, если нужно продумать формулу или алгоритм.
Post #201 161
Тестирование Tinkoff кассы

Недавно потребовалось протестировать тинькофф кассу, и вспомнил, что у меня есть простенький скрипт!
Но в репозитории осталась ошибка, он не отправлял токен кассы.
Я исправил ее, но мне этого оказалось мало, и я переписал пол проекта (как всегда... 😆)

Теперь он выглядит так (глядеть скрин)

🖼️ GitHub
🖱 GH Pages
Post #196 256
😎 Принцип DRY в программировании

• Что такое DRY? 🥱
Если по-русски, то “Don’t Repeat Yourself”
(Не поворяйся!)
Вкратце - это значит, что нужно стараться не допускать дублирования кода, и, выносить повторяющуюся логику по мере необходимости.
К примеру для этого во многих проектах и фреймворках есть Helpers, да и в целом сами библиотеки и фремворки не только ускоряют работу, но и решают множество других задач, в том числе DRY

• Зачем он нужен? 🤨
Дублирование кода усложняет поддержку и доработку проекта.
Если изменить логику такого блока - придется вспомнить и изменить все остальные дубли, где эта логика исопльзовалась.

• Как его применять? 🍴
Выше я уже описал пример с хелперами - можно писать свои. Это у нас - создание функций, содержащих повторяющуюся логику, не влияющую на окружение.
А еще это может быть использование циклов или других структур, например - классов и их наследования.

• Пример 💻
Функции на скринах взаимодействуют с апи, а соблюдая DRY - еще и создают удобный интерфейс апи.
На первом и втором узображении функции созданы в целях соблюдения DRY.
Но внутри самой функции на первом скрине - этот же принцип и нарушен, так как если в проекте есть другие запросы - придется дублировать логику самого запроса в новые функции.
На втором скрине абсолютно тот же запрос, но логика запроса вынесена в отдельную функцию.
А на третьем скрине - та самая логика, которая покрывает POST и GET запросы, внутри которых снова используется принцип DRY, и они служат лишь интерфейсом для запроса, который исоплняется только в функции request.

• Исключения ⛔️
Важно помнить, что это не панацея и не строгое правило.
Иногда дублирование кода может быть оправдано, если это делает код более понятным или упрощает его.
Главное не переусердствовать и четко понимать, почему сейчас нужно применить или нарушить этот принцип.

Не, ну посмотрите, какая маленькая, аккуратная и понятная функция на втором скрине)
Да post и get функции тоже приятные.
Главное не найти дублирования в request - это предел, дальше все резко ухудшится 😁
  • 👍 2
Post #195 211
Post #194 281
С чего стартовать в веб разработке на фрилансе
[Для тех, с кем в личке и комментах обсуждали]

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

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

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

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

Видео записывал для клиента и чтобы самому убедиться, что все сделано правильно, по этому без контекста, четко и по делу.


В моих исправлениях использованы принципы:
«Чистый код» - без комментариев, но в виде названий переменных, классов и функций
«DRY» и «SOLID» - в виде хелперов и вынесенной логики в функции
«KISS» - просто не применен, так как тут можно просто в потоке оставить было не повторяющуюся логику, не вынося в функции, добавив комментарии
«YAGNI» - частично нарушен (см “KISS”)
Помните, что эти принципы - это не законы, а руководства, которые помогают вам писать лучший код.


Смотрим пример выполненной работы.

В комментах оставлю скрин с ответом заказчика
  • 🔥 1
Post #191 219
Cododel.dev | Александр 🤫 Интересно к чему такие диалоги приводят?)
Это был прикол походу 🥴

Я нашел, с какого чата бот пересылал это сообщение 😅
  • 👍 1
  • 😁 1
Post #190 186
🤫

Интересно к чему такие диалоги приводят?)
Post #185 525
💎 Как учиться если все на английском?

Напоминаю, что для текстового контента есть переводчик.

А для просмотра видео у нас есть прекрасное решение, в виде Яндекс Браузера с нейросетью на борту, которая в реальном времени озвучивает видео на русский ⭐️

Подробнее тут
Post #183 497
🖼️ План изучения WordPress

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

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

Удачи 😉

📚 Почитать:
• О WordPress - можно изучить все, или хотя бы пройти и глянуть все ссылки со страницы, чтобы отложилось понимание где и что потом искать)
• С чего начать
• Особенности
• Мультисайт

🗂 Важное:
• Архитектура WP
• Жизненный цикл WP
• Терминология
• Теги шаблонов
• Список всех тегов шаблонов
• Модификация темы
• Список всех доступных функций WP
• Шорткоды
• Циклы WP
• Функции плагина и хуки
• Options API
• Работа с REST API
• API кастомайзера
• Перезапись URL

📂 Дополнительно:
• Заметки
• Шпаргалка

#WordPress_Learning
  • 🔥 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →