И это всё МОЁ

Почитал на хабре про хаябусу и микроспутники и задумался. Можно ли использовать в космосе искусственный интеллект? Главная проблема — охлаждение достаточно мощной электроники ее энергопотребление. Но зачем в принципе туда совать нейронку? Да хотя бы ради автономности. Это особенно актуально для аппаратов, исследующих окраины Солнечной системы. Если у зонда достаточно мозгов, чтобы, например, скорректировать орбиту, не нужно ждать сутки, чтобы отправить команду и получить ответную реакцию. Плюс, такой аппарат в принципе будет гибче и эффективней в плане конечного результата. Собственно, ваше мнение, господа ЛОРовцы?








 , , ,








И это всё МОЁ

здравствуй читатель


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



terraform plan проходит без предупреждений


[cut]
$ terraform apply


An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:



  • create


Terraform will perform the following actions:


docker_container.foo[0] will be created



  • resource «docker_container» «foo» {


    • attach = false




    • bridge = (known after apply)




    • command = (known after apply)




    • container_logs = (known after apply)




    • entrypoint = (known after apply)




    • env = (known after apply)




    • exit_code = (known after apply)




    • gateway = (known after apply)




    • hostname = (known after apply)




    • id = (known after apply)




    • image = (known after apply)




    • ip_address = (known after apply)




    • ip_prefix_length = (known after apply)




    • ipc_mode = (known after apply)




    • log_driver = (known after apply)




    • log_opts = (known after apply)




    • logs = false




    • must_run = true




    • name = «foo0»




    • network_data = (known after apply)




    • read_only = false




    • restart = «no»




    • rm = false




    • shm_size = (known after apply)




    • start = true




    • user = (known after apply)




    • labels {



      • label = (known after apply)

      • value = (known after apply)
        }
        }






docker_container.foo[1] will be created



  • resource «docker_container» «foo» {


    • attach = false




    • bridge = (known after apply)




    • command = (known after apply)




    • container_logs = (known after apply)




    • entrypoint = (known after apply)




    • env = (known after apply)




    • exit_code = (known after apply)




    • gateway = (known after apply)




    • hostname = (known after apply)




    • id = (known after apply)




    • image = (known after apply)




    • ip_address = (known after apply)




    • ip_prefix_length = (known after apply)




    • ipc_mode = (known after apply)




    • log_driver = (known after apply)




    • log_opts = (known after apply)




    • logs = false




    • must_run = true




    • name = «foo1»




    • network_data = (known after apply)




    • read_only = false




    • restart = «no»




    • rm = false




    • shm_size = (known after apply)




    • start = true




    • user = (known after apply)




    • labels {



      • label = (known after apply)

      • value = (known after apply)
        }
        }






docker_container.foo[2] will be created



  • resource «docker_container» «foo» {


    • attach = false




    • bridge = (known after apply)




    • command = (known after apply)




    • container_logs = (known after apply)




    • entrypoint = (known after apply)




    • env = (known after apply)




    • exit_code = (known after apply)




    • gateway = (known after apply)




    • hostname = (known after apply)




    • id = (known after apply)




    • image = (known after apply)




    • ip_address = (known after apply)




    • ip_prefix_length = (known after apply)




    • ipc_mode = (known after apply)




    • log_driver = (known after apply)




    • log_opts = (known after apply)




    • logs = false




    • must_run = true




    • name = «foo2»




    • network_data = (known after apply)




    • read_only = false




    • restart = «no»




    • rm = false




    • shm_size = (known after apply)




    • start = true




    • user = (known after apply)




    • labels {



      • label = (known after apply)

      • value = (known after apply)
        }
        }






docker_image.hello-world will be created



  • resource «docker_image» «hello-world» {

    • id = (known after apply)

    • latest = (known after apply)

    • name = «hello-world»
      }




Plan: 4 to add, 0 to change, 0 to destroy.


Do you want to perform these actions?
Terraform will perform the actions described above.
Only ‘yes’ will be accepted to approve.


Enter a value: yes


docker_image.hello-world: Creating…
docker_image.hello-world: Creation complete after 0s [id=sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6bhello-world]
docker_container.foo[0]: Creating…
docker_container.foo[1]: Creating…
docker_container.foo[2]: Creating…
docker_container.foo[1]: Still creating… [10s elapsed]
docker_container.foo[2]: Still creating… [10s elapsed]


Error: Container afd354e763dfb796c74fa7d4e253ecb961b7301d15d5343e7cbf9f0b094f309d exited after creation, error was:


on main.tf line 6, in resource «docker_container» «foo»:
6: resource «docker_container» «foo» {


Error: Container 8d7638874ea4c8705cbc760f8e1f36118018fa90a50bda0df0c883cc6c0c6f55 exited after creation, error was:


on main.tf line 6, in resource «docker_container» «foo»:
6: resource «docker_container» «foo» {


Error: Container 260404f0618ebbd4e481f0a5fe41414e2a0e8ec03aa1e2aeba7e8de4ab91e0bc exited after creation, error was:


on main.tf line 6, in resource «docker_container» «foo»:
6: resource «docker_container» «foo» {


[/cut]


$ docker -v
Docker version 19.03.11, build 42e35e61f3


$ terraform -v
Terraform v0.12.26



  • provider.docker v2.7.1


запускаю пальчиками или через ansible все без проблем


[cut]
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa5fb066ee85 hello-world «/hello» 26 minutes ago Exited (0) 26 minutes ago quizzical_merkle
12b62aefd47b hello-world «/hello» 26 minutes ago Exited (0) 26 minutes ago quizzical_robinson
f92c9a5ed928 hello-world «/hello» 26 minutes ago Exited (0) 26 minutes ago relaxed_euler


[/cut]


убираю count и запускаю один экземпляр hello-world прекрасно работает из terraform.
Где и что я упустил из виду?


спасибо









 ,








И это всё МОЁ

Нужна помощь сообществу Диссернет в выкачивании диссертаций из НЭБ (Национальная Электронная Библиотека).

Диссернет занимается проверкой диссертаций «на вшивость». К сожалению вшивость местами такова, что относительно небольшое число активистов и автоматизация процесса позволяет вычислить большую часть списанных/купленных/украденных диссертаций, но для этому нужен доступ непосредственно к самому их тексту. Причём доступ нужен не только к проверяемым диссертациям, но и ко всему массиву имеющихся для поиска зависимостей в тексте.

Что необходимо:

  • Умение и возможность запускать скрипт python на долгое (несколько суток) время на десктопе/ноутубке/через что-нибудь вроде x2go, так как используется API firefox для симуляции человека.
  • Регистрация на сервисе Госуслуги. Это необходимо для авторизации, которая делается вручную один раз на запуск скрипта.

Последствия:

  • Вас забанят на сайте НЭБ. Вы больше не сможете просматривать имеющиеся там доступные для граждан РФ и оцифрованные на их налоги текстовые ресурсы.


Меня забанили после выкачивания примерно 500 диссертаций. Забанили всех, кто использовал скрипт в течении недели от начала запуска скрипта. Сейчас интервал забана уменьшился до пары суток. Банят и по IP, и по логину. На мой запрос в службу поддержки стоит внезапно ожидаемая тишина.

Что можно сделать:

  • Написать мне по e-mail упомянутом в моём тутошнем профиле и я по запросу вышлю скрипт и инструкцию (проверялась на ноутбуке с Ubuntu 18.04), а также договоримся как буден передан результат.

P.S. IMHO мошенникам должно икаться. Сами они это за нас не сделают.








 ,








И это всё МОЁ

Тут: http://dl.voglea.com/boobstrap.html

Это черновой вариант моих скриптов, которые я использую для создания загрузочных BIOS/UEFI ISO-образов с линуксами, которыми я пользуюсь сам для жизни в tmpfs. Тупа рабочий код без проверок и «защит от дурака», только чтобы показать всем как создаются ISO. В следующих версиях уже будут все защиты, все проверки на установленные утилиты и прочая, а пока — просто показываю и прошу ваших советов.

И так, код включает в себя три утилиты:

  • mkbootstrap — утилита аналогична debootstrap, pacstrap, создаёт рабочее окружение в chroot/ директории одной командой.
  • mkinitramfs — утилита создаёт initramfs-образ из директории, подключая chroot/ директории как раздельные «слои» (overlay), используя squashfs для сжатия.
  • mkbootisofs — утилита создаёт из директории загрузочный BIOS/UEFI гибридный образ, который можно записать на CD, DVD или dd'шнуть на USB-флешку.

Для работы всего это безобразия необходимы: grub2/grub2-efi, squashfs-tools, dosfstools, xorriso. В принципе, я считаю это немного, никакой экзотики, удалось обойтись малыми жертвами, ИМХО. Все утилиты надо запускать через boobstrap, т.к. они лежат в одном файле, в будущем сделаю симлинками (или разделю на отдельные файлы).

По порядку.

boobstrap mkbootstrap crux_gnulinux chroot/ --ports-dir /usr/ports/packages [--ports-dir /usr/ports/another] [package name] [...]

Утилита установит все пакеты в заданную chroot/ директорию. Можно указать несколько --ports-dir, можно указать только названия пакетов которые будут найдены в заданных директориях и установлены, например, если вам не нужен весь /usr/ports/core, а только ключевые пакеты, то можно их указать списком. Название crux_gnulinux зарезервированная переменная, в будущем я добавлю поддержку gentoo_gnulinux и других дистрибутивов.

В данный момент утилита не будет работать без pkgadd, чтобы её получить вам придётся скачать CRUX и вытащить её оттуда. Напоминаю, что всё это черновой вариант.

Если вы решились ею воспользоваться, то чтобы она заработала прежде установите pkgadd (если у вас не CRUX):

wget ftp.morpheus.net/pub/linux/crux/latest/iso/crux...
mount crux-3.5.iso /mnt/crux-media
tar -xOf /mnt/crux-media/crux/tools/pkgutils#*.pkg.tar.gz usr/bin/pkgadd > /usr/bin/pkgadd
chmod +x /usr/bin/pkgadd

Далее ставим в chroot CRUX одной командой.

mkdir chroot-crux-core/

boobstrap \
mkbootstrap crux_gnulinux chroot-crux-core/ \
\
--ports-dir /mnt/crux-media/crux/core

Если хотим минимальный CRUX, то список пакетов можно перечислить (формат перечисления не важен, я просто для красоты так сделал).

mkdir chroot-crux-core-xtreme/

boobstrap \
mkbootstrap crux_gnulinux chroot-crux-core-xtreme/ \
\
--ports-dir /mnt/crux-media/crux/core \
\
acl attr bash bzip2 coreutils dash dhcpcd e2fsprogs elfutils eudev \
file filesystem findutils gawk glibc grep gzip inetutils iproute2 \
kbd kmod less libcap libdevmapper libpcre linux-pam lzo ncurses \
openssh openssl pkgutils procps rc readline shadow start-stop-daemon \
sysfsutils sysklogd sysvinit tar util-linux wget which xz zlib \
\
--ports-dir /mnt/crux-media/crux/opt \
\
grub2 grub2-efi

Если хотим вообще всё, то перечисляем все директории без указания пакетов.

mkdir chroot-crux-maximum-edishon/

boobstrap \
mkbootstrap crux_gnulinux chroot-crux-maximum-edishon/ \
\
--ports-dir /mnt/crux-media/crux/core \
--ports-dir /mnt/crux-media/crux/opt \
--ports-dir /mnt/crux-media/crux/xorg

Далее.

boobstrap mktinitramfs initramfs/ --overlay overlay-one/ [ --overlay overlay-two/] --output $PWD/initrd

Утилита создаст из директории initramfs/ готовый к употреблению initramfs-образ, в данный момент обязательно требуется указывать --overlay, он же chroot/, в который вы будете загружаться. В будущем я расширю настройки, обязательно сделаю --standalone и другие варианты загрузки прямиком в tmpfs, даже без squashfs, просто tmpfs. Но потом.

Сейчас. В чём суть оверлеев. В chroot/ у нас установлена система, но чтобы её не засорять, мы создадим директорию settings/, куда отдельно складываем все настройки.

Например, я хочу отредактировать файл chroot/etc/rc.local, я не буду делать этого в chroot/, чтобы оставить его «ванильным», а скопирую его в директорию settings/etc/rc.local, отредактирую, и при загрузке initramfs наложит поверх слоя chroot/ ещё один слой settings/, таким образом мы сохраняем ванильную систему ИИИИИ применяем наши настройки поверх неё.

Ду ит. Джаст ду ит.

mkdir initramfs/

boobstrap mkinitramfs initramfs/ \
--overlay chroot-crux-core-xtreme/ \
--overlay settings/ \
--output $PWD/initrd

На выходе получили initrd, в котором лежат два squashfs-образа с chroot-crux-core-xtreme и нашими settings.

На этом этапе добавив к initrd любое ядро его можно просто загрузить, например, через PXE, но наша с вами цель получить загрузочный ISO, поэтому едем дальше.

boobstrap mkbootisofs directory/ > output.iso

Вот так вот просто, да. Просто берёт просто директорию и всё что в ней есть просто упаковывает в ISO. Просто просто. Не забудьте только положить туда vmlinuz и initrd.

mkdir bootimage/
mkdir bootimage/boot

cp (возьмите где хотите)/vmlinuz bootimage/boot/vmlinuz
cp ./initrd bootimage/boot/initrd

boobstrap mkbootisofs bootimage/ > bootable.iso

Можно сразу dd:

boobstrap mkbootisofs bootimage/ | dd of=/dev/sdX status=progress

Давайте ещё один пример приведу.

Gentoo.

1. Скачиваем, распаковываем в chroot

mkdir gentoo-chroot/
wget bouncer.gentoo.org/fetch/root/all/releases/amd6...
tar xf stage3-* -C gentoo-chroot/

2. Упаковываем в initramfs.

mkdir gentoo-initramfs/
boobstrap mkinitramfs gentoo-initramfs/ --overlay gentoo-chroot/ --output $PWD/gentoo-initrd

3. Упаковываем в ISO.

mkdir gentoo-bootimage/
mkdir gentoo-bootimage/boot

cp (возьмите где хотите)/vmlinuz gentoo-bootimage/boot/vmlinuz
cp ./gentoo-initrd gentoo-bootimage/boot/initrd

boobstrap mkbootisofs gentoo-bootimage > gentoo.iso

4. ?????

5. PROFIT!

qemu-system-x86_64 \
-bios $(locate OVMF.fd) \
-enable-kvm -m 1G -boot d -cdrom gentoo.iso
qemu-system-x86_64 \
-enable-kvm -m 1G -boot d -cdrom gentoo.iso

Скриншот: http://dl.voglea.com/boobstrap.png

Ваши пожелания и предложения, кроме как найти себе женщину, приветствуются!








 , ,








И это всё МОЁ

Я нашел ссылку на Opera 12 для Linux:
http://ftp.opera.com/pub/opera/linux/1216/opera-12.16-1860.i386.linux.tar.bz2


У меня вопрос: там исходный код или какая штуковина для установки?









 ,








И это всё МОЁ

Ситуёвина такая. Понадобился Gimp 2.10. Слака 14.2, но за несколько лет половину либ обновлял с каррента. Гимп работал точно, правда, где-то месяцев 7 не запускал. И тут при запуске стал падать. Говорит что:

GEGL-Message: Ошибка загрузки модуля '/usr/lib64/gegl-0.4/ff-load.so': /usr/lib64/libswscale.so.4: version `LIBSWSCALE_4' not found (required by /usr/lib64/gegl-0.4/ff-load.so)
GEGL-Message: Ошибка загрузки модуля '/usr/lib64/gegl-0.4/ff-save.so': /usr/lib64/libswscale.so.4: version `LIBSWSCALE_4' not found (required by /usr/lib64/gegl-0.4/ff-save.so)
gimp: fatal error: Ошибка сегментирования

Что за LIBSWSCALE_4, можно ли оживить?








 , ,








И это всё МОЁ

Объясните новичку, что с буквой Л-большое:

$ nano -w Лето &
[3] 3299

$ ps axww | grep 3299
3299 pts/0 T 0:00 nano -w ?ето

Проверялось на gentoo, Ubuntu 18.04.4 LTS bionic

Для ubuntu:

locale 
LANG=ru_RU.UTF-8
LANGUAGE=ru
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=








 








И это всё МОЁ

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


Как бы к нам в руки попали многие труды великих русских классиков если бы не недосмотру или не осторожности, как бы мы узнали о втором томе «Мёртвых Душ», существовал ли бы «Бахчисарайский фонтан» если бы не были найдены заметки которые оставлял Пушкин? И его черновики в принципе!


Я пытаюсь сказать здесь то, что сегодня люди не смогут получить доступ ни к мудрости ни к работам и наследию прошлого поколения, ибо все их труды будут оставлены зашифрованными и забытыми на бесконечных полосах магнитных дисков и ячейках nand памяти, мы никогда в жизни не сможем увидеть что-то особенное или простое невинное и искреннее именно благодаря тому, что взять в руки бумажный носитель и открыть гораздо доступнее и легче, чем ковырять потенциально бестолковый зашифрованный кем-то диск, с непонятной целью и содержанием, а может быть на нем было то самое содержание? И оно крайне ценно? Может это писал современный Достоевский или Лермонтов?









 ,








И это всё МОЁ

Я хочу понять что из себя представляет резервное копирование по пунктам в unix-подобных ОС.


Помимо очевидного хомяка, что еще следует копировать если к примеру речь идёт о переносе системы, либо же в случае внезапной смерти диска основного для быстрого развёртывания точь в точь такой же настройки на новом диске используя резервное копирование? Копировать весь sda считаю глупым, но что именно надо? /etc/? /usr/? Есть где-то описание этого всего?


И еще вопрос, есть ли какой-то автоматизированный инструмент для dpkg, чтобы сделать некий снимок списка пакетов из компьютера №1 и перенеся его(тупо текстовый файл список пакетов) на компьютер №2 чтобы dpkg смог воспринять его как руководство к установке точь в точь набора пакетов на №2?









 ,








И это всё МОЁ

В общем, очевидный ответ - это посмотреть выхлоп dmidecode. Но на моей машине почему-то он одинаковый (даже если включен через wake on lan всё равно выводит Power Switch). Есть ещё какие-нибудь способы?


Гуглил, но там безрадостно - пишут, что от материнки зависит. Здесь тоже уже было (12139823), но там даже до dmidecode не добрались.


Предыстория. После двух лет запусков «прошивки для игорей» через qemu/KVM я порядком подзадолбался и перешёл на дуалбут схему (около года назад – и ничуть не жалею).


Ну так вот, чтобы перезагрузиться в «прошивку» из линукса я могу использовать efibootmgr или grub-reboot (последний почему-то перестал работать после переноса /boot на f2fs, ну и хрен с ним).


Теперь я хочу чтобы по wake on lan (Steam Link отправляет) комп грузился сразу в «прошивку.» Ну, «сразу,» видимо, никак нельзя, поэтому я хочу грузиться в онтопик, детектировать wol и перезагружаться в «прошивку.» Может есть другие способы - без DMI? В интернетах предлагали вместе с отправкой wol менять какой-нибудь файлик на сетевом хранилище и его читать в отнопике во время загрузки, но это не вариант - в стим линке нет хуков и файлик никак не записать перед wol. (Ну, а если нужно выполнять какие-то дополнительные действия, то таким действием может быть поход в соседнюю комнату и включение компа вручную)









 , ,








И это всё МОЁ

Зашел в настройки и заметил пункт Send error reports to Canonical(всегда отключал его сколько себя помню), чуть ниже есть пункт - Previous Reports, жму и открывается ссылка вида https://errors.ubuntu.com/user/6754taeshjhbgvfcdr6iokfcdxszawdergdfhthgryujlyr6ugh и там список репортов









 ,








15:23

CSD

И это всё МОЁ

Мне тут подумалось: а чего все хейтили CSD в гнуме? У меня сейчас весь GTKшный софт в sway отрисовывает собственные кнопочки и это выглядит в целом ок.









 , , ,








И это всё МОЁ

У кого нибудь есть успешный опыт в запуске многопользовательской игры в 3 героях с HD модом?

В одиночной игре проблем нету, при попытке начать многопользовательскую игру или присоединиться - висяк

Пробовал и wine vanilla и wine staging, разницы 0.
Хочется выяснить, это я криворук или нет









 ,








И это всё МОЁ

Можно ли возить ребенка в корзинке велосипеда? Или какие то правила это запрещают?









 








И это всё МОЁ

просьба посоветовать:
ос мс вс 3 не встает на virtual box - не видит диска - как это устранить что можно добавить в сборку ?









 








И это всё МОЁ

Из-за того что Ardour не умеет автоматом заносить семплы инструментов и саундшрифты в каталог проекта и юзать их от туда по относительным ссылкам для меня тяжёлым головняком является вопрос об организации семплохранилища. Чтобы понять тяжесть можно почитать здесь.


Как вы решаете эту проблему? Может есть какие идеи?









 , , ,








И это всё МОЁ

Здравствуйте, у меня возникла проблема. Я хочу сделать на bash проверку лицензии по ip vds. Искал в интернете нашел только на данном форуме тему - Привязка bash скрипта к IP, но там ничего не ясно. Помоги пожалуйста.
[Каким образом можно сделать, чтобы лицензионный bash скрипт после покупки запускался только на одном IP? В ином случае, чтобы писало что-то типо «У вас нет активной лицензии».]









 , ,








И это всё МОЁ

Доброго времени суток. У меня не получается делать include jinja2 шаблонов из шаблонов django. Кто подскажет как это реализовать?)








 ,








12:41

Wine 5.10

И это всё МОЁ

5 июня состоялся выпуск Wine 5.10.

Wine — прослойка совместимости приложений для Windows с POSIX-совместимыми ОС, транслирующая вызовы Windows API в вызовы POSIX на лету вместо эмуляции логики Windows вроде виртуальной машины.

Помимо более 47 исправлений в багтрекере, в новом выпуске:

  • Продолжается разработка бекенда WineD3D на Vulkan.
  • Начало работы над отдельной UNIX-библиотекой для NTDLL.
  • Улучшенная поддержка античит-драйверов, работающих на ядерном уровне (StarForce v3, TrackMania Nations ESWC. Denuvo Anti-Cheat)
  • Больше подстановок глифов в DirectWrite.
  • Поддержка закрытых DSS-ключей.
  • Исправления обработки исключений ARM64.







 








И это всё МОЁ
Представлен выпуск свободного пакета 3D-моделирования Blender 2.83, в который вошло более 1250 исправлений и улучшений, подготовленных за три месяца с момента выпуска Blender 2.82. Основное внимание при подготовке новой версии было сосредоточено на оптимизации производительности - ускорена работа undo, эскизного карандаша и предпросмотра рендеринга. В движке Cycles добавлена поддержка адаптивного сэмплинга. Добавлены новые инструменты скульптурного моделирования Cloth Brush и Face Sets. Релизована система подавления шумов с поддержкой ускорителей NVIDIA RTX. Предоставлена начальная поддержка виртуальной реальности на базе стандарта OpenXR и возможность импорта файлов OpenVDB.