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
Ссылки
- Наш приватный чат
- Мой GitHub
-
Read on your language

Соцсети:
📹 Twitch
😉 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 На стриме был вопрос с собеседования:
Как сгенерировать массив чисел и найти в нем только четные?

Оставлю тут 🤷‍♂️
Решение на JavaScript
array = []
for (let i=0; i<100000; i++){
const num = Math.round(Math.random() * 10000000)
array.push(num)
}
array.filter(i=>!(i%2))


#javascript #forbeginners
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Не поверите!
Открыл для себя сегодня PetiteVue

Тоже самое, что AlpineJs, но ближе к Vue и мне больше нравится)

Интересно кому?

#web #frontend #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
Cododel.dev | Александр pinned « Ссылки - Наш приватный чат - Мой GitHub - Read on your language Соцсети: 📹 Twitch 😉 YouTube»
👩‍💻 Что-то я пропал немного 😁
Выше я писал про PetiteVue, сегодня проясню.

Я в тот момент делал полноэкранный вижет обратной связи. И естественно встраиваемый.
До этого я еще почитал о ShadowDom, но не осмелился взять его в работу.
А вот опыт перескакивания между фреймворками у меня большой)

#web #frontend #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Хотел делать как всегда на AlpineJs, который мне полюбился сразу, как я начал делать что-то подобное. Но меня не покидала мысль сделать это на VueJs с компонентами и нормальной разбивкой на части.
Начал делать и понял, что целый Vue тянуть это оч плохая идея. Да и долго это всё, окружение еще настроить, сборку в единый бандл и т.п.

Почитал о SolidJs, понял что долго буду вливаться, и тут промелькнул PetiteVue, которого поддерживает сам Evan You. Почитал кучу хвалебных статей, с помаркой, мол "Для виджетов". И загорелся.
Сразу написал вам пост, и взял в работу.

И вылезли подводные камни...
Мне очень хотелось компоненты, биндинги и вынос логики в JS. А так нельзя 😂
Выходит очень перегруженно, что-то более менее сложное - сломает ногу(
Потерял день и переписал всё обратно на Alpine.

Мораль:
Почитал статью про новый "Супер мега инструмент" и планируешь внедрять - проверь на достоверность 😉

— P.S.
И кстати потом постфактум человек заказчика заявил, что нужен "Подключаемый виджет, в одном .js файле". И инициализцией через JS функцию.
Я подсуетился и за полдня при помощи EsBuild - собрал JavaScript, подключил Sass, Pug и запихнул в бандл все HTML сущности в <template> тегах.
А Alpine c CDN подтягивается, чтобы не плодить кучу разных виджетов с Alpine внутри бандла.
Делается очень просто) Потом расскажу.

#web #frontend #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
А еще знаю, что есть новички в веб разработке, напишу Вам в чате.
Что-то хочется мне для вас устроить прямую трансляцию с разбором Canvas анимации на JavaScript.

Разберем и перепишем с использованием ООП очень простой пример, который у меня на гитхабе лежит. Чуть-чуть потрогаем и вспомним школьную геометрию 8-9 классов)

А кто совсем не "бум-бум" - посмотрит просто, одним глазком. 🙂

#web #frontend #javascript #canvas #animation
👩‍💻 Я наладил OBS с Sway, и он больше не просаживает FPS в системе при захвате экрана)

Все очень просто.
Делаем следующее:
- Ставим:
obs-studio
xdg-desktop-portal
- Далее под вашу систему:
xdg-desktop-portal-gnome для GNOME.
xdg-desktop-portal-kde для KDE.
xdg-desktop-portal-wlr для wlroots-based Wayland compositors (e.g. Sway, dwl)
— И для wlroots композиторов ставим wlrobs - в идеале с гита.
В AUR под ArchLinux есть два пакета
wlrobs - у меня работает на scpy, но просаживает FPS до 25, а dmabuf - в артефактах весь 😬
wlrobs-hg - scpy так-же просаживает FPS, но dmabuf заводится и урчит как котенок.


Теперь проясню, что это за абра-кодабра.
На Linux есть графический протокол, относительно новый, с кучей плюшек, называется Wayland, но сейчас не про него.
Так вот с ним стримить из OBS из коробки не получится. Надо настраивать.

Тут захват экрана устроен через местный фреймворк PipeWire, а для сего действа требуется разрешение.
Получить его как-раз может OBS через xdg-desktop-portal, который в свою очередь запросит это разрешение у композитора через плагин. В моем случае это xdg-desktop-portal-wlr.
Дальше мы ставим плагин wlrobs для OBS, чтобы под Sway у нас появились в меню варианты захвата экрана.

И всё.
Это первый вброс про линукс. Если будет фидбек - будут еще, но применю все свои "копирайтерские" навыки 🙂

#linux #archlinux #wayland #sway #pipewire
Please open Telegram to view this post
VIEW IN TELEGRAM
👏1
Подцепил телефон вместо вебки ☺️
Old phone instead of webcam)

#stream #blogging
👍1
Чёткий видос для начинаний 😉
Вслушайся и прислушайся.

Может такой же записать? 🤔

#learning #forbeginners
Пост для англоговорящей части и без того малого канала 😁

--------------------------------------------------------------------
It's time for informative posts, and it won't look good if I keep posting translations of them.
But I hasten to please that a translator has been brought to telegrams!
See screenshots of how it works)

#info
Вас ждёт длиннопост об опыте программистов и разработке телеграмм ботов.
Затравочный, чтобы задать тему для следующих постов.

Так что зовите знакомых почитать, пусть подписываются. Буду рад)

#info
👍21
👩‍💻😌 Работа с текстовой разметкой в Telegram боте и об опыте в программировании.

Вчера правил телеграмм бота на Python AsyncTeleBot
У разработчика, что делал его опыта с ботами больше, чем у меня, это видно.
Но не в программировании 😅

Думаю смогу позже выделить детали, на которые обращал внимание, и рассказать про то, чем опытный программист отличается от не опытного.
Хотя и сам нашел чему у него научиться. Век живи - век учись, как говорится.
Так я узнал и могу расказать о:
- Документоориентированных базах данных
Используется как основная база и для хранения состояний в памяти. (Второй вариант мне больше нравится)
- Инструменте для анализа макетингового текста
Использовался для подсчета юникодных символов (смайлов) при парсинге сообщения для перерасчета сущностей. (Не надо так делать)
- Поближе ознакомился с асинхронностью в python.
Оказалось всё не так плохо)

Для себя разобрался:
- С pylint и autopep8 для форматирования кода и рефакторинга.
(Это когда в коде порядок надо навести)
- Понял, что автоперезапуск бота при внесении изменений в код - вещь почти бесполезная, в отличие от разработки сайтов.
Ставил nodemon, по началу было удобно, т.к. не надо перезапускать руками при тесте.
Но когда вместо поехавшей разметки получил просто "None" вместо текста - настроил запуск через debugger.
И только тогда я смог разобраться в чем дело.
- Как работать с отладчиком
Очень удобно оказалось ипользовать debug console - можно остановить выполнение программы в любой точке, смотреть переменные, порядок выполнения кода, писать интерактивно писать код с точки остановки, используя все доступные в этой области переменные, функции и т.п.
(Я знал, что так можно, но тут это оказалось максимально полезным опытом.)

Так вот про бота. Проблема была такая:
"Едет форматирование в сообщениях"
Что для меня, как для веб разработчика, показалось очень странным.
Я вообще не понимал, как может ехать форматирование 😂

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

Чтобы было понятно о чем речь
Есть письмо: "
Привет, Я Александр, веб разработчик со стажем.
Предлагаю внести в работу вашего бизнеса немного автоматизации.
Ознакомиться с моим портфолио можно тут.
Рабочая ставка: 2000р/час
"
И в данном примере, жирный, подчеркнутый, курсивный шрифты, ссылка на портфолио и ставка - разные сущности.
В метаинформации написано, что ссылка на "https://freelancehunt.com/freelancer/kotovvsan.html" находится с 147-го символа, по 150-ый символ.

Т.е. при каждом внесении изменения в сообщение - оно, исходя из предыдущего состояния, парсилось и устанавливались новые координаты сущностей.
И просто представь, что нужно что-то добавить в середине, или вначале - придется всё это дело каждый раз высчитывать и обновлять заново 🫣🤯

А решение всему этому делу:
Языки разметки!
Доступны на сколько мне известно - два самых популярных: HTML и MarkDown

Второй очень нравится, но с первым мне работать проще)
Так вот выреза‌‌л я парсинг и внедрял работу с HTML.
Это самая главная часть задачи 😄

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

Подробнее разберу работу с форматированием в комментариях, либо в одном из следующих постов.

#python #pytelegrambotapi #telegram #telegrambot #developing #issue #experience
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Старое рабочее место
Интересно новое? 😏

#blogging #life #archive
👍1🔥1
👩‍💻 Знает кто-то, как отсечь петли в кривой, имея ее точки? 😅

Могу немного упростить вводные:
Синие линии строятся по уже имеющимся точкам, но они имеют такие вот петли.

Как мы можем их задетектить, вырезать и на их место поставить точку первого пересечения?


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

Закрывает две линии вначале и в конце так-же линиями из точек.
Получаем из высчитывая из стартовой или конечной точки зелёной линии - точки на окружности с заданным радиусом и частотой.

Практическое применение - мы можем получить маршрут на карте и обвести область вокруг него с заданным радиусом.
А практическое применения практического применения - я не знаю 😂

#javascript #canvas #geometry #issue #question
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
👩‍💻 Не надо тебе Vim. NeoVim уже сделали.

Настроил я себе сегодня сего зверя, оч хорошо выглядит, и автокомплит, и вкладки, и GitHub Copilot подцепил.
И даже... Файловый менеджер, а еще, а еще... 😂 (А еще он бытрый и на Lua)

Читай в телеграфе 😉

#vim
#nvim #linux #lua #copilot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2