Code on

Mar. 18th, 2025 12:22 pm
phd_ru: (pic#4106692)
https://www.usenix.org/publications/loginonline/codon-python-compiler-update

Codon, компилятор с Питона в нативный код, сменил лицензию на Apache-2, став полностью Open Source.

Найдено на /.

Я не очень понимаю, что это даёт. Цифровые молотилки пишут с numpy. В web-бэкенде основные торможения у запросов SQL и заполнения шаблонов. Хорошее ускорение дало бы конвертирование шаблонов в Питон и вот этот код уже компилировать, но такое конвертирование мало какие шаблонизаторы умеют.

Upd — из обсуждения в рабочем чате. Я думаю, типичная задача для компилируемых программ — обработка большого объёма сложно устроенных данных. Не вычисления и не интерфейс с внешним миром.

Upd2. Нашёл ещё вариант — мелкий скриптик, который часто запускается. Типа filter или textconv в Git. Длительные скрипты на Питоне могут работать хорошо, но каждый запуск и инициализация интерпретатора — это торможение. Я поэтому избегаю фильтров/конвертеров в Git.

X-Post в ЖЖ.
phd_ru: (Default)
Переписывание скриптов на Python 3 помогло лишь частично:

DeprecationWarning: urllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() instead.

Эти люди вообще не знают, что такое "обратная совместимость". А те несколько человек, которые знают, не придают ей никакого значения. Каждую мажорную версию что-нибудь удаляют из языка или стандартной библиотеки.

Им бы на C/C++ посмотреть. На SQL. И то вряд ли поможет. Посмотрят — и не поймут.

Upd. HTML 20-летней давности открывается в сегодняшних браузерах. Старый JavaScript работает.

X-Post в ЖЖ.

Без 2.7

Aug. 11th, 2023 02:57 pm
phd_ru: (pic#4106692)
Debian 12 удалил мне все Питоны 2.7. На ноутбуке у меня есть свой, скомпилированный. А на серверах больше нет.

Можно скомпилировать. Или из conda-forge поставить. К этому я наверняка ещё вернусь.

Но пока со страшной силой обновляю свои библиотеки и скрипты. Некоторые скрипты удалось "обновить", просто добавив циферку 3 в конец строки #! /usr/bin/env python. Но большинство пришлось кардинально модернизировать.

В процессе обнаружилось смешное. Модуль getopt до сих пор не объявлен устаревшим. Наверное, забыли? А я-то беспокоился, что мне придётся все скрипты переписывать на argparse. :-D

X-Post в ЖЖ.

2FU

Aug. 3rd, 2023 03:16 pm
phd_ru: (Default)
Долго сопротивлялся введению двухф…торной авторизации. Один раз даже переименовал проект на PyPI, лишь бы не заморачиваться с технологией, которую я считаю неудобной, сложной, хрупкой (в любой момент можно потерять доступ к аккаунту), и при этом мало что дающей в плане безопасности.

Проиграл. Злые, жестокие люди.

GitHub затребовал 2FA, а GH терять не хочется. GH это социальная сеть, набор инструментов, и много халявы на GH Actions, включая бесплатный доступ к OSX; его сейчас никто больше не даёт; когда-то на Travis CI был, но стал платным, и вообще Трэвис сильно урезал ресурсы халявщикам. А у M$ большие, глубокие карманы, грех оттуда не стянуть пару центов.

Заодно и на PyPI завёл, чо уж.

Спасибо, Витус, otpclient помогает. Ключи и коды восстановления я, конечно, зарядил в текстовые файлы, в две шифрованные файловые системы, с резервными копиями. Должны выжить.

X-Post в ЖЖ.
phd_ru: (Default)
Обновляю Debian с 11 на 12. Начал с ноутбука. Всё в основном прошло гладко. По-прежнему удаётся обходиться без SystemD.

Пакет fail2ban заменил jail.conf; после обновления приходится восстанавливать мои настройки; у меня там с января nftables вместо iptables.

В меню загрузчика GRUB появилась команда "Войти в BIOS" (UEFI Firmware Settings). По этой команде ноут перезагрузился… и в самом деле открылась менюшка настроек BIOS.

Поменялись шрифты, пришлось искать более подходящий для FVWM2 и URxvt. Нашёл один, не совсем привычный. То ли буду привыкать, то ли найду время ещё поискать.

EncFS падает в segfault. Лечится в конфиге OpenSSL. Ну ё-маё! ;-(

Пришлось перекомпилировать все питоны. Некоторые старые всё равно дают segfault. Пока не вылечил. Причём не очень старые, наиболее проблемный Python 3.6.

XScreenSaver стал неправильно реагировать на xscreensaver-command --suspend — вместо выключения экрана он теперь запускает хак, как будто я его активировал командой --activate. Это баг, надеюсь, что исправят быстро. Интересно, кто сломал — upstream или Debian?

Upd 13.07. Зарепортил баг в XScreenSaver. Вообще это обновление принесло много проблем с XScreenSaver, но мне уже лень про них писать.

Upd 14.07. Обновил домашний сервер. Всё прошло совершенно гладко. Кроме SpamAssasin 4 — он теперь не запускается из /etc/init.d/, я пока не понял, как он работает. Ага, нашёл, нужно sudo apt install -y spamd.

Upd 15.07. Обновил амстердамский сервер. Там вообще всё прошло быстро и гладко.

В целом всё хорошо. Ничего капитально не сломалось, мелкие баги XScreenSaver можно игнорировать. Кое-что даже исправилось; pavucontrol стал запоминать галочку "Show volume meters" и перестал падать в segfault при выходе.

Upd 28.07. Заменил неработающие Питоны 3.4, 3.5 и 3.6 — поставил из Конды.

X-Post в ЖЖ.
phd_ru: (Default)
Лет 35 назад я придумал шутку: "Добрый день! Мы начинаем пересмотренный репортаж с международного чемпионата Футбол-68!"

Гвидо вспомнил сегодня про этот язык, рассказал анекдот про Алгол и Си.
phd_ru: (pic#4106692)
https://github.com/tjf801/oneliners/blob/master/snake.py

Игра "змейка" одной строкой на Питоне. Одной очень длинной строкой. Требует pygame.
phd_ru: (pic#4106692)
Я пришёл на работу в Научный Центр Хирургии в конце 90-го года. Меня пригласили перенести на ПиСи/ДОС/TurboPascal медицинский программный комплекс, который был первоначально разработан на PDP-11. В 92-ом году начались опытные запуски новой системы и с 1993-го она находится в промышленной эксплуатации. До сих пор находится. Да, на ДОСовских компьютерах. Код на Turbo я последний раз редактировал и компилировал в 2012. Код на ДССП, возможно, ещё редактируется. Код на Delphi для w32 (программы просмотра архива данных) точно ещё регулярно меняется.

Лет 15-20 назад старшая дочка (падчерица) делал какие-то расчёты ионизации атмосферы при прохождении через неё заряженных частиц. Считала на Фортране-77. Все знают, что Cobol ещё жив.

Для меня это вполне нормальная ситуация. Любители Всего Нового и Блестящего меня забавляют, но совершенно точно не убеждают.

Бывает, что старый софт переживает несколько поколений молодых конкурентов. Но иногда окружающий мир меняется так сильно, что старый софт ломается. Не от старости, а от несовместимости.

Иногда это происходит быстро. Скажем, последний релиз Python 2 был совсем недавно, и я уже ожидаю, что им можно будет пользоваться не более нескольких лет. Сменится версия протокола TLS, умрёт pip, некоторое время пакеты можно будет скачивать с PyPI руками. Потом всё.

Иногда всё застревает надолго. Скажем, наша компьютерная система с ДОСом. В середине 90-ых наш старший сисадмин в качестве сетевой операционной системы выбрал Novel NetWare. Тогда это был хороший выбор. Особенно с учётом того, что новеловский стек для ДОС был маленький, занимал места в памяти меньше микрософтовского. В 2000ых мы заменили NetWare на эмуляторы, в Линуксе — на ncpfs. Однако 20 лет спустя всё это работает уже с трудом. Пользовательские программы ncpfs были удалены из Debian в версии то ли 8, то ли 9. Я их сохранил, пока работают. Протоколы IPX/SPX были удалены из ядра в версии 4.17, а в Debian 10 уже 4.19. Чтобы сделать обновление, я поставил ядро 4.14 LTS.

Обновиться через пару лет на Debian 11 я уже, скорее всего, не смогу. Надо думать о смене протокола. LAN Manager в ДОС ставить.

py-e

Apr. 20th, 2020 07:50 pm
phd_ru: (pic#4106692)
Полный π. Нет, вру, полный e. Вышел Python 2.7.18, последний релиз в ветке 2.7 и вообще последний в ветке 2.

Меня уже спрашивали, собираюсь ли я поддерживать свои библиотеки для работы с 2.7. Я пообещал пару лет, а если получится, так и больше. И на работе я пока в основном его использую.

PS. На моём предыдущем ноутбуке компиляция Питона из исходников выполнялась 3-5 минут. На новом секунд 15-20. Даже сам не ожидал.
phd_ru: (pic#4106692)
Первоапрельский питоновский PEP в этом году немножко не смешной, потому что очень уж близок к реальности. Особенно если вспомнить, как в питоновском коде термины master/slave исправляли. Ведь исправили, дебилы. os.abort() пока оставили. Но дайте срок, доберутся.

Upd. RFC 8774: The Quantum Bug.

Upd2. RFC 8771: The Internationalized Deliberately Unreadable Network NOtation (I-DUNNO).
phd_ru: (pic#4106692)
В продолжение: https://www.cnews.ru/news/top/2020-03-13_v_open_sourceproektah_otmechen

Новая семёрка не сильно отличается от прежней: C, PHP, Java, JavaScript, C#, Python и Ruby. C++ выбыл, на его место встал C#, вот и все отличия.
phd_ru: (Default)
Продолжаю. Поставил юноша GATK (Genome Analysis Toolkit) и даже сумел его запустить.

А ещё в дистрибутиве GATK (в целом написанного на Джаве) лежат дистрибутивы TensorFlow и Keras. Молекула ДНК — это 3 миллиарда нуклеотидных пар. Целиком её никто не секвенирует — нет настолько быстрых приборов. Секвенируют небольшими сегментами, миллиона по 3. Но даже получив табличку на 3 миллиона пар, никто в ней глазками отклонения не углядит. Тут-то и пригождаются Методы Анализа Больших Данных.

Беда в том, что в дистрибутиве GATK дистрибутивы TensorFlow и Keras а) старых версий, и б) несовместимых между собой. Юноша лезет в Интернет, находит нужные слова и пишет pip install --upgrade tensorflow keras. И получает самые свежие версии… опять несовместимые между собой. Последний Keras всё ещё не работает с TensorFlow 2.0. Юноша опять пишет pip install -U tensorflow==1.15 и, наконец, получает работающий пайплайн.

Молекула ДНК расплетается на 2 полуспирали, нарезается на сегменты, сегменты секвенируются и последовательности нуклеотидов пишутся в файлы — каждая полуспираль в свой. Потом эти файлы склеиваются; поскольку полуспирали на секвенировании могут не полностью совпадать, то склеить 2 файла полуспиралей в один файл с двумя колонками не вполне тривиально — в каждой колонке нужно смотреть, какие нуклеотиды стоят в начале/конце цепочки, и если в другом файле их не хватает, забивать часть колонки нулями. Для этого, конечно, есть свои программы.

Потом полученный гигантский двухколоночный файл обрабатывается на предмет поиска отклонений. Поскольку сын работает в хирургической клинике, то первое, что ищется — маркеры болезней, влияющих на свёртываемость крови. В дистрибутиве GATK есть натренированная модель, ну и в каждой лаборатории её дотренировывают или перетренировывают заново на собственных чистых данных.

Для того, чтобы этот пайплайн мне объяснить, сын прочитал мне лекцию часа на полтора. Во время которой я убедился, что он уже хорошо разбирается в теме. Я восхищён!

Upd. Вспомнил из лекции: все 3 миллиарда и не нужны. За 4 с половиной миллиарда лет эволюции накопилось много мусора. Поэтому одна из задач секвенирования — нарезать молекулу ДНК на интересные сегменты, содержащие работающие (кодирующие) последовательности.

X-Post: https://phd.livejournal.com/313481.html

8÷2(2+2)

Aug. 1st, 2019 02:52 pm
phd_ru: (Default)


Ну-ка проверим…
$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 8/2*(2+2)
16
https://www.gazeta.ru/science/news/2019/08/01/n_13287115.shtml
phd_ru: (pic#4106692)
Магия piтона )

Неудивительно, что в Питоне работает антигравитация. ;-)
phd_ru: (pic#4106691)
Давно надо было ansible освоить. Сейчас бы уже имел два десятка пьес и сотню ролей. Навёрстываю

Для тренировки мне понадобилось уметь в VirtualBox создавать и уничтожать тестовые виртуалки со страшной силой. Пришлось освоить VBoxManage.

Upd. Заодно нашёл неплохой bash completion.
phd_ru: (pic#4106692)
https://www.techrepublic.com/article/the-3-least-secure-programming-languages/

7 языков программирования, производящих наименее безопасные программы: C, PHP, Java, JavaScript, Python на 5-ом месте, C++, Ruby.

pc-sjw.py

Sep. 12th, 2018 08:28 pm
phd_ru: (pic#4106692)
Воены социальной справедливости добрались до Питона и принялись политично корректировать техническую терминологию. Начали со слов master/slave.

Падшая женщина!
phd_ru: (pic#4106692)
Первый раз за время существования индекса TIOBE Python вошёл в первую тройку популярных языков, оттеснив C++.

April 2025

S M T W T F S
  123 45
6789101112
1314 15 16 1718 19
20212223242526
27282930   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 23rd, 2025 12:34 pm
Powered by Dreamwidth Studios