Обновить
552.66

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Делаем PageObject правильно. Удешевляем тестирование и снижаем порог вхождения

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели22K

Привет, меня зовут Коля, занимаюсь тестированием 7 лет, автоматизацией — 6 лет. Так уж сложилось, что не особо люблю WebUI-тесты, но почему-то именно они у меня получаются лучше всего.

В один день мне позвонил мой друг Рома и сказал: «Коля, помнишь ты у нас автотесты делал с селениумом? Помоги мне сделать так же красиво».

Отправив Роме ссылку на свой гитхаб и устроив пару созвонов с объяснениями, что и как работает, я добился от него заветного «Я понял». 

Спустя два дня Рома позвонил снова: «Коля, я всё понял, а вот ребята в моей команде — нет. Помоги мне объяснить им».

Внутри я расскажу от том, как:

ускорить написание тестов;

снизить затраты на их поддержку;

прокачаться в написании фреймворков;

сэкономить деньги компании;

сохранить нервы сотрудников.

Читать далее

Авторизация в CLI приложении с помощью OAuth

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.5K

Как выглядит процесс авторизации через OAuth в Command-line interface приложении? В стандартном сценарии провайдер перенаправляет обратно на сайт или в мобильное приложение (в случае с OAuth 2), а как перенаправлять в программу в терминале?

В статье будет рассмотрен процесс OAuth авторизации в CLI приложении на примере HeadHunter.

Читать далее

Компилятор за выходные: синтаксические деревья

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели33K

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

Читать далее

Undocumented endpoint или попытки борьбы с имитацией активности «пользователя»?

Уровень сложностиСредний
Время на прочтение1 мин
Охват и читатели3.9K

По заявлению ВКонтакте, у метода wall.repost нет возможности отложить репост и появление данной функции в будущем не планируется. Но этот функционал реализован при использовании социальной сети непосредственно оператором.

Несправедливо!

keep digging

Как мы решали вопрос многоязычности в боте

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.8K

Русский или English? Что для бота хорошо, то разработчику работа :)

Введение

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

Постановка Задачи

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

Читать далее

Кто будет после нас

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.9K

Да, наши дети взрослеют, становятся старше и встает вопрос - кем они будут и какие знания мы им можем передать.

решили мы с сыном написть Telegram бот...

CodebaseGPT = ChatGPT для целого программного проекта

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели9.1K

CodebaseGPT — это приложение, которое позволяет разработчикам "общаться" с полной кодовой базой программного проекта.

Главная особенность CodebaseGPT заключается в том, что он создает краткие описания каждого файла проекта и предоставляет эти описания LLM в первом системном промпте. Таким образом, модель имеет обобщенную информацию обо всем проекте в своем контексте на каждом этапе общения с пользователем.

Читать далее

Строительные кирпичики в языках программирования

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7K


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


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


И под впечатлениями от обсуждения предыдущей статьи я задался вопросом, а существует ли минимальный набор лексем, операторов или синтаксических конструкций, с помощью которых можно построить произвольную грамматику для современного языка программирования общего назначения?

Читать дальше →

Ускоряем работу python с numba

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели26K

Привет, Хабр!

Numba — это Just-In-Time компилятор, который превращает ваш код на питоне в машинный код на лету. Это не просто мелкая оптимизация, а серьёзно ускорение.

Если вы знакомы с интерпретируемыми языками, вы знаете, что они обычно медленнее компилируемых из-за необходимости анализировать и исполнять код на лету. Но что, если бы вы могли получить лучшее из обоих миров? JIT-компиляция позволяет интерпретируемому языку, каким является Python, динамически компилировать части кода в машинный код, значительно ускоряя исполнение.

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

Читать далее

Даём нейро-сотруднику на ChatGPT управлять календарем Google через Telegram бот

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели16K

Куда только уже этот ChatGPT не прикрутили с момента его появления. Возможно я изобрету велосипед, но мне показалось удобным сделать нейро-сотрудника в виде бота Телеграм, который бы поддерживал голосовой ввод и управлял вашим календарем в Google.

Читать далее

RabbitMQ как способ масштабирования ML проекта

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.4K

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

Весь код в статье написан для OpenSource проекта по детекции синтетического текста raisontext в рамках курса ML System Design от ODS.

Показать больше

Как мы запускали серьезный проект в Telegram

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели16K

В этом цикле статей я подробно расскажу о процессе создания моего нетривиального телеграм-бота World for Life Bot. Этот бот представляет собой уникальный инструмент, который предоставляет обширную статистику о стоимости жизни в разных уголках мира, помогая пользователям оценивать и сравнивать уровень жизни в различных городах.

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

Читать далее

Биржа криптовалюты своими руками, или как мужики crypto бота разрабатывали

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели10K

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

_("Посмотреть, что там")

Ближайшие события

Flask для начинающих — Часть 2 пишем landing page+admin panel с редактированием контента

Уровень сложностиПростой
Время на прочтение40 мин
Охват и читатели57K

Здравствуйте! Меня зовут Михаил, и я пишу эту статью специально для начинающих программистов, желающих изучить основы веб-разработки с использованием Flask.
 Я сам активно занимаюсь разработкой проектов на Flask и хочу поделиться своими знаниями и опытом, чтобы помочь вам начать свой путь в мире веб-разработки.

Flask для начинающих - Часть 2 создание Веб проекта.

Мы создадим с вами мини проект - веб сайт с админ панелью и обновлением контента сайта. При помощи Python, HTML, CSS, Bootstrap, Flask, SQLite.

создать сайт на Flask

Может ли нейро-сотрудник на базе ChatGPT звонить по обычной телефонной линии?

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели12K

Продолжаем создавать нейро-сотрудников на базе ChatGPT и пробовать их в разных каналах коммуникаций.

В этот раз мы решили дать нейро-сотруднику возможность отвечать по обычной телефонной линии или самому делать исходящие вызовы исходя из свой системной роли. Интересно что получилось?

Читать далее

Агрегатор личных финансов со всех счетов

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели17K

Всем привет!

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

Читать далее

Генерация ответов с расширенным поиском в техподдержке на основе YandexGPT, ChatGPT

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели15K

Статья посвящена рассмотрению процесса создания системы генерации ответов службы технической поддержки. Для этого используется методика с расширенным поиском, известная как Retrieval-Augmented Generation (RAG). Процесс основан на использовании шаблонов и реальных вопросов-ответов техподдержки. В качестве основных инструментов применяются YandexGPT / ChatGPT и ChromaDB.

Читать далее

Автоматизируем торговлю криптой на бирже, ещё и на DEX

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели12K

Привет, Хабр! В этой статье я делюсь инструментами, которые позволили эффективно создать автоматизированную систему торговли (АСТ) криптовалютой на централизованной (CEX) и децентрализованной (DEX) биржах. Система вышла в продакшн в начале 2022 года и работала только на централизованных биржах. После того как летом 2023 года правительство США начало блокировать работу криптобирж для граждан США, было принято решение о подключении децентрализованной биржи, так как децентрализация не требует проходить KYC.

Итак, начнём!

Читать далее

Создание простого и работоспособного генетического алгоритма для нейросети с Python и NumPy

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели16K

Генетический алгоритм нужен, когда ты знаешь параметры своей нейросети, но не знаешь, что должно получиться на выходе, например, этот алгоритм можно использовать для игры в Google динозаврика или Flappy Bird, потому что там ты не знаешь, что должно быть на выходе, но у тебя есть возможность сортировать наиболее жизнеспособные варианты, например по времени, это называется фитнес функций.

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

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

Вначале нам потребуется импортировать модули:

Читать далее

Плагин на LibreOffice с Gigachat API

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.5K

В этой статье пойдет речь о решении, позволяющем упростить написание текстов при работе с офисным пакетом LibreOffice. Мы разработали плагин, который позволяет работать с текстом с помощью большой языковой модели GigaChat от Сбер.

Читать далее

Вклад авторов