Pull to refresh
0
0
Андрей @andy2000

User

Send message

Telegram Web App, FastAPI и вебхуки в одном приложении: Создаем Telegram-бот с веб-интерфейсом для приема заявок

Reading time49 min
Views14K

Сегодня мы создадим полноценное веб-приложение на FastAPI, которое будет взаимодействовать с Telegram-ботом через MiniApp и вебхуки. В основе проекта — асинхронное взаимодействие с базой данных SQLite с помощью SQLAlchemy, что позволит нам реализовать масштабируемое и эффективное приложение.

Наше приложение будет включать как фронтенд, так и API методы для обработки запросов. Все взаимодействия с Telegram-ботом будут осуществляться через вебхуки, что обеспечит быструю и надежную связь. Важным аспектом является то, что мы будем использовать FastAPI для поднятия бота, что позволит интегрировать все компоненты в одном приложении.

Для разработки самого бота мы воспользуемся библиотекой Aiogram 3, которая обеспечит удобный и мощный интерфейс для взаимодействия с Telegram API. Это позволит нам быстро реализовать необходимые функции и сделать процесс разработки более эффективным.

Читать далее
Total votes 19: ↑17 and ↓2+18
Comments9

Простая установка последнего Microsoft Office с сохранением всех прежних настроек? Без торрентов и блокировок в России?

Level of difficultyMedium
Reading time5 min
Views31K

Пару месяцев назад я писал статью Как загрузить, установить Office 2024 LTSC с сайта Microsoft и активировать навсегда? / Хабр (habr.com) о том, каким образом осуществить загрузку и установку Microsoft Office LTSC 2024 средствами Microsoft Office Deployment Tool. У этого метода главное преимущество в использовании «родного» инструмента, что многих радует. Однако, в связи с блокировкой загрузок с CDN Microsoft для России напрямую требуются обходные пути, да и работа с командной строкой и ручным изменением каких-то XML файлов не всем оказалась близка.

Сегодня я расскажу и на примере покажу, как установить последнюю версию Приложений Microsoft 365 для Предприятий (Microsoft Apps 365 for Enterprise), о том, чем отличается этот пакет приложений от традиционного коробочного (Retail) Microsoft Office и долгосрочной (LTSC) версии, а также о том, как обновить ваш установленный Microsoft Office 2013/2016/2019/2021/2024 (ненужное вычеркнуть) до Приложений Microsoft 365 для Предприятий, разумеется, не забудем и про Project и Visio.

Я буду рассматривать только установки поверх Windows 10 и Windows 11 (и Windows Server 2016+). Дело в том, что Windows 7 давно не поддерживается, официально на нее выходил лишь Office 2016, есть способ установки Office 2019 без возможности обновлений, но это не то о чем сейчас будет речь, – если к этому есть реальный интерес, обсудим в комментариях. Также прошу ответить в комментариях, интересна ли кому-нибудь инструкция по установке последнего пакета Microsoft 365 Office Suite для Mac, разумеется, с сайта Microsoft.

Читай как легко установить Office в России
Total votes 34: ↑33 and ↓1+41
Comments57

Чиним роутер Xiaomi 4С и ставим OpenWRT

Level of difficultyMedium
Reading time5 min
Views22K

Попалась мне эта занятная железка в результате денежно-товарного обмена на одном известном всем сайте с предметами, бывшими в употреблении. Всего за 150 рублей и с пометкой «не работает, вскрыт после попытки ремонта» я приобрёл роутер Xiaomi Router 4C. Железка уже не новая, далеко не лучшая в плане характеристик, да ещё и мёртвая. «Что же с ней можно сделать?», — спросите вы.

А, как оказалось, очень многое. О её ремонте и прошивке можно почитать далее в статье.
Читать дальше →
Total votes 40: ↑39 and ↓1+57
Comments36

Книга: «PowerShell: практическая автоматизация»

Reading time20 min
Views20K
image Привет, Хаброжители!

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

Вы узнаете, как создавать скрипты PowerShell для автоматизации локальных и облачных систем. Найдете советы по определению задач, которые стоит автоматизировать, по организации структуры скриптов и управлению ими, а также множество примеров кода с подробными пояснениями. Научитесь адаптировать уже готовые скрипты к новым условиям применения и упрощать работу специалистов не-технического профиля при помощи простых и понятных интерфейсов SharePoint.
Читать дальше →
Total votes 7: ↑7 and ↓0+9
Comments7

Домашний сервер на базе Proxmox

Level of difficultyEasy
Reading time9 min
Views43K

Привет! Меня зовут Александр Щербаков. Я DevOps команд страхования в Банки.ру. На своём карьерном пути я успел поработать эникейщиком, системным администратором и, наконец, DevOps‑инженером с несколькими командами разработки. Как и любой инженер, я стремлюсь постоянно совершенствоваться: получать новые знания, изучать как устоявшиеся, так и только появившиеся технологии.

И здесь сразу появляется главная проблема — для развития DevOps нужна среда, где можно запускать ПО для исследования. Разработчикам проще: открыл документацию, скачал IDE, начал пробовать и изучать новую технологию. А вот DevOps‑инженеру одной только IDE будет мало, так как часть его работы как минимум завязана на Linux серверах. Поэтому важно не просто знать, как использовать готовые решения, но и понимать, как они функционируют на уровне инфраструктуры.

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

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

Читать далее
Total votes 54: ↑52 and ↓2+58
Comments139

Магия CSS на практике: советы по вёрстке от гика

Level of difficultyMedium
Reading time8 min
Views17K


Хабр, привет! Я частенько пишу про работу CSS, его неизвестные возможности и влияние на доступность. Кажется, этих направлений мало для меня. Теперь я хочу показать техники вёрстки, используемые мной постоянно.


Цель — поделиться опытом с вами. Я использую не только трюки известных экспертов, есть лично мои придумки. Но, пожалуйста, относитесь к этому контенту, как просто альтернативному мнению. Мои техники не являются единственными правильными решениями.


Сегодня я расскажу:

  • как избавиться от соседнего родственного комбинатора + при реализации нестандартных чекбоксов и радиокнопок;
  • про свойство inset, сокращающее код на целых три строки;
  • мой сниппет для расширения интерактивной области у кнопок и ссылок;
  • стиль написания медиа-запросов, позволяющий сократить количество правил;
  • альтернативный способ центрирования элемента без свойства transform.
Читать дальше →
Total votes 39: ↑39 and ↓0+54
Comments9

Простой пример использования Symfony Messenger

Level of difficultyEasy
Reading time6 min
Views4K

Пришёл и мой черёд асинхронно и многопоточно средствами PHP кое-что пообрабатывать… И я, естественно, вспомнил про компонент Messenger фреймворка Symfony.

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

Всё, что находилось, было либо слишком сложным, либо это были какие-то отдельные куски кода, понятные только тем, кто уже работал с Symfony Messenger. К тому же всё, что находилось, в основном было "заточено" либо под Redis, либо под RabbitMQ. установка которых как-то немного перебор для учебного примера…

В-общем, я создал и выложил на GitHub такой простой, законченный и самодостаточный пример работы Symfony Messenger совместно с Symfony Console.

Посмотреть пример работы Symfony Messenger
Total votes 8: ↑8 and ↓0+12
Comments0

DivKit теперь и для Flutter. Рассказываем об особенностях BDUI-фреймворка Яндекса

Level of difficultyMedium
Reading time14 min
Views7.3K

Полтора года назад мы выпустили в опенсорс DivKit — фреймворк для отрисовки интерфейсов из ответа сервера. На тот момент он уже прошёл проверку временем внутри компании и применялся в приложении Яндекс, Алисе, Маркете, Едадиле и других сервисах. С тех пор инструмент прошёл длинный путь. И сегодня у нас по-настоящему важная новость: мы выпускаем в свободный доступ долгожданный клиент для Flutter.

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

Читать далее
Total votes 26: ↑25 and ↓1+29
Comments3

Llama 3.1-70b в своем Телеграм боте — бесплатно, безлимитно и всего 20 строк кода

Level of difficultyEasy
Reading time2 min
Views39K

Да, всего 20 строк кода и бот:

1) по качеству ответов будет соизмерим с ChatGPT-4o;
2) будет отвечать очень быстро т.к. подключим мы его через Groq который в среднем в 10 раз быстрее других аналогичных сервисов;
3) будет поддерживать диалог и запоминать последние сообщения.

Читать далее
Total votes 50: ↑40 and ↓10+38
Comments102

Мегагайд: культура работы с Git

Level of difficultyEasy
Reading time16 min
Views35K

Привет всем! Меня зовут Юля, я фронтенд-разработчик, наставник на курсах по JS и React и организатор профессионального сообщества Tbilisi JS. В Практикуме я помогаю студентам на курсе «React-разработчик».

За время работы в разных компаниях и над разными проектами я поняла, что Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.

Поговорим как раз об этом — о том, что формирует культуру работы с Git: начнём с конвенций именования коммитов и закончим практиками работы в пуллреквесте. В конце статьи я поделюсь полезными ссылками на интерактивные обучалки, шпаргалки и гайды.

Читать далее
Total votes 36: ↑31 and ↓5+31
Comments23

Самые полезные библиотеки JS для красивых анимаций

Reading time5 min
Views16K

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

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

Мы поговорим о библиотеках JavaScript упрощающих добавление этих анимаций для разработчиков, делая приложения более приятными.

Приятного прочтения :-)

Читать далее
Total votes 31: ↑31 and ↓0+32
Comments6

Навигация по страницам | Flutter

Level of difficultyMedium
Reading time16 min
Views3.1K

Привет, если вы на пути изучения Flutter/Dart или вам просто интересно почитать про путь изучения, подписывайтесь на мой канал в telegram, буду рад вас видеть! А сегодня поговорим про организацию данных на экране во Flutter!

Содержание:
1. Навигация по страницам с Routes (Imperative)
2. Навигация по страницам с Routes (Declarative)
3. Реализация Navigation Drawer
4. Работа с вкладками
5. Добавление нижней панели навигации
6. Использование ключей для передачи информации

Сим-сим откройся!
Total votes 1: ↑1 and ↓0+1
Comments0

Практический пример декомпозиции монолитного PHP приложения

Level of difficultyMedium
Reading time26 min
Views9.5K

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

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

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments6

Самый простой CI/CD пайплайн для flutter приложения с Codemagic. Часть 1

Level of difficultyEasy
Reading time4 min
Views1.7K

Допустим, вы являетесь разработчиком на каком-нибудь небольшом проекте. Есть только ограниченный доступ в App Store Connect и Google Play. Это такие ограничения, как подписание сборок, публикация в маркеты.

Их, конечно, можно обойти, если почитать документацию и сделать необходимые сертификаты и профайлы (в случае с iOS) или используя оригинальный jks файл и пароли к нему (в случае с Android). Для этого, как правило, нужно пнуть владельца этих аккаунтов.

Данная статья будет вам полезна, если вы увидите себя хотя бы в одном из перечисленных случаев:

1. Процесс сборки под iOS или Android занимает слишком много времени и ресурсов вашего компьютера
2. На проекте есть другой разработчик, который активно занят проектом и день через день вносит какие-то изменения, но только вы можете сделать сборку
3. Ваш проджект менеджер попросил отправить очередную сборку тестировщикам, но вы не имеете доступ к своему компьютеру

Это будет подробный туториал с множеством скриншотов.

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments1

Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы

Level of difficultyMedium
Reading time8 min
Views4.4K

Сегодня хочу рассказать о том, какие ошибки можно допустить на начальном этапе создания e-commerce проекта в проектировании модели данных и в разработке веб-приложения. И, самое главное, как эти ошибки исправить: снизить потребление памяти в 1000 раз и кратно уменьшить нагрузку на дисковую систему. Кейс основан на реальных событиях, однако без упоминания компаний в связи с политикой конфиденциальности и профессиональной этикой.

Читать далее
Total votes 26: ↑26 and ↓0+26
Comments5

Next.js. Технология современной веб-разработки

Level of difficultyMedium
Reading time16 min
Views39K

Современная веб-разработка требует эффективных инструментов, способных справляться с высокими стандартами производительности и пользовательского опыта. В этой статье мы рассмотрим Next.js, мощный JavaScript-фреймворк и новаторское решение для создания современных веб-приложений на основе React, созданный компанией Vercel. Узнаем, как он помогает разработчикам создавать высокопроизводительные, масштабируемые и SEO-дружественные веб-приложения. Мы также глубоко погрузимся в его функциональность, рассмотрим особенности, такие как серверный рендеринг и генерация статических сайтов, и предоставим примеры использования. Давайте разберем, как Next.js становится ключевым инструментом в современной веб-разработке, обеспечивая идеальный баланс между разнообразием функций и оптимальной производительностью.

Читать далее
Total votes 8: ↑5 and ↓3+3
Comments5

Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие

Level of difficultyMedium
Reading time16 min
Views226K

В предыдущей статье “Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria и все-все-все” я рассказывал про прокси-протоколы. Теперь настало время рассказать про клиенты: консольные, GUI для десктопа и для мобильных платформ. 

Надеюсь, что эта статья вам окажется полезной, потому что, как выяснилось, найти хороший клиент даже для тех же V2Ray/XRay в наше время не так-то просто. Потому что большая часть того, что находится при поиске в интернете “в лоб” и даже в списках типа Awesome V2Ray - или уже неподдерживаемое, или довольно кривое, или не умеющее в актуальные версии и фичи (например, XTLS и uTLS), а самые жемчужины прячутся где-нибудь в глубинах Github’а и сторов.

Читать далее
Total votes 49: ↑48 and ↓1+56
Comments52

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

Reading time20 min
Views383K

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

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

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

Читать далее
Total votes 126: ↑124 and ↓2+153
Comments136

Xray на Keenetic / Xkeen

Level of difficultyEasy
Reading time9 min
Views105K

Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.

Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.

Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.

Ознакомиться с Xkeen
Total votes 23: ↑22 and ↓1+30
Comments33

Погружение в мир адаптивной верстки с Flutter

Level of difficultyMedium
Reading time12 min
Views9.7K

Я Магин Максим, Flutter-разработчик агентства мобильной разработки Instadev. Поговорим о таком понятии как “адаптивная верстка”. Разберем, для чего она нужна, чем отличается от других видов верстки и какие подводные камни могут встретиться при использовании.

Каждый разработчик так или иначе сталкивался с вопросом - как сделать качественный UI, который будет хорошо себя показывать на различных устройствах. Даже среди смартфонов существует большое разнообразие размеров – одни шире, другие – длиннее. Понятное дело, что для каждого устройства уникальный код не напишешь. А что делать, если среди устройств необходимо учесть еще и планшеты, где действуют уже другие правила расположения и масштабирования элементов? Есть ли универсальное решение? Но обо всем по порядку.

Для того, чтобы понять, каким образом следует выстроить процесс формирования UI приложения, для начала необходимо разобраться, какие подходы используются в принципе.

Существует 4 основных подхода к верстке: фиксированный, резиновый, адаптивный и отзывчивый. Каждый из этих подходов имеет свои плюсы и минусы. Разберем их чуть подробнее.

Фиксированный подход

Его суть  заключается в том, чтобы задать жесткие размеры и расстояния для всех элементов, отображаемых на экране. Иными словами мы “фиксируем” положение каждого виджета на экране. Преимущество очевидно – мы всегда знаем величину того или иного используемого элемента. С другой стороны, если мы возьмем устройство, которое хоть немного отличается размером от того, на котором мы производим тесты, все наши расчеты оказываются неподходящими для него: в лучшем случае, может появиться больше пустого пространства или, наоборот, элементы сильно прижмутся друг к другу, в худшем – мы получим ошибку рендеринга. Это говорит нам о том, что в чистом виде данный подход лучше не использовать.

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments4

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity