Минутка просвещения

Читать в телеге. Когда-то там были посты не только от меня.

Включение любого файла в сишный код

Если надо “вкомпилить” какой-нибудь бинарник в сишный файл. Для этого можно использовать команду xxd:

xxd --include filename

Выведет что-то вроде:

unsigned char filename[]={ 0x48, ...}; 
unsigned int filename_len = 123;
Ссылка

Моржовый оператор в питоне

В октябре релизнулся Python 3.8. Среди нововведений - моржовый оператор, который позволяет делать присваивание внутри другого выражения:

# So instead of
a = some_func()
if a:
    print(a)

# Now you can concisely write
if a := some_func():
        print(a)

и, разумеется, можно сделать так:

a = 5
d = [b := a+1, a := b-1, a := a*2]

потенциальный undefined behavior, добро пожаловать в питон!

Если интересна тема, как можно плохо что-то делать в питоне или нужен источник паззлеров для него, то можно почитать https://github.com/satwikkansal/wtfpython

Ссылка

Тяжелые задачи с ssh

Запускать длительные задачи на серваке через ssh надо через nohup. Ибо если это не сделать, то при обрыве ssh-сессии (что равносильно закрытию “терминала”) процесс завершится. nohup запускает команду “в отрыве” от терминала. При выходе из него (при завершении сессии ssh) задача останется. Если вы запустили что-то тяжеленное и забыли про nohup, то на помощь придет disown.

  1. Нажимаем ctrl+Z, чтобы поставить выполнение задачи на паузу
  2. jobs -l - получаем список задач, находим там нужный ID
  3. bg ID - запускаем задачу в фоне
  4. disown PID - отвязываем от терминала
Ссылка