Loess.ru

having fun

Pyinstaller+Alembic

При упаковке работающего Py-кода с миграциями alembic возникает множество проблем, с ходу погуглив которые — не решить:

Для нормальной компиляции в Venv и вывода проблем при запуске бинарника — необходимо запускать Pyinstaller модулем прям там:
./venv/bin/python3 -m PyInstaller -d bootloader [other args]

«Can't find Python file env.py» лечится добавлением папки миграций к бинарнику --add-data — файлы распаковываются в /tmp/ вместе с остальными исполняемыми файлами (https://ru.stackoverflow.com/questions/1360697/%D0%9A%D0%B0%D0%BA-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-%D0%BA-exe-add-data)

env.py должен быть совместимым с целевой ОС: «No module named 'logging.config'» при запуске собранного бинарника — не лечится добавлением --hidden-import, но лечится закомменчиванием строк fileConfig() в env.py и добавлением опций из alembic.ini в скрипт: alembic_cfg.set_main_option(…)
«Warning When using programmatic configuration, make sure the env.py file in use is compatible with the target configuration; including that the call to Python logging.fileConfig() is omitted if the programmatic configuration doesn’t actually include logging directives.»
(WARNING at https://alembic.sqlalchemy.org/en/latest/api/config.html)

Пути в скрипте миграций должны иметь явное указание или на директорию, откуда запускается бинарник, или на /tmp/_MEI…, второе можно сделать с sys._MEIPASS (https://stackoverflow.com/questions/51060894/adding-a-data-file-in-pyinstaller-using-the-onefile-option , example)

«Path ... is not represented in current version locations» чинится указанием:
alembic_cfg.set_main_option('script_location','relative/folder')
alembic_cfg.set_main_option('version_locations','same as script_location param[/subdir]')

NSA Green Lambert for OS X rootkit investigation

Green Lambert is described as an “active implant” and “the only one where non-Windows variants have been found.”

“C2 jitter, secure erase / uninstall, SSL/TLS+extra crypto, size below 150K, encrypt logs and local collection, decrypt strings on the fly in mem… simply following these guidelines immediately makes the malware (“tools”) more interesting and, recognizable by a skilled analyst.”

https://objective-see.com/blog/blog_0x68.html (pdf)

OpenSource game engines (re3 is blocked again)

новость на opennet про re3: https://www.opennet.ru/opennews/art.shtml?num=54635

re3 заблокировали 29 сентября снова: https://github.com/GTAmodding/re3
Зеркало https://gitee.com/aeiouaeiouaeiouaeiouaeiouaeiou/re3
Тем, кому нужны бинарники, могу предложить поискать их по именам:
re3_Release_win-amd64-librw_d3d9-oal.zip
10381645 байт MD5 F6AF099E50EABD7568B658436FC22104
re3_Release_win-amd64-librw_gl3_glfw-oal.zip
9240703 байт MD5 9C303AB17500C38257AC876262BF952F
reVC_Release_win-amd64-librw_d3d9-oal.zip
10154366 байт MD5 B363FDA9E51941C3717213BC85B36110
reVC_Release_win-amd64-librw_gl3_glfw-oal.zip
8995659 байт MD5 97B8552D773ADC4DC858F3090559F0CD
где-нить в https://duckduckgo.com, или здесь, например: loess.ru/temp/re3

ещё:
OpenAge — открытый движок для игр Age of Empires, Age of Empires II (HD) и Star Wars: Galactic Battlegrounds;
OpenSAGE — открытый движок для Command & Conquer: Generals;
OpenMW — открытый движок для ролевой игры в жанре фэнтези The Elder Scrolls 3: Morrowind;
OpenRA — открытый движок для Command & Conquer Tiberian Dawn, C&C Red Alert и Dune 2000;
OpenLoco — открытый симулятор транспортной компании на основе игры Locomotion;
CorsixTH — открытый движок для Theme Hospital;
OpenRCT2 — открытый движок для стратегической игры RollerCoaster Tycoon 2;
Xash3D — открытый движок с поддержкой Half-Life;
FreeCS — открытый движок для Counter-Strike 1.5.
OpenDiablo2
https://github.com/vcmi/vcmi — OpenSource engine for HoMM3

Реформация европы, тильзитский мир, их нравы


«Король Пруссии Фридрих-Вильгельм III, кутаясь в плащ, наблюдает, как на на плоту, установленном на середине реки Мемель, в шатре беседуют два императора – Наполеон Бонапарт и Александр I, обсуждая новые контуры Европы. Среди вопросов, которые обсуждали два этих очень непохожих друг на друга человека, был и вопрос Пруссии: быть или не быть этому государству, быть или не быть династии Гогенцоллернов.

Мнение самого короля Пруссии никому не было ни важным, ни интересным, все должно быть решено без него.»

Отличный пример того, как умели договариваться 200 лет назад: https://habr.com/ru/company/timeweb/blog/576308/

Как выбрать свинцовый аккумулятор

Поскольку аккумуляторы, а особенно, с длительным режимом работы, как свинцовые для всяческих УПСов, являются чёрным ящиком и котом в мешке для потребителя, предлагаю к изучению всю матчасть и маркетинговые ходы производителей данных моделей:

АКБ Дельта


http://akbtest.ru/csb-hr-1234w (pdf)

Рекомендую данный сайт в качестве справочника по свинцовым аккумуляторам

История IP

Весьма занятное, я бы даже сказал — фундаментальное чтиво (The world in which IPv6 was a good design): https://apenwarr.ca/log/20170810 (pdf)

Anyway, I digress. The salient detail here is that unlike real IP services, bootp and DHCP need to know about ethernet addresses, because after all, it’s their job to hear your ethernet address and assign you an IP address to go with it. They’re basically the reverse of ARP, except we can’t say that, because there’s a protocol called RARP that is literally the reverse of ARP. Actually, RARP worked quite fine and did the same thing as bootp and DHCP while being much simpler, but we don’t talk about that.

И небольшое ревью спустя три года, не менее фундаментальное, чем предыдущая статья (IPv4, IPv6, and a sudden change in attitude): https://apenwarr.ca/log/20200708 (pdf)

И немного рекламы после ревью: Tailscale+WireGuard. Авторы в этих сервисах видят решение основной нерешённой проблемы ipv6 — коннективити при смене ip-адреса:

IP mobility is what we do, in a small way, with Tailscale’s WireGuard connections. We try all your Internet links, IPv4 and IPv6, UDP and TCP, relayed and peer-to-peer. We made mobile IP a real thing, if only on your private network for now. And what do you know, the math works. Tailscale’s use of WireGuard with two networks is more reliable than with one network.

Also: hilbert map of IPv4 address space, same for IPv6

Short squeeze mechanics (on example of WSB+GameStop)

механизм short-squeeze:
https://yudkowsky.medium.com/r-wallstreetbets-is-trying-something-unprecedented-in-history-and-the-medias-not-reporting-it-7ab507e4a038 (pdf)

как же это похоже на (статистически обоснованный!) выжим денег из лотереи десятком лет ранее:
https://habr.com/ru/company/vdsina/blog/540264/ (pdf)

Рейтинг приложения Robinhood опять опустили до 1 звезды
«На следующий день Robinhood ввёл список из 50+ компаний, на торговлю которыми наложены ограничения. Например, GameStop можно покупать только в объёме 1 акция или 5 опционов. К настоящему моменту количество компаний в списке уменьшилось до пяти.»
https://habr.com/ru/news/t/540480/

Не забываем, что Биткоин всё ещё накачан титером по самые 70%:
(Большая игра на понижение крипты. Механизм финансовой катастрофы)
https://habr.com/ru/post/538198/ (pdf)

в большой игре — большие акулы, будьте осторожны

Почему плодится шизофрения в мире-2

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

We live in a world in which a tree is worth more, financially, dead than alive, in a world in which a whale is worth more dead than live. For so long as our economy works in that way and corporations go unregulated, they’re going to continue to destroy trees, to kill whales, to mine the earth, and to continue to pull oil out of the ground, even though we know it is destroying the planet, and we know that it’s going to leave a worse world for future generations.

This is short term thinking based on this religion of profit at all costs, as if somehow, magically, each corporation acting in its selfish interest is going to produce the best result. This has been affecting the environment for a long time. What’s frightening and what hopefully is the last straw that will make us wake up as a civilization to how flawed this theory has been in the first place is to see that now we’re the tree, we’re the whale. Our attention can be mined. We are more profitable to a corporation if we’re spending our time staring at a screen, staring at an ad, than if we’re spending that time living our life in a rich way. And so we’re seeing the results of that. We’re seeing corporations using powerful artificial intelligence to outsmart us and figure out how to pull our attention toward the things they want us to look at rather than the things that are most consistent with our goals and our values and our lives.

Биология пандемий


Подборка золотого научпопа про болезни, их исторические последствия, прочую биологию, и даже про зомби:

ВИЧ — нулевой пациент мировой пандемии https://habr.com (pdf)

Рудиментарные дела. Кого, чему, зачем и что не нужно https://habr.com

Охотничьи зоонозы: когда утка опасней ружья https://habr.com (pdf)

SARS нерукотворный? Генеалогия уханьского коронавируса https://habr.com (pdf)

Биологическое оружие против советских граждан. Трагедия в Свердловске-19 https://skrepohistory.livejournal.com/21016.html (pdf)

Зомби: от Гаити до психиатрии https://zen.yandex.ru/ (pdf)

Справочка о рабстве (и немного эзотерики): https://bitcoin-translated.ru/sources/bitcoin-abc/masters-and-slaves-of-money/

Прочие рассказы о паразитарных (и не только) инфекциях тут: https://zen.yandex.ru/scientaevulgaris

Ideapad 330s efi boot

после установки Debian 10 поверх ubuntu оказалось, что грузиться ноут может только одной записью в efi — «ubuntu», и при этом загружается лишь голая командная строка grub. Больше опций для загрузки в BIOS — нет. При загрузке с hdd в legacy — просто выключается.
Не помогли:
— несколько переустановок, с нескольких образов debian 10
— grub reinstall, grub-update, те же действия в safe mode (https://wiki.debian.org/GrubEFIReinstall)
— ручное копирование Boot64x в efi-разделе из /debian/ в /BOOT/

Помогло лишь ручное копирование всех файлов в efi-разделе из /debian/ в /ubuntu/ в консоли uefi (или прям в ОС, после загрузки с rEFInd).
образ c uefi shell https://sourceforge.net/projects/refind/
инструкция https://www.bootdev.ru/2018/10/EFI-Shell-What-to-do-if-the-OS-does-not-loaded.html