Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 2 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago
Немного воспоминаний от автора канала
В далёком 2007 году я начал интересоваться Linux, особенно Gentoo. За пару дней скомпилировал ядро, модули, X11 и KDE. Всё с флагом -O3. Это означает, что операционная система адаптировалась под мой компьютер и стала быстрее и красивее, чем Windows XP. ?
После этого каждую неделю загружал обновления в виде исходного кода и пересобирал части системы. Мне нравилось чувствовать себя опытным линуксоидом, радоваться быстрому компьютеру и настраивать всё под свои нужды.
Сейчас называю таких людей «юными и любознательными». Приятно изучать новое и радоваться своему прогрессу.
Через несколько лет перешёл на CLD (Calculate Linux Desktop), который основан на Gentoo с KDE. Всё необходимое было собрано и скомпилировано за меня. Не только операционная система, но и сотни программ для работы с текстом, изображениями, видео и многим другим устанавливаются с нуля за 20 минут.
С опытом я перешёл к стабильности. Нет смысла устанавливать бета-версии программ, если есть стабильные, но на 1-2 версии ниже. И если сервис был создан 5 лет назад и успешно выполняет свои задачи, не стоит обновлять его.
Работает - не лезь. ?
?? - юный и любознательный
? - работает - не лезу
#истории
Коротко об интересном
Недавно столкнулся с задачей выдернуть время из строки текста на русском языке.
Между созданием своего решения с нуля и поиском готового остановился на втором.
Представляю вашему вниманию rutimeparser
.
Если коротко, то:
```
from rutimeparser import parse
text = "Завтра в 10:10"
date_time = parse(text, tz='Europe/Moscow')
```
✍️ - беру на вооружение
? - как это работает?
Про многозадачность
Недавно возникла задача параллельно выполнять три задачи. Ага, такая вот тавтология. ? Конечно же потоки сразу были отметены.
- Почему не потоки? - спросите вы.
Потому что с GIL потоки всегда последовательны.
➕ Да, быстро переключаются.
➕ Да, если нет сложных расчётов, ведут себя как параллельные задачи.
➖ При детальном рассмотрении работают последовательно в рамках одного процесса на одном ядре одного процессора.
Не забывайте эту элементарную особенность классического Python.
Познавательная минутка *?*
Для запуска трёх задач в виде процессов использовал модуль subprocess
```
import subprocess
from sys import executable
from os import getcwd
...
python_executable = executable subprocess.Popen([python_executable, 'project_dir/main.py'], cwd=getcwd())
...
```
✍️ - беру на вооружение
? - как это работает?
Гвидо ван Россум, создатель языка программирования Python, объявил о разработке собственной операционной системы. Отличительной особенностью новой ОС станет уникальная функция под названием GAL — Global Application Lock, позволяющая запускать за раз только одну программу.
«Мы стремимся к простоте и максимальной эффективности», — заявил ван Россум. «Без необходимости переключаться между задачами пользователи смогут полностью сосредоточиться на одной задаче, избежав отвлекающих факторов».
По словам разработчика, ОС будет идеальной для писателей, кодеров и всех, кто хочет уйти от многозадачности.
Скептики шутят, что следующее обновление позволит запускать два окна калькулятора одновременно, но сторонники ван Россума уверены, что новая ОС действительно изменит подход к работе.
И снова делюсь наболевшим. Улыбок вам и быстрых правок багов ??
P.S. Пруфы из официальной документации
Несколько раз натыкался на вопросы и статьи про запуска кода по расписанию.
Хочет человек запускать свою функцию в 9:30 и 20:45. А ещё он пишет на Python. И начинаются варианты с time.sleep, с asyncio.sleep. Варианты с отдельными потоками или процессами. Кто-то использует сторонние модули, например schedule. Молодцы, ребята, чего уж. Много кодят ради запусков по расписанию ?
Познавательная минутка ?
Запуск программ по расписанию использовался на компьютерах полсотни лет назад. Уже в 1970-х годах была программа (демон) для запуска других программ по расписанию. Вы когда-то слышали про cron? Это он претерпев несколько изменений запускает код по расписанию более 50 лет
Как вы догадались, для запуска когда по расписанию не нужно изобретать сложные Python костыли и велосипеды. Вводим в терминале crontab \-e
и добавим пару строк в конец файла:
```
30 9 * * python /path/to/project.py
45 20 * * python /path/to/project.py
```
Ура! Python файл project будет автоматически запущен дважды в сутки, в 9:30 (строка 1) и в 20:45 (строка 2) ?
Заметили пустую строку после примера в cron? Как и Python фалы, файл crontab должен заканчиваться пустой строкой. Но в отличии от доброго Python, cron не прощает ошибки. Если пустой строки нет, cron проигнорирует последнюю. Ту, где запуск в 20:45.
P.S. Может ситуацию с последней пустой строкой и пофиксили. Но я за пару десятилетий привык её добавлять. Кому интересно, проверяйте, пишите результат в комментариях ✍️
Регулярные выражения. Открытие номер 2
Когда впервые познакомился с шаблоном ?P<name>
в регулярках, прочитал в сети старую переписку Гвидо с...
Ага! С кем-то. Лично я запомнил его как Ларри Уолла, автора языка Perl. Но сейчас, при написании поста не смог найти ту самую древнюю переписку.
Если поделитесь ссылкой в комментариях, респект и уважуха. А пока будем считать это байкой старого айтишника. Садитесь поудобнее ?**
Когда Гвидо добавлял в язык Python регулярные выражения, он конечно же взял их из языка Perl. Почему?
Познавательная минутка ?
Perl был создан в 1987 году лингвистом Ларри Уоллом. И изначальная идея - язык для работы с текстом. А куда же тексту без регулярных выражений. Всё логично ?**
Так вот, Гвидо захотел улучшить регулярки в Python. Он написал Ларри письмо, поинтересовался можно ли занять сочетание символов ?P
(вопрос, заглавная P)? И Ларри сказал, что никаких планов на связку ?P
у него нет.
После официально разрешения Гвидо использовал связку для расширения регулярок, добавил ?P<name>
. Теперь он мог обращаться к найденным группам по имени. А заодно и складывать полученные группы в словарь по ключам.
Эта идея так понравилась, Ларри, что уже из Python перекочевала в Perl, а потом и в регулярные выражения как таковые.
Кстати, заглавная P в регулярке означает Python. Гвидо застолбил букву для своего языка. Вдруг регулярное выражение не прижилось бы.
Как показывает история, ?P<name>
очень прижилось. И оно шикарно облегчает жизнь превращая объемный текст в словарь нужных данных.
Спасибо, Гвидо ?
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 weeks, 2 days ago
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 month ago