Я сделал свой первый python3 asyncio скрипт. Сравнивает два каталога, и для одинаковых файлов (расположенных по одинаковому под-пути) устанавливает дату более старого.
Нужен, чтобы восстановить даты файлов из бэкапа после
set_older_datetimes_for_same_files.py
P.S. asyncio – какой-то ужас. Легче сразу на go писать.
Нужен, чтобы восстановить даты файлов из бэкапа после
git checkout
, но только тех, которые не поменялись.set_older_datetimes_for_same_files.py
P.S. asyncio – какой-то ужас. Легче сразу на go писать.
GitHub
PersonalUseScripts/set_older_datetimes_for_same_files.py at master · LogicDaemon/PersonalUseScripts
scripts for my personal use. Nothing private, but barely useful for others - PersonalUseScripts/set_older_datetimes_for_same_files.py at master · LogicDaemon/PersonalUseScripts
concurrency в python:
*
*
*
*
Threading
: работает как ожидается, внедрять можно постепенно в отдельные модули, остальная программа может про это вообще ничего не знать. Но отдельный тред создаётся на каждый чих, либо надо писать собственный пул-менеджер.*
Concurrent.futures
: только для простых задач или для одной процедуры (main?), т. к. если таска в pool'е, и попытается запустить другую таску, может случиться дэдлок прямо в этом месте (если пул уже будет заполнен)*
asyncio
(async
, await
): вроде лишен этих недостатков, но требует полного переписывания всего кода. "Постепенное" внедрение невозможно. Все синхронные примитивы, типа стандартного open(), все операции с файлами, все вызовы внешних библиотек, не поддерживающих asyncio, блокируют всю программу целиком.Коллега посоветовал
Выглядит хорошо.
gevent
.Выглядит хорошо.
from gevent import monkey; monkey.patch_all()
Нашел для python модуль logicmin, минимизирующий логику по таблицам истинности; причем в моём случае оптимизированная логика используется, чтобы объяснить, почему то или иное состояние приводит к определённому действию сервера.
Вроде, то же самое умеет pyeda, но logicmin явно меньше и проще.
Вроде, то же самое умеет pyeda, но logicmin явно меньше и проще.
GitHub
GitHub - dreylago/logicmin: Logic Minimization in Python
Logic Minimization in Python. Contribute to dreylago/logicmin development by creating an account on GitHub.
С прискорбием узнал, что KC Softwares закрывается :-( SUMo и DUMo больше не работают, и больше никогда работать не будут.
Замены им нет, пока (временно) начал использовать https://github.com/NexovaDev/UpdateHub, но он из нескольких сотен программ видит пару десятков :-(
Замены им нет, пока (временно) начал использовать https://github.com/NexovaDev/UpdateHub, но он из нескольких сотен программ видит пару десятков :-(
GitHub
GitHub - NexovaDev/UpdateHub: UpdateHub is an app that simplifies updating software on your computer. A user-friendly interface…
UpdateHub is an app that simplifies updating software on your computer. A user-friendly interface allows you to quickly check for and install available updates for your operating system and applica...
забавное интервью. Тем, насколько я согласен с Bobuk-ом, и не согласен с интервьюером https://youtu.be/Ro1T-e0455g, особенно в последних ~30 минутах.
YouTube
ЧТНП | Григорий Бакунов (Bobuk) о развитии ИИ, вреде аутсорса и роли в проектах Яндекса
Григорий Бакунов aka Bobuk — известная фигура в IT-сообществе, топ-менеджер Яндекса в прошлом и IT-предприниматель в настоящем. В подкасте поговорили не о жизни и карьере Bobuk’а, а узнали его мнение об удаленке и двух работах, великом предназначении программистов…
Скрипт для бэкапа почты из IMAP4. И бойлерплейт для питонячих скриптов с CLI и чтением конфига (причем параметры конфигурации в CLI и конфиге идентичны, их не надо указывать дважды)
https://t.me/logicdaemon_pub/6
https://t.me/logicdaemon_pub/6
Telegram
LogicDaemon-pub
Just wrote a simple IMAP4 backup script, which is mostly a boilerplate of a CLI with a config file, which shows expected locations of the config when invoked with --help.
To use with gmail, create app password first in https://myaccount.google.com/apppasswords
To use with gmail, create app password first in https://myaccount.google.com/apppasswords
Интересная Copilot-like дополнялка-рефакторилка https://marketplace.visualstudio.com/items?itemName=Morph.rift-vscode https://github.com/morph-labs/rift
Есть фичи, которых нет в Copilot, но нет автоподбора контекста из открытых и соседних файлов (который есть в Copilot).
Модель выбирается: можно использовать OpenAI-шное (если есть токен), но можно и локальные модели GPT4All и HuggingFace.
Есть фичи, которых нет в Copilot, но нет автоподбора контекста из открытых и соседних файлов (который есть в Copilot).
Модель выбирается: можно использовать OpenAI-шное (если есть токен), но можно и локальные модели GPT4All и HuggingFace.
commit_message.py
20.4 KB
тут в пятницу и сегодня утром запилил генератор commit message по git diff-у, используя gpt4all (тестировал с
mistral-7b-openorca.gguf2.Q4_0.gguf
но может заработать и с другими моделями).а WSA оказывается и на Windows 10 рабоатет https://github.com/YT-Advanced/WSA-Script/
GitHub
GitHub - YT-Advanced/WSA-Script: Integrate Magisk root and Google Apps into WSA (Windows Subsystem for Android) with GitHub Actions
Integrate Magisk root and Google Apps into WSA (Windows Subsystem for Android) with GitHub Actions - YT-Advanced/WSA-Script
Есть такая штука, генератор парольных фраз на javascript'е, давно пользуюсь https://www.fourmilab.ch/javascrypt/pass_phrase.html
Кроме парольных фраз, бывает удобно генерировать и e-mail'ы для моего домена.
Открывать новую страницу в браузере и вручную копипастить оттуда надоело, поэтому я запилил (вдохновляясь тем самым javascrypt и его словарем) пару скриптов:
email.ahk — использует буфер обмена в качестве суффикса, и набирает на клавиатуре сгенерированный e-mail. Его предполагается вешать на горячую клавишу;
pass_phrase.ahk — GUI, генерирует e-mail и набор слов в поле, откуда их можно скопировать.
Оба читают
Кроме самих скриптов, потребуется wordstab.txt оттуда же.
Кроме парольных фраз, бывает удобно генерировать и e-mail'ы для моего домена.
Открывать новую страницу в браузере и вручную копипастить оттуда надоело, поэтому я запилил (вдохновляясь тем самым javascrypt и его словарем) пару скриптов:
email.ahk — использует буфер обмена в качестве суффикса, и набирает на клавиатуре сгенерированный e-mail. Его предполагается вешать на горячую клавишу;
pass_phrase.ahk — GUI, генерирует e-mail и набор слов в поле, откуда их можно скопировать.
Оба читают
%LocalAppData%\_sec\EmailSuffix.txt
и дописывают первую строчку к сгенерированному e-mail-у.Кроме самих скриптов, потребуется wordstab.txt оттуда же.