ITDEAL
1.11K subscribers
749 photos
108 videos
11 files
572 links
Разработка комплексных IT решений для бизнеса и частных заказчиков.

Чат: @pybytes_chat

Founder: @lunasantrope
Download Telegram
🚀🌐 ВАКАНСИЯ: FrontEnd Developer (JavaScript) 🌐🚀


Требования к кандидату:
➡️ JavaScript/ES6+: Глубокие знания и опыт в разработке на чистом JavaScript и современных стандартах ECMAScript.
➡️ Фреймворки: Уверенное владение React.js и/или Vue.js. Опыт работы с другими фреймворками – большой плюс!
➡️ HTML5 & CSS3: Продвинутые навыки в создании современных и отзывчивых интерфейсов.
➡️ RESTful API: Опыт работы с взаимодействием фронтенда с бэкендом через RESTful API.
➡️ Сборщики и модульные системы: Знание инструментов типа Webpack, Babel и понимание модульных систем (CommonJS, ES6 Modules).
➡️ Git: Навыки работы с системами контроля версий, в том числе опыт с Git.


Будет плюсом:
➡️ Тестирование кода: Знание и опыт в написании модульных и интеграционных тестов.
➡️ Опыт работы с GraphQL: Понимание и практический опыт работы с GraphQL API.
➡️ Английский язык: Хорошее понимание технической документации на английском.


Софт-скилы:
➡️ Коммуникабельность: Способность четко и эффективно общаться в команде.
➡️ Работа в команде: Опыт работы в командной среде, умение слушать и высказывать свое мнение.
➡️ Самостоятельность: Готовность принимать ответственность за свою работу и принимать инициативу.


🐱 Оклад: 1000$ / месяц


🤖 Контакты @lunasantrope
Please open Telegram to view this post
VIEW IN TELEGRAM
2
This media is not supported in your browser
VIEW IN TELEGRAM
Doitlive | Живые презентации в терминале

🖥 Doitlive — это Python инструмент для живых презентаций в терминале. Он читает файл команд (.sh file) оболочки и воспроизводит команды в поддельном сеансе терминала, когда вы вводите случайные символы.

🔤 Для быстрого старта нужно скачать инструмент (поддерживается pip), создать файл команд и использовать команду в терминале — doitlive play your_file.sh.

📌 После этого вы можете печатать абсолютно любые символы — doitlive сделает все сам. Помимо обычных команд инструмент поддерживет автонабор в консоли Python.

🔝 PyBytes Media | Telegram / 📷Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
Desktop Cat Cursor

💲 Desktop Cat Cursor — платный проект, который меняет штатный курсор на мимишную кошачью лапку в Windows 10/11. С учетом скидки стоимость составляет $1.49.

😭Теперь у Windows-юзеров есть, чему можно завидовать. (но это пока, скоро обещают и на Mac)

🔝 PyBytes Media | Telegram / 📷Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Совпадение?

🔝 PyBytes Media | Telegram / 📷Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
ИИ в Gmail

🧠 На конференции Google I/O компания анонсировала интеграцию Gemini в почтовый сервис Gmail. ИИ сможет анализировать содержание писем, извлекать ключевую информацию, формулировать варианты ответов, генерировать новые email.

🔤 В общем Gemini будет способен взять на себя всю «тяжёлую работу».

💲 Однако интеграция Gemini в Gmail произойдет только в конце 2024 года или даже позже. При этом доступ будет платным и составит $19,95 в месяц в рамках подписки Google AI Premium.

🔝 PyBytes Media | Telegram / 📷Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
32
Logging | Логирование в Python (часть 1)

🐍 Логирование (logging) — это журналирование событий, которое помогает наладить отладку. Для этого, возможно, вы привыкли пользоваться командой print(), выводя определённые значения. Однако в более крупных проектах вам понадобится постоянный журнал, содержащий больше информации о поведении кода. В таком случае вам поможет встроенный модуль — logging.

🖥 Для начала стоит разобраться, какие уровни логирования предусматривает logging: всего их 6. Чем выше уровень — тем серьёзнее неприятность. Уровни выглядят так:

🔤 NOTSET — самый низкий уровень. Означает, что логгер не имеет собственного уровня и будет наследовать уровень от родительского.
🔤 DEBUG — уровень логирования, предназначенный для подробной информации. Обычно представляет интерес только для разработчика.
🔤 INFO — подтверждение того, что все работает так, как ожидалось.
🔤 WARNING — указание на то, что произошло что-то неожиданное или что в ближайшем будущем может возникнуть проблема. (код все еще работает правильно)
🔤 ERROR — из-за серьезной проблемы код не смог выполнить некоторые функции.
🔤 CRITICAL — серьезная ошибка, указывающая на то, что программа скорее всего не сможет продолжить работу.

📌 Вывод сообщений происходит, основываясь на такой синтактической конструкции — logging.<level>(<message>). В коде выше представлены основные примеры.

🔝 PyBytes Media | Telegram / 📷Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Python присутствует везде

🔝 PyBytes Media | Telegram / 📷Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Logging | Логирование в Python (часть 2)

🐍 Вывод сообщений в консоль, конечно, полезно, однако для наибольшего удобства сообщения о логировании стоит записывать в отдельный файл. С этим нам поможет функция basicConfig(**kwargs) встроенного модуля logging.

🖥 Основные параметры функции выглядят так (полный список можно найти ТУТ):

🔤 Level — все сообщения ниже этого уровня не буду записываться.
🔤 Filename — имя файла для записи.
🔤 Filemode — режим открытия файла, по умолчанию — добавление (a - append).
🔤 Format — формат сообщения (все атрибуты ТУТ).

📌 Вывод логов в файл поможет отслеживать ошибки быстрее, однако стоит подобрать уровень логирования, который соответствует специфике вашего проекта. Вывод в лог сообщений о всех событиях — не самая удачная стратегия.

🔝 PyBytes Media | Telegram / 📷Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Tartufo | Секреты в репозитроиях git

🐍 Tartufo — это Python инструмент, который ищет случайно оставленные токены или учетные данные, глубоко копаясь в истории коммитов и бранчах. Может быть полезен при проверке перед конечной отправкой в репозиторий.

🖥 Этот инструмент проверяет все различия от каждого коммита и проверяет наличие данных. Проверка происходит за счет регулярных выражений и энтропии.

🔝 PyBytes Media | Telegram / 📷Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Пересечение таблиц в SQL

🔝 PyBytes Media | Telegram / 📷Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Telegram боты с Python (часть 1)

Telegram — это чудесная платформа, в которой есть специальное API для создания ботов: Telegram Bot API. Отправлять голые HTTP-запросы не самая приятная вещь, поэтому мы с вами разберем азы асинхронной Python библиотеки — aiogram.

👀 В первую очередь нужно обратится к отцу всех ботов — @BotFather. Там, используя команду /newbot, вы сможете создать своего первого бота, в конце концов вы получите его токен. Токен выглядит таким образом: 12345678:AaBbCcDdEeFfGgHh (ни в коем случае не показывайте его другим).

🥳Теперь можно приступать к написанию кода, мы не будет писать эхо-бота, а сделаем бота, отправляющего пользователю его ID. В основном все держится на хэндлерах, обработчиках событий, которыми управляет диспетчер. В нашем случае главный хэндлер выглядит так:

@dp.message(Command("start"))
async def cmd_start(message: types.Message):
user_id = message.from_user.id
await message.answer(f"Hello! Your ID is: {user_id}")


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

🔝 PyBytes Media | Telegram / 📷Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
4
This media is not supported in your browser
VIEW IN TELEGRAM
3
Отдыхаю после стрима)
8
Telegram боты с Python (часть 2)

👀 Как отправлять текстовые сообщения в общих чертах понятно, однако, как обстоят дела с медиафайлами? Если кратко, то главное отличие — это наличие file_id и file_unique_id. Первый используется для повторной отправки, а второй нужен, когда нескольким ботам требуется знать, что их file_id относятся к одному файлу. К примеру, такой хендлер заставит бота моментально ответить гифкой, которая была прислана:

@dp.message()
async def echo_gif(message: Message):
await message.reply_animation(message.animation.file_id)


В 3-ей версии aiogram есть три класса для отправки файлов:

🔤 FSInputFile — для отправки из системы.
🔤 BufferedInputFile — для отправки из буфера (к примеру, после обработки через Pillow).
🔤 URLInputFile — для отправки по ссылке.

🙂 Если мы хотим послать альбом, то, начиная с версии 3.1, в aiogram есть класс «сборщик альбомов» — MediaGroupBuilder. В Telegram альбомы на самом деле это отдельные сообщения медиа с общим media_group_id. Код ниже создаст альбом из двух фото с общей подписью.

media_group = MediaGroupBuilder(caption="Some text")
media_group.add_photo(media="photo_link_1")
media_group.add(type="photo", media="photo_link_2")


💬Кстати смешивать между собой в одном альбоме можно только видео и фото. Всего с одном альбоме может быть не больше 10 медиафайлов.

🔝 PyBytes Media | Telegram / 📷Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
4
🚀🌐 ВАКАНСИЯ: Project Manager (PM)


Обязанности и задачи:

➡️ Ведение документации по проектам команды
➡️ Умение объяснять и доносить до команды структуру проекта
➡️ Умение создавать блок-схемы для проектов
➡️ Ведение переговоров с клиентами компании
➡️ Ведение JIRA для разработчиков и распределение задач
➡️ Создание недельной отчетности по готовности проектов
➡️ Проведение дэйли-митингов с командой для контроля задач
➡️ Выявление дополнительных функциональных требований
➡️ Грамотное распределение ресурсов команды по проектам
➡️ Слаженная работа в команде
➡️ Ведение графика загруженности разработчиков по проектам


Требования к кандидату:

➡️ Понимание IT услуг, инфраструктурных решений, программного обеспечения в B2B, B2G сегменте от 3 лет
➡️ Опыт работы с веб-проектами, понимание современных веб-технологий
➡️ Опыт работы с крупными корпоративными и/или государственными заказчиками (будет плюсом)
➡️ Уверенные коммуникативные навыки, умение работать в команде, ориентация на результат
➡️ Стремление к развитию компании и себя по карьерной лестнице


Ключевые навыки:

➡️ Организация командной работы
➡️ Стрессоустойчивость
➡️ Разработка системы премирования и штрафов
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Навыки переговоров
➡️ Знание английского от B2


Оклад: от 1000$ / месяц



🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
🚀🌐 ВАКАНСИЯ: Human Resources (HR)

Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых кадров! 🚀
Оклад: от 700$ / месяц 💲


Обязанности и задачи:

➡️ Наём новых сотрудников в компанию.
➡️ Создание кадрового резерва.
➡️ Организация стажировок и адаптация новых кадров.
➡️ Мониторинг и анализ рынка труда.
➡️ Устранение эмоциональных проблем внутри коллектива.
➡️ Контроль за уровнем знаний работников.
➡️ Организация обучения сотрудников.
➡️ Координирование работы по повышению квалификации.
➡️ Составление трудовых договоров и ведение личных дел сотрудников, выявление КПД.
➡️ Проведение кадровых перестановок.
➡️ Подготовка предложений по распределению бюджетных средств на решение вопросов, связанных с отделом кадров.


Ключевые навыки:

➡️ Организация командной работы
➡️ Стрессоустойчивость
➡️ Разработка системы премирования и штрафов
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Навыки переговоров
➡️ Знание английского от B2


🤖 Контакты @lunasantrope


🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Telegram боты с Python (часть 3)

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

🙂 Для этого нам поможет FSM (Finite State Machine), где бот будет «включать» режим ожидания определённой информации, т.е. переходить в другое состояние. Для хранения данных между этапами используем самый простой бэкенд MemoryStorage, который хранит все данные в оперативной памяти (список бэкендов ТУТ).

🙂 Самое главное — это описать эти состояния, можно сделать так:

class OrderFood(StatesGroup):
choosing_food_name = State()
choosing_food_size = State()


📌 После нажатия определенной команды (в нашем случае /food) бот сначала будет вставать в состояние choosing_food_name, т.е. ждать выбора блюда, а потом он будет входить в состояние choosing_food_size, т.е. ждать выбора размера блюда. Для обработки каждого состояния нужен свой хэндлер. Также помимо обычного сообщения в такой хендлер необходимо прокинуть аргумент состояния (state).

Если вы хотите попробовать свои силы с FSM, то можете реализовать выбор, к примеру, напитков. Документация aiogram ТУТ.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
GPT-5 от OpenAI

🧠 На конференции Microsoft генеральный директор OpenAI Сэм Альтман представил тизер грядущей модели GPT-5. Согласно его заявлению, новая модель будет в 30 раз мощнее своего предшественника. Она обещает стать революционным прорывом и должна превзойти GPT-4 по всем параметрам.

👀 Кстати теперь Microsoft сотрудничает с OpenAI и некоторые исследователи считают, что шанс побега GPT-5 из-под человеческого контроля — 22%.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
SOLID | Принципы программирования (часть 1)

🖥 SOLID — это 5 основных принципов объектно-ориентированного программирования, которые смогут сделать код более читаемым и гибким, а также уменьшат риск ошибок. Их предложил Роберт Мартин (также известный как Дядя Боб), и они расшифровываются следующим образом:

🔤 S – Принцип единственной ответственности (Single Responsibility Principle)
🔤 O – Принцип открытости/закрытости (Open‐Closed Principle),
🔤 L – Принцип подстановки Барбары Лисков (Liskov Substitution Principle),
🔤 I – Принцип разделения интерфейсов (Interface Segregation Principle),
🔤 D – Принцип инверсии зависимостей (Dependency Inversion Principle).

🚶‍♀️ Мы пойдем по порядку и сначала разберем принцип единственной ответственности. Принцип говорит, что у каждого класса должна быть только одна «ответственность» и он не должен брать на себя другие обязанности.

🥸 То есть, к примеру, мы реализуем класс заказа Order, методом которого является расчет общей стоимости. Если мы хотим добавить в код сохранение заказа в базу данных, то логичней будет реализовать новый класс, который будет отвечать за работу с БД, а не добавлять сохранение данных в класс Order.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2