
Бот - для работы с репозиторием проекта в BitBucket.
Приветствую любителей ботов :-) Позвольте представить вашему вниманию бота для работы с репозиторием проекта в BitBucket.
Краткое описание моих скромных трудов.
Пользователь
Бот - для работы с репозиторием проекта в BitBucket.
Приветствую любителей ботов :-) Позвольте представить вашему вниманию бота для работы с репозиторием проекта в BitBucket.
Краткое описание моих скромных трудов.
Относительно недавно команда Telegram выпустила обновление, с которым появилась возможность встраивать в мессенджер веб-приложения. Эта статья — обзор основных моментов внедрения веб-приложениий в телеграм-ботов.
Необходимость добавить возможность оплаты чего-либо в своём проекте всплывает достаточно часто, при этом возня с ИП, банковскими договорами и прочей бюрократией мало кого привлекает, особенно если масштабы проекта сопоставимы с небольшим telegram-ботом или чем-то подобным. На помощь приходят такие сервисы как QIWI, ЮMoney и другие (не рекламирую, просто нахожу удобным для себя).
Подход прочитать документацию API такого сервиса, написать небольшой модуль и использовать в своих проектах - лучший путь, но начинающие программисты зачастую находят это нудным, сложным и ищут простое готовое решение. Так и я решил когда-то и не нашёл, а теперь вместо переписывания одного модуля по 100 раз решил собрать небольшую библиотеку для быстрой интеграции платежей QIWI.
Резервное копирование репозиториев с git серверов на основе github и gitlab по токену. Скрипт скачивает все Ваши репозитории доступные по токену и архивирует их. Давно хотел написать такой инструмент т.к. использую и те и те сервера в работе и личных целях. У меня полно старых проектов которые хранятся только на git, если с ним что-то случится, то их уже не будет.
Независимо от того, создаете ли вы простой скрипт Python или приложение корпоративного уровня, элегантное взаимодействие с консолью избавит вас от надоедливой головной боли при устранении неполадок в будущем.
В этой статье мы рассмотрим некоторые библиотеки, которые позволят вам создавать удобные, элегантные взаимодействия с консолью и вывод для вашего кода.
Использование этих замечательных библиотек поможет вам создавать приложения командной строки, которые понравятся пользователям.
Давайте начнем!
Open-source проекты, сторонние инструменты и библиотеки - это то, за что мы действительно любим Python. В этой статье я собрал самые полезные, валидированные сообществом и проверенные временем инструменты, конфигурации которых можно встретить в популярных проектах с открытым исходным кодом.
Инструменты распределены по этапам/сферам разработки. По каждому из них я дам небольшое описание и попытаюсь рассказать о его пользе. Если утилита имеет дополнительные расширения/плагины, то я расскажу про самые полезные (на мой взгляд).
В пост включены библиотеки, которые были запущены или приобрели популярность в этом году, хорошо поддерживаются, а также просто классные и достойные внимания. Подборка в значительной степени ориентирована на библиотеки по ИИ и науке о данных, но сюда так же включен ряд библиотек, которые могут быть полезны для целей, не связанных с наукой о данных.
Идея статьи возникла желании пропускать определенные сайты через VPN-туннель напрямую через маршрутизатор. Так как количество устройств дома велико, а пускать весь трафик через VPN неудобно в связи с низкой пропускной способностью туннеля. Статья написана сразу после создания конфигурации. Настройка будет проходить в Winbox MikroTik.
А что, если я скажу вам, что линтеры для Go можно создавать вот таким декларативным способом?
func alwaysTrue(m dsl.Matcher) {
m.Match(`strings.Count($_, $_) >= 0`).Report(`always evaluates to true`)
m.Match(`bytes.Count($_, $_) >= 0`).Report(`always evaluates to true`)
}
func replaceAll() {
m.Match(`strings.Replace($s, $d, $w, $n)`).
Where(m["n"].Value.Int() <= 0).
Suggest(`strings.ReplaceAll($s, $d, $w)`)
}
Год назад я уже рассказывал об утилите ruleguard. Сегодня хотелось бы поделиться тем, что нового появилось за это время.
Основные нововведения:
PHP 8.0 должен увидеть свет 26 ноября 2020 года, а вскоре за ним и последняя версия фреймворка Symfony 5.2. Здесь представлена серия бенчмарков, выполненных на последних версиях обоих проектов. Это чистый hello world сценарий, и его следует воспринимать как таковой. Имеет значение только относительная производительность. В реальном мире YMMV (ваши результаты могут отличаться от приведенных).
Утилита tcpdump — отличный инструмент командной, который способен перехватывать и анализировать сетевой трафик. Может оказаться большим подспорьем при решении сетевых проблем. Пакеты можно сохранить в файл и анализировать позже. Рекомендуется время от времени запускать эту утилиту, чтобы следить за своей сетью.
Содержание:
Утилита tcpdump позволяет проверять заголовки пакетов TCP/IP и выводить одну строку для каждого из пакетов. Она будет делать это до тех пор, пока не нажать Ctrl + C.
Давайте рассмотрим одну строку из примера вывода:
20:58:26.765637 IP 10.0.0.50.80 > 10.0.0.1.53181: Flags [F.], seq 1, ack 2, win 453, options [nop,nop,TS val 3822939 ecr 249100129], length 0
Каждая строка включает:
awk
— это нечто вроде швейцарского ножа для обработки текстовых файлов. Но некоторые ограничения awk
порой доставляют неудобства тем, кто этой утилитой пользуется. Я, для того чтобы упростить работу с awk
, создал несколько функций. Но сразу хочу сказать о том, что для работы этих функций нужны возможности GNU-версии awk
. Поэтому для того чтобы воспроизвести то, о чём я буду рассказывать, вам совершенно необходимо использовать gawk
и ничего другого. Возможно, в вашей системе настроено сопоставление /usr/bin/awk
с чем-то, и это «что-то» может представлять собой gawk
. Но это может быть и mawk
, и какая-то другая разновидность awk
. Если вы используете дистрибутив Linux, основанный на Debian, то знайте, что команда update-alternatives
— это ваш хороший друг. В данном материале я буду исходить из предположения о том, что его читатель использует gawk
.awk
. А именно, речь идёт о разделении строки на поля даже в условиях, когда не существует единого символа, используемого для разделения полей. Кроме того, вы сможете обращаться к полям, используя выбранные вами имена. Например, вам не придётся помнить о том, что $2
— это поле, содержащее сведения о времени. Вместо этого можно будет просто воспользоваться конструкцией наподобие Fields_fields[«time»]
.