Ещё одна классная фича, доступная с новым синтаксисом
Раньше:
#синийкит #dockerо
Dockerfile
— многострочные команды, т.е. поддержка полноценных скриптов! Умные люди называют такой синтаксис heredoc. Теперь можно больше не писать эти дурацкие амперсанды и бэкслеши в конце каждой строчки в длинной команде.Раньше:
FROM debian
RUN apt-get update \
&& apt-get install -y vim
Сейчас:# syntax=docker/dockerfile:1.3-labs
FROM debian
RUN <<eot bash
apt-get update
apt-get install -y vim
eot
А ещё таким образом можно запускать даже скрипты на python
(да и вообще любые скрипты). Скрипт выполнится, результаты его работы останутся в образе, но сам он никогда туда не попадёт, потому что он вообще не сохраняется на диск. Пока не придумал, зачем такое может пригодиться, но прикольно:# syntax=docker/dockerfile:1.3-labs
FROM python:3.9-slim-buster
RUN python3 <<EOF
for i in range(10):
with open(f"/{i}.txt", "w") as f:
f.write(f"File {i}")
EOF
Источник: https://twitter.com/iximiuz/status/1436357612740694016?s=20#синийкит #dockerо
Twitter
Ivan Velichko
Dockerfile:1.3 brought multiline RUN support 🔥 That's how a modern Dockerfile may look like # syntax=docker/dockerfile:1.3-labs FROM debian RUN <<eot bash apt-get update apt-get install -y vim eot No more nasty && in bash scripts. Yay!
Forwarded from Geeks (жук невывожук)
Вышла версия 1.0.0.beta0 python-библиотеки httpx. Это - достаточно известная библиотека для осуществления HTTP-запросов, и она предоставляет разработчику как синхронное API, так и асинхронное. Использую её достаточно давно и всем устраивает. Как приятный бонус - вызовы полностью идентичны таковым в широко распространенной библиотеке requests. Тех, кто использует тайпинг, порадует то, что библиотека полностью аннотирована.
Примечательно, что в новой версии библиотеки был реализован HTTP-клиент, который можно дергать прям из командной строки. И это прям удобно настолько, что мне даже нравится. Вывод подсвечен, и вроде все работает.
Если хочется быстро попробовать, то скачиваем пакет:
Примечательно, что в новой версии библиотеки был реализован HTTP-клиент, который можно дергать прям из командной строки. И это прям удобно настолько, что мне даже нравится. Вывод подсвечен, и вроде все работает.
Если хочется быстро попробовать, то скачиваем пакет:
pip install --pre 'httpx[cli]'И пробуем:
httpx --verbose https://httpbin.org/jsonСсылка на GitHub библиотеки https://github.com/encode/httpx
GitHub
GitHub - encode/httpx: A next generation HTTP client for Python. 🦋
A next generation HTTP client for Python. 🦋. Contribute to encode/httpx development by creating an account on GitHub.
Ну и ещё одна фича — команда
Источник: https://twitter.com/iximiuz/status/1436361338696183815?s=20
#синийкит #docker
COPY
в Dockerfile
тоже получила поддержку heredoc.# syntax=docker/dockerfile:1.3-labs
COPY <<EOF /usr/share/nginx/html/index.html
<html>
<head></head>
<body>Hi!</body>
</html>
EOF
Теперь можно разные небольшие файлы создавать прямо в Dockerfile
.Источник: https://twitter.com/iximiuz/status/1436361338696183815?s=20
#синийкит #docker
Twitter
Ivan Velichko
Dockerfile COPY also got the heredoc support 🎉 Now all kinds of file embedding are possible! Example: COPY <<EOF /usr/share/nginx/html/index.html <html> <head></head> <body>Hi!</body> </html> EOF
Знаю, что на канале есть некоторое количество пользователей OpenWRT — свободной прошивки для роутеров на линуксе.
Если вдруг пропустили, то вышла новая версия 21.02. Пора обновляться!
Попробую обновиться и по возможности адаптирую пост про точечный обход блокировок. Хотя, почитав последние грустные новости про суверенный интернет и ТСПУ, я уже начинаю склоняться к более простому и надёжному варианту — пересесть на VPN полностью.
#оффтоп
Если вдруг пропустили, то вышла новая версия 21.02. Пора обновляться!
Попробую обновиться и по возможности адаптирую пост про точечный обход блокировок. Хотя, почитав последние грустные новости про суверенный интернет и ТСПУ, я уже начинаю склоняться к более простому и надёжному варианту — пересесть на VPN полностью.
#оффтоп
www.opennet.ru
Выпуск OpenWrt 21.02.0
Представлен новый значительный выпуск дистрибутива OpenWrt 21.02.0, ориентированного на применение в различных сетевых устройствах, таких как маршрутизаторы, коммутаторы и точки доступа. OpenWrt поддерживает множество различных платформ и архитектур и обладает…
Закончились футболки? Выход есть — Hacktoberfest 😝
Ежегодный фестиваль-флешмоб длиной в один месяц, посвященный open-source. Не знаю, какие будут условия в этом году, но в предыдущие годы за 4 pull-реквеста в участвующие проекты на GitHub или GitLab выдавали приз-футболку и ещё какие-то наклейки-сувениры.
Думаю, в этом году я впервые попробую активно поучаствовать. Дело даже не столько в футболке (хотя я был бы рад её получить), сколько в крутости этой затеи. Круто, что людей поощряют контрибьютить в опен-сорс. На качественных опен-сорс проектах и держится всё наше IT. Я хочу поддерживать такие инициативы.
https://hacktoberfest.digitalocean.com/
Накидайте в комменты репозиториев, куда вы хотели бы законтрибьютить 👇
Ежегодный фестиваль-флешмоб длиной в один месяц, посвященный open-source. Не знаю, какие будут условия в этом году, но в предыдущие годы за 4 pull-реквеста в участвующие проекты на GitHub или GitLab выдавали приз-футболку и ещё какие-то наклейки-сувениры.
Думаю, в этом году я впервые попробую активно поучаствовать. Дело даже не столько в футболке (хотя я был бы рад её получить), сколько в крутости этой затеи. Круто, что людей поощряют контрибьютить в опен-сорс. На качественных опен-сорс проектах и держится всё наше IT. Я хочу поддерживать такие инициативы.
https://hacktoberfest.digitalocean.com/
Накидайте в комменты репозиториев, куда вы хотели бы законтрибьютить 👇
Hacktoberfest
Hacktoberfest 2025
Hacktoberfest: a month-long celebration of open-source projects, their maintainers, and the entire community of contributors.
Питонические атаки
Закончились футболки? Выход есть — Hacktoberfest 😝 Ежегодный фестиваль-флешмоб длиной в один месяц, посвященный open-source. Не знаю, какие будут условия в этом году, но в предыдущие годы за 4 pull-реквеста в участвующие проекты на GitHub или GitLab выдавали…
Проясню насчёт Hacktoberfest.
Я, конечно же, шучу насчёт того, что нужно участвовать там лишь ради футболок. Надо участвовать там из принципа и ради поддержки важных проектов, а футболка — не более чем трофей за проделанную работу.
В прошлом году была драма из-за наплыва большого количества участников, которые начали ради футболок отправлять всюду кучу спамных пулл-реквестов, где яростно добавляли и удаляли запятые в
Я, конечно же, шучу насчёт того, что нужно участвовать там лишь ради футболок. Надо участвовать там из принципа и ради поддержки важных проектов, а футболка — не более чем трофей за проделанную работу.
В прошлом году была драма из-за наплыва большого количества участников, которые начали ради футболок отправлять всюду кучу спамных пулл-реквестов, где яростно добавляли и удаляли запятые в
README.md
, что вызвало волну возмущения. Есть даже аккаунт в Твиттере, где собирают такое. Не будьте как эти чуваки. Не заставляйте мейнтейнеров разгребать за вами спам. У них и так достаточно забот. Делайте ценный вклад. Фиксите баги, которые вам мешают. Добавляйте фичи, которых вам не хватает. Улучшайте документацию — это тоже почётно. Только если это действительно важно, а не про расстановку запятых.Twitter
#shitoberfest (@shitoberfest) | Twitter
The latest Tweets from #shitoberfest (@shitoberfest). The official account to document shit pull-requests caused by #hacktoberfest. Tweet at this account with evidence of vandal PRs. Created by @geoffreyhuntley. 🌏 GitHub
В репозиторий Deno — рантайм для TypeScript — кто-то хотел добавить песню. Не хватает музыки!😅
https://twitter.com/frunkad/status/1312309284957351936?s=21
https://twitter.com/frunkad/status/1312309284957351936?s=21
Интересная мысль про языки программирования. Мы любим новые сияющие языки, на которых в основном всё пишется с нуля. Но мы ненавидим старые языки, которые могут быть не плохими сами по себе, но на них уже накопился багаж кода, который теперь приходится поддерживать. Все любят писать свой код, но мало кто любит поддерживать чужой код.
Python уже достаточно стар, и на нём написано много кода, но он все ещё каким-то образом держится в начале рейтинга любимых языков. Похоже, переход со второй версии на третью открыл языку второе дыхание, и благодаря этому его не перестали любить.
https://earthly.dev/blog/brown-green-language/
Python уже достаточно стар, и на нём написано много кода, но он все ещё каким-то образом держится в начале рейтинга любимых языков. Похоже, переход со второй версии на третью открыл языку второе дыхание, и благодаря этому его не перестали любить.
https://earthly.dev/blog/brown-green-language/
Earthly Blog
Green Vs. Brown Programming Languages
In this article, the author explores the concept of "brown" and "green" programming languages based on the Stack Overflow Devel...
boltons
— коллекция утилит, расширяющая стандартную библиотеку. Это почти как built-ins
, только boltons
😉Есть ли у вас в проекте файл
utils.py
или что-то подобное? Скорее всего, то что вы там храните, есть в boltons
.Код: https://github.com/mahmoud/boltons
Документация: https://boltons.readthedocs.io/
Там есть очень много всего, но вот, что мне особенно нравится:
* словари на любой вкус и цвет — и с поддержкой нескольких значений для одного ключа, и которые маппят ключ в значение и одновременно обратно значение в ключ (биекция);
* список, состоящий под капотом из множества других списков, оптимизированный для более эффективной работы при интенсивных вставках и удалениях;
* очень много функций для работы со строками —
camel2under
, under2camel
, slugify
, ordinalize
, cardinalize
, pluralize
, bytes2human
, ...;* утилиты для работы с датами — например, там есть функция, умеющая делать относительные человекочитаемые даты типа
"yesterday"
, "1 week ago"
, "3 days from now"
.Пакет не имеет зависимостей. Все функции самодостаточны, так что можно даже просто скопипастить к себе оттуда нужные (но лучше не надо). Конечно же, всё покрыто тестами.
#library
GitHub
GitHub - mahmoud/boltons: 🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing…
🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton. - mahmoud/boltons
Forwarded from гиг пиг ниг
Если хочется странного, то можно начать использовать в питоне goto и показать этим сосункам-коллегам кто на районе джигит.
from goto import with_gotoссылка на репу https://github.com/snoack/python-goto
@with_goto
def range(start, stop):
i = start
result = []
label .begin
if i == stop:
goto .end
result.append(i)
i += 1
goto .begin
label .end
return result
Эрик Айдл (Eric Idle) — актёр и автор многих скетчей комедийной группы Monty Python.
В честь него назван IDLE — Python’s Integrated Development and Learning Environment — простенький редактор кода, распространяющийся в составе стандартной библиотеки.
А ещё есть Eric IDE — редактор кода, написанный на питоне. Тоже отсылка к Эрику Айдлу.
#montypython
В честь него назван IDLE — Python’s Integrated Development and Learning Environment — простенький редактор кода, распространяющийся в составе стандартной библиотеки.
А ещё есть Eric IDE — редактор кода, написанный на питоне. Тоже отсылка к Эрику Айдлу.
#montypython
Эрик Айдл уже в преклонных годах. Он сидит в Твиттере, и однажды до него дошли слухи, что в честь его комедийного шоу придумали какой-то язык программирования. В тред пришёл Гвидо ван Россум, большой фанат скетчей Monty Python.
"very nice" — это отсылочка к сцене с французами на стене замка в "поисках святого грааля".
https://twitter.com/gvanrossum/status/1355310333875773444?lang=en
#montypython
"very nice" — это отсылочка к сцене с французами на стене замка в "поисках святого грааля".
https://twitter.com/gvanrossum/status/1355310333875773444?lang=en
#montypython
День Git на канале!
Git сложен: легко всё испортить, и нереально понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.
Разбор частых проблем с Git с командами для починки.
https://ohshitgit.com/
#git
Git сложен: легко всё испортить, и нереально понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.
Разбор частых проблем с Git с командами для починки.
https://ohshitgit.com/
#git
Git Undo — инструмент, который может отменить любое действие в Git.
С этой штукой больше не придётся удалять и скачивать заново сломанный репозиторий. Очень легко вернуться в "здоровое" состояние, когда что-то идёт не так. Оно может отменить практически что угодно:
* коммиты;
* изменение сообщения коммита (amend);
* мёрджи и ребейзы;
* переключения между ветками и коммитами;
* создание, обновление и удаление веток.
Тулза прицепляется в Git при помощи хуков и записывает все произведенные изменения. Можно отменять сколько угодно шагов назад, не только последний. Магия!
https://blog.waleedkhan.name/git-undo/
#git
С этой штукой больше не придётся удалять и скачивать заново сломанный репозиторий. Очень легко вернуться в "здоровое" состояние, когда что-то идёт не так. Оно может отменить практически что угодно:
* коммиты;
* изменение сообщения коммита (amend);
* мёрджи и ребейзы;
* переключения между ветками и коммитами;
* создание, обновление и удаление веток.
Тулза прицепляется в Git при помощи хуков и записывает все произведенные изменения. Можно отменять сколько угодно шагов назад, не только последний. Магия!
https://blog.waleedkhan.name/git-undo/
#git
Gitlint is a git commit message linter written in python: it checks your commit messages for style.
Код: https://github.com/jorisroovers/gitlint
Документация: https://jorisroovers.com/gitlint/
Есть много разных встроенных правил, например, умеет ограничивать длину первой строки, запрещать trailing spaces, требовать наличия определенного паттерна в сообщении (например, идентификатор тикета в Jira). Также умеет энфорсить Conventional Commits.
Подключается в виде гит-хука через pre-commit.
#git
Код: https://github.com/jorisroovers/gitlint
Документация: https://jorisroovers.com/gitlint/
Есть много разных встроенных правил, например, умеет ограничивать длину первой строки, запрещать trailing spaces, требовать наличия определенного паттерна в сообщении (например, идентификатор тикета в Jira). Также умеет энфорсить Conventional Commits.
Подключается в виде гит-хука через pre-commit.
#git
GitHub
GitHub - jorisroovers/gitlint: Linting for your git commit messages
Linting for your git commit messages. Contribute to jorisroovers/gitlint development by creating an account on GitHub.
А вообще я люблю TUI-софт.
Нашёлся ещё один клиент — lazygit.
Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE
#git
Нашёлся ещё один клиент — lazygit.
Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE
#git
GitHub
GitHub - jesseduffield/lazygit: simple terminal UI for git commands
simple terminal UI for git commands. Contribute to jesseduffield/lazygit development by creating an account on GitHub.