Заметки на салфетке
53 subscribers
60 photos
31 links
Заметки автора канала "код на салфетке".

Вопросы и предложения @proDreams
Основной канал: @press_any_button
Download Telegram
В воскресенье в 18:00 состоится третий стрим.

Продолжаем делать Telegram-бота для управления VPSкой.

Что мы уже сделали:
- Выполнение произвольной команды с выводом результата.
- Выполнение последовательности команд с запоминанием изменения пути при использовании команды cd.
- Оповещение администратора о запуске-остановке бота и меню.
- Меню управления Docker-контейнерами.

Что ещё в планах:
- Сделать вывод используемых сервером ресурсов (ОЗУ, ЦПУ).
- Сделать меню с избранными командами. Для реализации необходимо подключить БД используя SQLAlchemy.
- Сделать обработку сообщений только от администратора.

Если у вас есть ещё идеи - пишите в комментариях!

Всех жду Воскресенье 18:00: https://www.youtube.com/@codeonanapkin

P.S. Всем, кто поддерживает канал на Boosty доступен репозиторий с исходным кодом проекта.
🔥2
Доброго всем вечера)

Решил я, значится, подготовиться к стриму. Вспомнить, подучить, почитать доку) Позавчера начал... И пропал.

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

В общем, стрим завтра обещает быть интересным.
🔥5👍1
🤯Два с половиной часа! Можно считать, что бот готов. По мелочи пройтись напильником, привести к одному виду, но он работает как задумывалось изначально.

Запись: https://www.youtube.com/watch?v=ZmSrlHJQikw

Исходный код доступен для подписчиков на Boosty.

Дальше если и буду дорабатывать бота, то самостоятельно, обновляя его в репозитории.
Идей на следующее воскресенье у меня нет. Что посоветуете? Что было бы вам интересно увидеть?
🔥2
Доброго всем вечера.

Удивительный сегодня день. Думал как обычно проснусь и буду весь день по продуманному вчера плану делать дела, а потом БАЦ, позвонил друг.

Повидался с другом, пришёл домой, "ну всё, пора что-то поделать"... БАЦ! Внезапно появились домашние дела...

В итоге сегодня практически ничего не делал)
Вот недавно занялся работой. Поправил документацию по некому, начал вести документацию по планам развития салфетки.

Сейчас займусь ревью кода в неком... Пожелайте удачи....тем, чей код буду смотреть) 😈😈😈
👍4🔥2
Всем привет.

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

Уже четверг, а я всё ещё не придумал, чем мы займёмся на стриме в воскресенье, если не придумаю идею, стрима не будет)) Накидайте тем и это не обязательно ТГ бот 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👾1
Доброго всем утра)

Утро началось с ревью кода в неком) Собирался сделать это в среду, а добрался только сегодня. Ну и как обычно наоставлял кучу комментариев с правками)

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

Вот вам затравочка) И кто бы, что не говорил о множественном наследовании в питоне, но это очень удобно! Определил базовый класс, а потом от него унаследовал три других выполняющих свои задачи и не повторяешься.
🔥21💯1
Всем привет)

Хватит работать, пора и отдохнуть) Как раз на ПК вышел порт Horizon Forbidden West)

А ещё, мы время от времени собираемся в голосовом чате Discrord, просто поболтать во время работы или игры.
Присоединяйтесь)

https://discord.gg/HwGXJSQE
🔥2
Всем привет)

Стрима сегодня не будет потому, что я не придумал тему)

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

В течении недели буду собирать идеи и будем выбирать, что будем делать в следующее воскресенье.
🔥3
Доброе утро) Или уже день? Не важно, всем привет.

У вас бывает такое, что одно дело, второе, третье и всё как-то ну так. Без энтузиазма, рутина, а то и вовсе с апатией?
Вот у меня такое в последнее время достаточно часто.. Однако.
Вчера и сегодня я прям "машина" продуктивности.

Вчера с утра и до середины дня разбирался с вебсокетами и дружбой между Django и Vue. Сложно, непонятно, но интересно. Работы ещё много.. А зачем? Узнаете как нибудь потом))

Поспав до вечера я залез в наш "Некий проект". Смержил готовые задачи, исправил тексты ошибок, переделал сваггер и ещё по мелочи. Хорошо так перелопатив код подкинул задачек по мержу основной ветки всем остальным))

Сегодня среда, а значит пора выкладывать новый пост и меня так задолбала прошлая система постинга из Django в Telegram... Там всё было сделано "временно" и заставляло делать много двойной работы и если я ещё ладно, привык, но другие авторы страдают из-за этого. Собрался, подумал и перелопатил систему) Теперь основной текст поста идёт в тг) Никакой двойной работы, всё просто и удобно.


В общем, хорошо так потрудился)
Осталось сделать свою задачу на стажировке и домашку в курсе от KTS.
👍2🔥21
Всем доброй ночи)

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

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

Как вам идея?
1🔥1
Всем доброго вечера!))

После напряжённого дня кодинга на стажировке, нужен отдых.
Как раз сегодня стартует новая лига в Path of Exile!

Приглашаю всех на стрим: https://youtube.com/live/0wwTWryKO7U?feature=share

А те, кто знает про наш дискорд, могут присоединиться к беседе)
🔥2
Всем привет)

Выходные прошли как-то быстро и с головной болью, даже толком не отдохнул.

А неделя началась с работы)
Сегодня делал разное, например, разбирались как на сайт школы внедрить поддержку для слабовидящих и это жесть.
Ещё обновил свою програмку под актуальную лигу в игре Path of Exile. Кому интересно: https://github.com/proDreams/PoE-IPC

Уже почти ночь, а дел ещё не мало на сегодня(
🔥3
Всем привет!

За несколько дней произошло несколько событий.

Начнём с главного.

19-го января у моей группы в GB прошла итоговая аттестация (защита диплома). Нам обещали в течении месяца выслать диплом и номер его отслеживания... Видимо в GB месяц длится иначе, т.к. диплом я и мои одногруппники начали получать только с этой недели... Получив оповещение от Почты России о прибытии письма. 2.5 месяца на изготовление, отправки, но прикол не в этом! Теперь они предоставляют дипломы в виде двух листочков, без корочки. Ну да ладно, я уже на WB выбрал обложку)

И вот казалось бы, диплом, наконец-то эпопея длительностью в 1.5 года + 2.5 месяца ожидания диплома подошли к концу, надо радоваться... А радости то нет. И ощущения "дипломированного специалиста" тоже. Такие дела.

Второе "событие", опишу позже. там тоже есть приколы)
🔥4👍2
Открыл папку "спам" на почте сайта))
😁4
Всем привет)

Немного заматался и забыл рассказать про второе "событие", вернее куллстори)

Сказ о том, как я впервые покупал что-то на Сбер Мега Маркете.

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

Зашёл на сайт, нашёл подходящий микрофон Fifine A6V и стойку к нему. Вышло всё на 4100р, с купоном 2100р всего.

Преисполненный "халлявой", 19-го марта сделал заказ... И тут начались приколы.
Во время оформления заказа, дата доставки была 23-е марта, но после оплаты сдвинулась на 29-е. Ну думаю, хрен с ним, ждём.

Наступило 29-е число ииии.... ничего. Заказ не привезли. Прислали жалобную смс-ку, мол "не успеваем, простити и ждити", чтож ждём.

31-го числа таки позвонил курьер и сообщил, что везёт заказ и привёс его. Микрофон, без стойки. Стойку привезёт позже кто-то другой. Забавно, да?

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

Всё хорошо и работает, но после WB, такие сроки доставки и не следование им, вымораживают.
🔥2😱1
Всем привет!

Уже в эту субботу, 20го апреля состоится финальное демо проектов на стажировке в LAD Academy.

Почти шесть месяцев ушло на разработку MVP проекта LAPA.

Приглашаю всех желающих на нашу презентацию.

Мероприятие пройдёт в Google Meet. Начало в 10:00 по МСК и до 17-ти часов.
Презентация проекта LAPA запланировано на 11:45-12:30.

Ссылка на мероприятие: https://meet.google.com/zhv-kmcb-ros

P.S. Пост про стажировку будет, как только разберусь с делами)
🔥3
Всем привет) Побомблю чутка вам тут с утреца)

Уже давненько витают планы по переделыванию сайта салфетки. Один из таких - отойти от шаблонов Django в пользу Frontend JavaScript-фреймворка.
Я немного знаком с Vue.js, среди вариантов ещё был Angular и популярный Rect.js... Про последний и буду бомбить.

Работаю над проектом в основе которого Node.js на бэке и Rect.js на фронте. И какой же реакт неудобный.

Как обычно происходит получение данных с сервера? Делается запрос и выводится результат.
Как это происходит в реакте? В одном файле заводим константу урла для запроса. Во втором файле делаем запрос, возвращающий Promise, так называемое "обещание" вернуть данные указанного типа (тут используется TypeScript). В третьем файле располагается хук, для обработки полученных данных. В четвёртом файле, непосредственно в компоненте подключается хук.

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

И тут таится вторая засада! Компонент отрисовывается, хук вызывается, но данные он ещё не успел получить и, что он выводит? Чёртов undefined! Приходится городить костыли (с моей точки зрения, костыли), чтобы получить данные и вывести их.

Это капец как усложняет работу и понимание того, что вообще происходит.

В итоге я для себя решил, что ни строчки кода реакта не будет в моём проекте. Уж лучше на Vue, он понятный и удобный.

Зато вот Node.js приятно удивил. Это самый обычный бэк. Да на JavaScript, вместо привычного мне Python'а, но бэк, он и в африке - бэк. Стандартная логика, стандартное API, БД на Mongo. Всё как везде.

P.S. Чукча не фронтэндер, но выговориться хотелось))
😱3🤯2👍1😁1
Всем привет)

Стажировка официально всё, закончилась.

На этой или следующей неделе постараюсь написать пост по оставшимся месяцам работы над ЛАПой.

А пока, можете посмотреть наше выступление на финальном демо:
https://youtu.be/s4ig6J7qXfg?si=t1f2g9GhOP7RLeZl
🍾2👍1😢1😭1
Всем привет)

Закончилась эпопея с Node и React JS. Интересно было поработать с другим языком над проектом.

Но по питону немного соскучился)

И тут мне написал приятель, что ему нужен тг бот для пересылки постов из Telegram в базу-данных Notion.
API ноушена ужасно неудобное. Сперва оно не хотело никак работать с указанной мной базой-данных. Затем было непонятно в каком виде оно что принимает...
В итоге, ноушен сдался и заработал)

Принцип работы прост:
1. Пользователь пересылает сообщение в бота.
2. Аиограм получает сообщение и начинает его парсить.
Если есть изображение в посте - отправляем его на Imgur.
Если в посте есть ссылки, то создаётся их список.
3. Формируются данные для отправки и отправляются в ноушен.
4. Бот отвечает на сообщение реакцией 👌, сообщая, что задача выполнена.

Код доступен на моём гите: https://git.pressanybutton.ru/proDream/Notion_Bot
🔥5👍2🍾1
Всем привет.

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

Нужно реализовать парсер магазинов на Ozon.ru. Всё это обернуть в API на DRF. Вишенка на торте - ко всему этому прикрутить тг-бота для отправки уведомления об окончании парсинга и вывода результатов последнего парсинга.

Звучит как-то не тестово, не правда ли?
Текст тестового можете прочесть тут.

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

Но само задания мне показалось интересным и я решил его сделать, не для них, а для себя. Написать апишку, подключить бота и всё такое, ума много не надо, это чуть ли не банальности... Сложность возникла с парсингом, а именно с защитой от парсинга на сайте озона.
В ТЗ упомянут Beautiful Soup, но как парсить им, если на сайте защита и для обхода подойдёт только модифицированный селениум? И то с оговорками? Вот просидев над этим вопросом денёк, я сперва нашёл способ обхода защиты, как раз таки селениумом, а потом мне подсказали идею, развив которую я смог отказаться от тяжёлого селениума в пользу лёгкого супчика)

В итоге тестовое было сделано и.... А не будет кода) Я не хочу давать им халявные способы обхода. У них и так на гитхабе полно желающих...

Отправил им ссылку на репозиторий с ридми и скриншотиками:
https://github.com/proDreams/proDreams-test-o-parser

Жаль, конечно, что код уйдёт "в ящик", но было интересно)
🔥71👏1