LINUX.ORG.RU

Сообщения praseodim

 

Win, Lin, Shim и будущее

 , ,

По поводу новости об уязвимости в Shim https://www.opennet.ru/opennews/art.shtml?num=60501

Я что-то от жизни отстал, нынче уже винда (11-я?) требует наличие включенного Secure Boot что ли? Без него не ставится/не работает? Если так, это значит тихо и незаметно и без срачей прошла серьезная плохая новость. До сих пор SB все же мало где неотключаемая. А с таким требованием получится наоборот.

Я последний раз ставил винду (11-ю как раз) в декабре 2022-го еще года и тогда поставил ее без SB. Помню только, что пришлось дополнительные команды вводить, чтобы поставить локально без учетки MS.

praseodim
()

Странность с pip install

 , ,

Извиняюсь, если достал своими темами про околопитонское ) Тем более, эта тема может более для раздела Admin или установки Linux, а не разработки. Но т.к. связана с Python все же сюда напишу.

В общем нормально работает в виртуальном окружении pip install, например,

pip install jupyter notebook

ставит все без вопросов.

Но,

$ pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm5.7
Looking in indexes: https://download.pytorch.org/whl/nightly/rocm5.7
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8b45f9ded0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /whl/nightly/rocm5.7/torch/

И в общем, бесконечно не может найти сервер. При этом download.pytorch.org пингуется, да и просто в браузере ссылка нормально открывается. WTF?

Немного погуглил и нашел, что у людей такое бывает при проблемах с прокси и работе через VPN. https://stackoverflow.com/questions/52815784/python-pip-raising-newconnection...

Я же работал напрямую. Решил наоборот, через прокси запустить:

proxychains pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm5.7

Оп-па, все получилось нормально. При этом вроде ничего не блокируется никем, во всяком случае, повторю, что браузером нормально открыл сайт. WTF? Может pip install через какие-то особые порты работает? Да вроде нет. Хм.

praseodim
()

Как использовать pip в python venv

 

Решение:

Какой-то глюк имел место. Просто еще раз запустил python3 -m venv

...

Опять питонское...

Итак, нужно установить модуль в питон

$ pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm5.7
error: externally-managed-environment

Не хочет просто так (с 12-го дебиана):

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

Ну ладно, делаю

python3 -m venv /home/$LOGNAME/rocm_torch

Отлично, потом делаю

~/rocm_torch/bin/python3.11 -m pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm5.7

И конечно пук-сренькнуло

No module named pip

Ну да нет. И pip3 там нет. Только софтссылки на python. Ладно, вручную там делаю ln -s на pip и опять пук-среньк, оно не понимает что это в venv, при попытке запуска оттуда напрямую через pip снова сообщение, что нужно в venv гонять, а если через python -m pip (pip3) то команду не находит.

Ладно может я что-то не то делаю, надо доки и маны читать. Почитаем /usr/share/doc/python3.11/README.venv

Python library modules
----------------------

If you need to install a Python library module (or version) that isn't packaged
in Debian, we recommend installing it into a virtualenv, where possible. You
can create virtualenvs with the venv Python stdlib module (in the
"python3-venv" Debian package) or the virtualenv Python 3rd-party tool (in the
"virtualenv" Debian package).

Both of these will create an isolated environment, with a copy of pip in it.
After activating the environment, you can install python applications and
library modules into the virtual environment.

e.g. instead of running:
$ pip install --user foo
run:
$ mkdir -p ~/.venvs
$ python3 -m venv ~/.venvs/foo
$ ~/.venvs/foo/bin/python -m pip install foo

If needed, the isolated environment can also have access to system Python
modules, with the "--system-site-packages" flag.

Ну и??????????????????????????????????????????????? Где заклинание, чтобы в venv поставить модуль?!!!!! Как это что «Both of these will create an isolated environment, with a copy of pip in it.» Где эта копия pip in it?

praseodim
()

Как правильнее на Debian 12 поставить python3.10

 , ,

Очень нужно иметь именно 3.10, потому что драйвера ROCm для видеокарт AMD GPU хотят или 3.8 или 3.10 питон. 3.11 их не устраивает, как я понял. Некоторый другой софт (PyTorch) тоже захочет 3.10.

Можно попробовать из Sid взять, но это чревато тем, что рано или поздно apt-get update сломается. Или всю систему надо делать unstable, что тоже не хотелось бы...

praseodim
()

Как межстрочный интервал в Gnome-terminal увеличить?

 , ,

После обновления с 11-го до 12-го дебиана обнаружил, что в терминале неприятно большое расстояние между строчками.

Оно равно размеру шрифта или даже больше. Раньше было примерно в половину или 0.6-0.7 размера.

Чтение темы Как изменить межстрочный интервал? как-то совсем не помогло. Вот тупо был один интервал, стал другой после апдейта.

praseodim
()

Не могу доапгрейдиться до Debian12

 

Апгрейжусь с debian 11. Застряло на следующем :

apt --fix-broken full-upgrade
...
Errors were encountered while processing:
 /var/cache/apt/archives/gstreamer1.0-plugins-good_1.22.0-5+deb12u1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Проверял пакеты целые, не битые.

Ощущение, что каким-то образом это связано со snap-oм, который использовался для установки кое-чего. Его тоже не выковыряешь

# snap list
Name   Version    Rev    Tracking       Publisher   Notes
core   16-2.60.4  16202  latest/stable  canonical✓  core
snapd  2.61.1     20671  latest/stable  canonical✓  snapd
# snap remove core
error: cannot remove "core": snap "core" is not removable: snap is used by the model

# snap remove snapd
error: cannot remove "snapd": snap "snapd" is not removable: remove all other snaps first

# apt remove snapd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 e2fsprogs : PreDepends: libext2fs2 (= 1.46.2-2) but 1.47.0-2 is to be installed
             Recommends: e2fsprogs-l10n but it is not going to be installed
 gstreamer1.0-plugins-good : Breaks: gstreamer1.0-plugins-good:i386 (!= 1.18.4-dmo1+deb11u1) but 1.22.0-5+deb12u1 is to be installed
 gstreamer1.0-plugins-good:i386 : Breaks: gstreamer1.0-plugins-good (!= 1.22.0-5+deb12u1) but 1.18.4-dmo1+deb11u1 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).


# apt --fix-broken install
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  python-pastedeploy-tpl steam:i386 telnet
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  e2fsprogs gstreamer1.0-plugins-good
Suggested packages:
  gpart fuse2fs e2fsck-static
Recommended packages:
  e2fsprogs-l10n
The following packages will be upgraded:
  e2fsprogs gstreamer1.0-plugins-good
2 upgraded, 0 newly installed, 0 to remove and 991 not upgraded.
17 not fully installed or removed.
Need to get 0 B/2,791 kB of archives.
After this operation, 96.3 kB disk space will be freed.
Do you want to continue? [Y/n] Y
Reading changelogs... Done
Setting up coreutils (9.1-1) ...
(Reading database ... 797349 files and directories currently installed.)
Preparing to unpack .../gstreamer1.0-plugins-good_1.22.0-5+deb12u1_amd64.deb ...
Unpacking gstreamer1.0-plugins-good:amd64 (1.22.0-5+deb12u1) over (1.18.4-dmo1+deb11u1) ...
dpkg: error processing archive /var/cache/apt/archives/gstreamer1.0-plugins-good_1.22.0-5+deb12u1_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstpulseaudio.so', which is also in package gstreamer1.0-pulseaudio:amd64 1.18.4-dmo1+deb11u1
Preparing to unpack .../e2fsprogs_1.47.0-2_amd64.deb ...
Unpacking e2fsprogs (1.47.0-2) over (1.46.2-2) ...
Errors were encountered while processing:
 /var/cache/apt/archives/gstreamer1.0-plugins-good_1.22.0-5+deb12u1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

apt remove gstreamer1.0-plugins-good тоже требует fix-broken

В общем, застрял.

praseodim
()

Какие БП на 850 Вт для Linux сейчас рулеззз?

 

Вместо уже старого, который хотя вроде и нормально работает, но ему уже скоро 12 лет.

Подумываю о SuperFlower, но что-то дороговато, а еще куча вариантов от Silver до Titanium ценой от 11 до 23 тыс.руб. Что по этому поводу кто думает?

praseodim
()

Странное в подключении устройства к Телеграмму

 

Интересно, у кого бывало такое же?

Подключил десктопный клиент на новом компе и пришли сразу два сообщения о подключении с разных IP. Один точно моего компа, а второй IP, судя по whois от моего же сотового оператора. В точно одно и тоже время

1) Вход с нового устройства. Мы обнаружили вход в ваш аккаунт бла-бла-бла, дата 14/12/2023 в 11:41:29 UTC. IP = моего компа. Устройство: Telegram Desktop номера версий и ОС, бла-бла-бла.

2) Все тоже самое, то же время, та же версия, но IP = опсоса.

К сожалению, не сразу заметил и не проверил IP своей мобилы. Сейчас они отличаются в последней цифре.

Попробовал повторить. Отключил десктопную версию и снова подключил. Пришло только одно сообщение с одним IP (моего компа).

Меня захакали и читают мою телегу или просто особенности телеграмма?

P.S. В списке устройств ничего подозрительного лишнего нет.

praseodim
()

Айфон поймали за чересчур интеллектуальной обработкой фото.

 ,

Это вам не Луну сфоткать на Самсунг. Девушка сфоткалась на IPhone и обнаружила, что выглядит по-разному и с разными позами как прямо сама, так и в двух отражениях.

Если не журналистский фейк, то занятно.

https://www.ixbt.com/news/2023/12/01/v-jetot-iphone-vselilsja-djavol-devushka...

https://appleinsider.com/articles/23/11/30/a-bride-to-be-discovers-a-reality-...

Обратите внимание на положение ее рук.

praseodim
()

Снова про выбор видеокарты для ML

 , ,

Собственно, у имеющейся AMD с 8Гб недостаточно памяти. В остальном относительно устраивает, хотя это я еще в основном с PyTorch работаю и он поддерживается.

  1. Nvidia RTX 4060 с 16 Гб памяти за ~ 55 тыс. руб:
    + Nvidia
    + не потребует нового БП.
    - 16 Гб тоже не так, чтобы много
    - относительно не быстрая
  2. AMD RX 7900 XTX c 24 Гб памяти за ~ 100 тыс.руб. (по акциям или на авито, так ~ 120-130)
    + 24 Гб - это хорошо, 4090 с ними дороже 200 тыс. уже
    + быстрее 4060 в большинстве случаев
    - AMD
    - нужен будет новый БП еще за ~ 10-15 тыс.р
    
  3. AMD RX 7900 XT с 20 Гб памяти за ~ 85 тыс.руб. (тоже по акциям, но выбор шире)
    + 20 Гб тоже неплохо,
    + тоже быстрее 4060
    + дешевле предыдущего варианта
    - AMD
    - все равно новый БП нужен
    - 20 Гб все же не 24 Гб

Ввиду острого желания сэкономить деньги обратил внимание на avito.ru Есть там вроде как продавцы новых видеокарт с официальной гарантией даже. Правда чем гарантия от AMD поможет неясно. По ценам на 10%-15% дешевле dns-овских продают. Непонятно можно с ними связываться или не стоит все равно. До сих пор на авито брал только б/у (не видюхи) у обычных людей, не постоянных торговцев.

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

praseodim
()

Как в питоне словарь внутри себя использовать

 

Чего-то не понял в нем.

list=['a','a','a','b','c','c','c','c']
s = {i: s[i]+1 for i in list}
print(s)

Хотелось бы увидеть вывод вроде 'a':3, 'b':1, 'c':4 но возникает ошибка «NameError: name 's' is not defined» Если же просто присваивать допустим 1 каждому ключу, то нормально, но мне не это нужно.

praseodim
()

Барыги и покупка комплектующих

 

Вот же все-таки. Когда доллар рос они ценники очень оперативно передвигали вверх, можно было даже на курсы валют не смотреть, а а по ценникам видеть, что опять скакнуло.

Сейчас уже несколько недель откатился на несколько процентов и вот хрен вам, а не снижение цен. Стоят как влитые, даже слегка растут на некоторые позиции. Это получается, что мне выгоднее было валютную заначку вскрыть в сентябре, а сейчас просто потери выйдут. И ведь если доллар опять полезет вверх, цены снова начнут оперативно двигать. Тудыть!!!!

praseodim
()

Почему docker commit не сохраняет изменения?

 

Делаю так с докером rocm/pytorch

Запуск

docker run -it -p 8055:8055 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 8G -v /home/dn/work/:/var/lib/jenkins/work rocm/pytorch:latest
# python -m pip install ipykernel
# python -m ipykernel install --user

Выводит

Installed kernelspec python3 in /root/.local/share/jupyter/kernels/python3
# cat /root/.local/share/jupyter/kernels/python3/kernel.json
{
 "argv": [
  "/opt/conda/envs/py_3.9/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3 (ipykernel)",
 "language": "python",
 "metadata": {
  "debugger": true
 }

На всякий случай, чтобы сразу было видно, что именно работает меняю в display_name Python 3 на 39

Все хорошо. Проверяю в работе, работает Помогите jupyter-notebook наладить

Даже создаю файл в текущей директории, просто чтобы проверить что происходит

# pwd
/var/lib/jenkins

# echo 'changed'>changed.txt
# cat changed.txt 
changed

Затем в основной системе сохраняю изменения

$ sudo docker ps
CONTAINER ID   IMAGE                 COMMAND   CREATED          STATUS          PORTS                                       NAMES
fe34f8d28a8b   rocm/pytorch:latest   "bash"    12 minutes ago   Up 12 minutes   0.0.0.0:8055->8055/tcp, :::8055->8055/tcp   silly_carver

$ sudo docker commit fe34f8d28a8b
sha256:add8d68af7488419317ed7d3a50fc8ada58aa92163bb105026042b1a59c4f09b

Делаю exit, снова запускаю докер, все изменения пропали!!! Почему????????

# cat /root/.local/share/jupyter/kernels/python3/kernel.json
cat: cat: No such file or directory
cat: /root/.local/share/jupyter/kernels/python3/kernel.json: No such file or directory

#  cat changet.txt
cat: changet.txt: No such file or directory

При этом до этого всякие apt-get install разных пакетов комитились.

Что я не понял, почему не работает как должно, какие магические опции у команд забыл????

praseodim
()

Помогите jupyter-notebook наладить

 conda, jupyter-notebook,

Тут вроде есть опытные питоноводы, некоторые хвастались, что 2003-го года в нем, всех каких можно собак съели наверное.

Вся задача добиться, чтобы в питоне jupyter-notebook использовал в докере нужную библиотеку PyTorch, которая использует ускоритель AMD.

Где-то на 90% задачу решил, но застрял там где менее всего этого ожидал.

Итак, специально даже выделил отдельную машину с ubuntu и пользуясь инструкциями с https://github.com/alfinauzikri/ROCm-RX6600XT поставил и ROCm и докер

docker pull rocm/pytorch:latest

Внутри докера если запустить просто python3, то есть признаки, что все работает

>>> import torch
>>> torch.cuda.is_available()
True

Хорошо, но мне очень нужен jupyter-notebook - это такая интерактивная среда работы с питоном в браузере, позволяет в разных блоках иметь код, описание, графики там же и т.д.

Внутри докера даже был скритп buld-jupyter.bash, но при его запуске он чего-то хотел мне непонятного

# ./build_jupyter.bash 
ERROR: Usage: ./build_jupyter.bash <JUPYTER_DOCKER_TAG>

Что еще за тег непонятный, откуда я его возьму? Поставил просто через apt-get install jupyter и успел даже закомить его. Зря.

Запуск докера и все такое наладил, извне запускается, в браузере вроде работает, вот только

import torch
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-eb42ca6e4af3> in <module>
----> 1 import torch

ModuleNotFoundError: No module named 'torch'

Что за нах? Выяснил, что юпитер-ноутбук использует python 3.11 для которого нет в докере торча с поддержкой AMD. Если модуль поставить через pip install естественно ставится посторонний. Мда...

Ну думаю, может опция какая есть для указания версии питона? А вот хренушки, все через задницу.

Нашел советы https://stackoverflow.com/questions/30492623/using-both-python-2-x-and-python...

Там правда для того, чтобы был выбор между 2-м и 3-м питоном, но не думаю, что принципиальная разница. Или есть?

configure the python3.6 environment:

conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user

Замечательно, делаю по аналогии:

conda create -n py39 python=3.9

## Package Plan ##

  environment location: /opt/conda/envs/py39

  added / updated specs:
    - python=3.9


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    openssl-3.0.12             |       h7f8727e_0         5.2 MB
    pip-23.3                   |   py39h06a4308_0         2.6 MB
    wheel-0.41.2               |   py39h06a4308_0         108 KB
    ------------------------------------------------------------
                                           Total:         7.9 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main 
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu 
  ca-certificates    pkgs/main/linux-64::ca-certificates-2023.08.22-h06a4308_0 
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 
  libffi             pkgs/main/linux-64::libffi-3.4.4-h6a678d5_0 
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 
  libgomp            pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 
  ncurses            pkgs/main/linux-64::ncurses-6.4-h6a678d5_0 
  openssl            pkgs/main/linux-64::openssl-3.0.12-h7f8727e_0 
  pip                pkgs/main/linux-64::pip-23.3-py39h06a4308_0 
  python             pkgs/main/linux-64::python-3.9.18-h955ad1f_0 
  readline           pkgs/main/linux-64::readline-8.2-h5eee18b_0 
  setuptools         pkgs/main/linux-64::setuptools-68.0.0-py39h06a4308_0 
  sqlite             pkgs/main/linux-64::sqlite-3.41.2-h5eee18b_0 
  tk                 pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 
  tzdata             pkgs/main/noarch::tzdata-2023c-h04d1e81_0 
  wheel              pkgs/main/linux-64::wheel-0.41.2-py39h06a4308_0 
  xz                 pkgs/main/linux-64::xz-5.4.2-h5eee18b_0 
  zlib               pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 


Proceed ([y]/n)? 

Непонятно, почему оно захотело скачивать заново python, хотя версия 3.9 уже стоит? Ну да ладно, жму «y» и вроде все нормально

В конце установки даже пишет, как в инструкции выше

Preparing transaction: done                                                                                                                                                  
Verifying transaction: done                                                                                                                                                  
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate py39
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Пишу conda activate py39. А вот хренушки опять!!!!

# conda activate py39
usage: conda [-h] [--no-plugins] [-V] COMMAND ...
conda: error: argument COMMAND: invalid choice: 'activate' (choose from 'clean', 'compare', 'config', 'create', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'doctor', 'content-trust', 'env')

Оп-па, $$$-па и что с этим делать? Может из-за того что работа в докере из под рута? Да вряд ли. Куда опцию activate спрятали?! Попробовал без нее, но ожидаемо ничего не вышло. Или я не понял как проверить, что вышло? :))))

Там еще был совет

python2 -m pip install ipykernel

python2 -m ipykernel install --user

Сделал также для 3-го питона в котором есть нужный торч, команды прошли, но эффекта на ноутбук не возымели.

И чего делать? Помогите осилить!!!!

praseodim
()

Что еще за virtual environment?

 ,

Читаю инструкцию по наладке PyTorch под видиоекарты AMD (с OpenCL)

https://github.com/artyom-beilis/pytorch_dlprim

git clone --recurse-submodules https://github.com/artyom-beilis/pytorch_dlprim.git

Скачал исходники для замены

Building the on Linux

Make sure you are in the virtual environment

Далее

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=$VIRTUAL_ENV/lib/python3.8/site-packages/torch/share/cmake/Torch ..
make

Кто-нибудь понял, что это за $VIRTUAL_ENV? И таки где именно предлагается каталог build сделать? Внутри скаченных исходников или снаружи.

Небольшой гуглеж только запутал, вроде python, если запустить его предоставляет это самое $VIRTUAL_ENV, но тут же действия извне.

praseodim
()

Чего-то не пойму как у этого хостера диски подключать

 

Пытаюсь перевести старый инстанс VC1S с bootscript на uefi/boot но застрял на этапе подключения дополнительных дисков.

Сделал с основного снапшот, сделал еще один. Сделал из снапшота volume block storage, сделал LocalStorage, делал Attach / Detach к основному инстансу, перезагружал.

Один хрен не видит. lsblk и пусто, только /dev/vda основного диска. При этом переключить на другой volume получилось, но хотелось бы сам volume подключить, чтобы поредактировать его, fdisk сделать и тп.

В суппорт пока не писал, они сейчас почти на все вопросы пишут, что надо на новый тип переходить.

Собственно, вопрос кто хостится, это я что-то неправильно делаю или хостер не хочет, не может?

PS. На старом образе стоял Debian 8.0 Jessie (не видел смысла новее ставить), обновился только что до stretch (9.0) - один фиг. На более новый опасаюсь обновляться, там почему-то бутскрипты нельзя выбрать. Так что останется со старым ядром 4.5.1

P.P.S. Завел новый инстанс - там никаких вроде проблем с подключением.

praseodim
()

Бывают ли Live-дистры с OpenCL для AMD из коробки?

 , ,

Такое ощущение, что нет, но может не в курсе.

praseodim
()

Тупые вопросы по Python - 1. Логические типы

 

Слегка не понял логические выражения в Python

if "Something":
    print("Something look as True")
else:
    print("Something no look as True")
    
if "Something" == True:
    print("Something is True")
else:
    print("Something is not True")

Результат работы

Something look as True
Something is not True

WTF?

Первый результат понятен. «Something» не пустая строка и это в логических выражениях тоже, что и True. А вот второй не совсем понял. Если бы я True в кавычки взял, то было бы сравнение строк, а так вроде тоже строка должна как булевое выражение восприняться.

praseodim
()

И снова про Луну-25

 ,

https://www.ixbt.com/news/2023/10/03/roskosmos-nazval-osnovnuju-prichinu-krus...

https://www.roscosmos.ru/39790/

Оказывается, на прибор пришло слишком много команд, и БИУС-Л не смог выбрать наиболее приоритетные. «В связи с этим в бортовой комплекс управления приходили нулевые сигналы с акселерометров прибора БИУС-Л», – рассказали в Роскосмосе.

Отсутствие данных от акселерометра «не позволило при выдаче корректирующего импульса зафиксировать момент набора требуемой скорости и произвести своевременное выключение двигательной установки космического аппарата».

У меня чего-то челюсть отвисать стала. Респект, что вроде честно признались и открыто сообщили, но до сих пор казалось, что произошел аппаратный отказ, ну там микросхема какая-то недостаточно радиационно-стойкой оказалась или что-то недотестировали в условиях вакуума.

А это же явный косяк в проектировке. Причем косяк программистов. «на прибор пришло слишком много команд, и БИУС-Л не смог выбрать наиболее приоритетные. »

Линукс тут при том, что не виндовс. И вообще, надо было разработчикам посоветоваться в Development =)

praseodim
()

Как позволить работать с портами до 1024 не root-у

 ,

Вопрос возник в связи с этим Провайдер блокирует DHT (комментарий)

# sysctl net.ipv4.ip_unprivileged_port_start=1

или прямо

echo "1" >  /proc/sys/net/ipv4/ip_unprivileged_port_start

Не работает, при попытке соединений от пользователя с портами менее или равными 1024, пишется conection refused.

Все переменные при этом устанавливаются

# cat  /proc/sys/net/ipv4/ip_unprivileged_port_start
1
praseodim
()