LINUX.ORG.RU

Сообщения Legioner

 

Яндекс облако, корневой домен

Хочу создать сайт в яндекс-облаке, без всяких виртуальных машин, чтобы прям полностью в облаке был. Пока предположим статический. Как я понимаю, сами страницы нужно загрузить в Object Storage. Далее нужно настроить CDN, чтобы оно быстрей работало. Далее нужно настроить облачный DNS (так и не понял, чем он отличается от необлачного кроме того, что платный, но ладно, вроде недорого).

Пока речь идёт о домене вроде www.example.com, вопросов нет. Создаём CNAME-запись на адрес CDN-сервера, оно вроде даже HTTPS поддерживает через letsencrypt само.

Но я никак не пойму, как мне подключить поддержку example.com. Пусть хотя бы редиректом на www.example.com. Ну не создавать же виртуальную машину, чтобы отвечать 301 на запросы в корень.

А вообще в идеале я хочу без www сделать. Но, так понимаю, это не получится.

 , ,

Legioner ()

Разработчики Qt пишут новый тулкит на Rust

SixtyFPS

Выглядит круто, особенно демка на Rpi. Плюс разработчики, которые знают, что делают. Мне кажется, у библиотеки есть будущее. Ещё большой плюс: GPL.

 

Legioner ()

Новый DE на Rust от System76

Exploring System76’s New Rust Based Desktop Environment с картинками. Называется Cosmic.

По-моему круто выглядит.

 

Legioner ()

Недружелюбная убунту

Заказал VPS с убунтой. Он как бы преднастроенный. Выдали пароль от рута. Захожу через ssh, делаю apt update/apt upgrade. Он обновляет всякое и в том числе ssh. И говорит мол файл поменялся или что-то в этом роде. Я смотрю изменения - а он мне предлагает запретить вход от рута и вход по паролям. То бишь если бы я в этом не шарил, я бы ничтоже сумнящеся взял новый конфиг и окирпичил бы VPS. Ну ладно, я шарю, но если это какой-то новичок, который только начинает разбираться с линуксом - ну это же вредительство прямо.

 ,

Legioner ()

А может так и выглядит будущее?

Наверное многие слышали про ситуацию на рынке труда в IT в последние пару лет. Вкратце некоторые тезисы:

  1. Безумный спрос на программистов, рост зарплат в 2-10 раз.

  2. Огромное число курсов из разряда выучить С++ за 21 день (оставшиеся 70 дней учат проходить интервью).

  3. Огромное число людей, которые пытаются перейти в IT из других отраслей, привлечённые зарплатами.

Теперь ещё один факт. ИИ и автоматизация в целом развивается и вытесняет всё больше людей из сектора занятности. В какой-то момент этот процесс станет лавинообразным и на рынке труда появятся миллионы невостребованных людей.

Программистов это, конечно, не коснётся. Это высшая каста работников умственного труда по сути.

Раньше я думал, что будет работать один или комплекс следующих сценариев:

  1. Взрыв сферы услуг. Баристы, бармены, барбершопы, реснички, маникюр, проституция.

  2. Безусловный доход.

  3. Легализованная мелкая преступность, своровал меньше ста долларов — дела нет.

В принципе эти сценарии в других странах, похоже, реализуются. Один онлифанс, в котором, походу, нынче каждая пятая баба снимается, чего стоит.

Но вот то, что все повалят в программисты, я не предвидел. Казалось мне, что входной порог слишком высок. Ан-нет. Валят.

Как вам дивный новый мир?

 

Legioner ()

Как правильно закрыть порт для докера?

Как известно, докер плевал на мнение админа и добавляет в iptables правила, открывающие порты.

Мне нужно, чтобы контейнер биндился на 0.0.0.0, но тем не менее не был доступен публично. На сервере два интерфейса (один VPN), через VPN порт должен быть открыт.

В доке пишут: «It is possible to set the iptables key to false in the Docker engine’s configuration file at /etc/docker/daemon.json, but this option is not appropriate for most users. It is not possible to completely prevent Docker from creating iptables rules, and creating them after-the-fact is extremely involved and beyond the scope of these instructions. Setting iptables to false will more than likely break container networking for the Docker engine.»

Не очень понятно, что конкретно поломается.

Есть ли простой рецепт, как добиться желаемого? Т.е. чтобы докер вёл себя, как любой другой сервер, чтобы я сначала биндил на 0.0.0.0, а потом уже открывал порт в фаерволе и никак иначе.

На одном сервере CentOS 7, поэтому желательна нормальная интеграция с firewalld, т.е. чтобы все манипуляции можно было производить через него. На другом Ubuntu 16.04, там ufw.

 ,

Legioner ()

Альтернативы hosted pgadmin

Поднял pgadmin (из докера в подмане) на отдельном сервере. В целом работает, но как-то плоховато. Периодически виснет и перестаёт отвечать. Если в базу запрос сделать, который должен вернуть кучу данных, тоже глючит, причём у всех сразу и релоги не помогают.

Есть какие-то альтернативы? В целом нужно дать некоторым людям возможность работать с БД из браузера, чтобы не устанавливать/настраивать каждому pgadmin, выдавать пароли, открывать порты и тд.

 ,

Legioner ()

Docker, использовать маленький файл для кеширования образа

Есть докер-образ, по сути скачивает с фиксированного URL архив, рядом скачивает файл с контрольной суммой, сверяет контрольную сумму, распаковывает архив. Архив в будущем может меняться (по тому же URL), т.е. его надо периодически пересобирать с --no-cache. Файл достаточно большой. Соответственно хочется, чтобы сначала скачивался маленький файл с контрольной суммой, если он не изменился, то дальше уже ничего и не проверялось, а брались готовые закешированные слои. А вот если маленький файл поменялся, то уже качать большой и тд.

Это всё хочется именно в самом Dockerfile как-то описать, а не внешними скриптами. Есть ли такая возможность?

 

Legioner ()

Apple будет продавать запчасти для физиков

Apple announces Self Service Repair

По-моему это круто. Я ни одного бренда не знаю, который подобным занимается. И мануалы будут, и инструменты и запчасти.

В общем я теперь официально эпплофанатик.

 , ,

Legioner ()

less --no-init не всегда правильно работает

Мне не нравится, что less как бы переключает экран при просмотре длинных файлов. И при выходе из less последний просматриваемый экран исчезает. Например это очень неудобно в psql: я делаю запрос, просматриваю его результаты, нахожу нужную запись, нажимаю q и ожидаю, что текущий экран останется в консоли, чтобы копировать данные из него в следующий запрос. Это всё решается флагом --no-init, а точней такой строчкой в файлах инициализации bash: export LESS="--quit-if-one-screen --no-init".

Но возникает другая проблема: теперь некоторые (не все) программы начинают показывают крякозябры. Например git diff выдаёт

ESC[1mindex ea34e64..c074a9c 100644ESC[m

при этом, например, man работает нормально, с подсветкой и тд.

Есть ли какой-то способ получить и то, что я хочу от less (не стирать последний экран при выходе), и чтобы другие программы не портили вывод.

 

Legioner ()

Придёт ли опен сорс в наш мир?

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

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

При этом у людей на самом деле есть возможности организовывать мелкое несерийное производство. Корпусы можно печатать на 3D-принтерах, которые вполне доступны. Можно пользоваться ЧПУ фрезерными станками, например. Вариантов много. Платы можно изготавливать самостоятельно, можно заказывать довольно дёшево. Паять - ну не просто, но возможно.

Т.е. взять какую-нибудь прикольную штуку вроде телефона-звонилки. По сути нет никаких принципиальных проблем сделать его опен сорсным, от начала до конца (ну до GSM-модуля, там уже проприетарщина неизбежна). При этом на тысячу человек найдётся один умелец, который в гараже все эти станки нужные держит и сделает такое устройство любому желающему по себестоимости + немного награды, что будет всё равно очень мало. Ну а опен сорс обеспечит развитие таких устройств, эргономику.

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

Кстати в мире 3Д-печати зачастую вроде и много бесплатных моделек, но, как я понимаю, не в исходном формате, а в «скомпилированном». Наверное нет культуры и понимания культуры опен-сорс.

Как вы думаете, проникнет опен сорс в наш мир потихоньку? Ведь потенциал действительно есть. Пусть не для всех устройств, но для многих, которые не требуют большой сложности. Самое главное - что они будут непрерывно развиваться и улучшаться. Представьте себе нокию, ту, старую, которую всё это время любители допиливали и вылизывали. Как здорово было бы. А так - на складах запылённых ищешь старые 10-15 летние модели, если хочешь получить нормальный телефон.

 

Legioner ()

Изготовление плат в домашних условиях

Посоветуйте технологию для изготовления плат в домашних условиях. Платы будут содержать тонкие дорожки 0.2 мм и два слоя. Бюджет не больше 200к. Особых требований к скорости изготовления или цене платы нет.

Как я понял, есть два основных подхода - ЛУТ и фоторезист. Пока присматриваюсь к фоторезисту - основной плюс - он реализуется фотополимерным принтером, ничего особо мастерить не надо, приклеил плёнку, засветил принтером с нужной схемой и пошёл травить-лудить. Про ЛУТ читал, вроде самый популярный способ, но уйма нюансов - какой принтер (не каждый подходит), какая бумага, утюг или ламинатор, как отчищать бумагу, пока с этим всем разберёшься, ум за разум зайдёт.

Про то, что умные люди заказывают в крупных предприятиях или в Китае я в курсе, тема не про это.

 , ,

Legioner ()

Чем отличается STM32Fn от STM32Ln?

Долго гуглил, но так и не понял. Пишут что мол потреблением, но не понимаю, за счёт чего это достигается. Транзисторы одинаковые вроде, ARM одинаковый, функционал и частоты вроде примерно одинаковые.

 

Legioner ()

st-flash write не работает

У меня плата NUCLEO-L073RZ. Создал пример с HAL, скомпилировал, получился bin. Когда я эту плату соединяю с компьютером, появляется флешка. Я в эту флешку закинул этот bin, всё сработало, лампочка моргает как положено. Теперь хочу через st-flash записать. Не получается.

$ st-info --probe
Found 1 stlink programmers
  version:    V2J38S27
  serial:     066CFF494849887767255731
  flash:      196608 (pagesize: 128)
  sram:       20480
  chipid:     0x0447
  descr:      L0xx Category 5

$ st-flash write build/stm32cubetest.bin 0x8000000
st-flash 1.7.0
2021-11-03T00:55:19 INFO common.c: L0xx Category 5: 20 KiB SRAM, 192 KiB flash in at least 128 byte pages.
file build/stm32cubetest.bin md5 checksum: 887f85a4d767f3f16d13668ae959e72, stlink checksum: 0x0006629a
2021-11-03T00:55:19 INFO common.c: Attempting to write 4748 (0x128c) bytes to stm32 address: 134217728 (0x8000000)
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08000000 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08000080 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08000100 erased
...
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08001180 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08001200 erased
2021-11-03T00:55:20 INFO common.c: Flash page at addr: 0x08001280 erased
2021-11-03T00:55:20 INFO common.c: Finished erasing 38 pages of 128 (0x80) bytes
2021-11-03T00:55:20 INFO common.c: Starting Flash write for L0
2021-11-03T00:55:20 INFO common.c: Starting Half page flash write for STM32L core id
2021-11-03T00:55:20 INFO flash_loader.c: Successfully loaded flash loader in sram
2021-11-03T00:55:20 INFO flash_loader.c: Clear DFSR
2021-11-03T00:55:20 ERROR flash_loader.c: Flash loader run error
2021-11-03T00:55:20 WARN flash_loader.c: Loader state: R2 0x0 R15 0x0
2021-11-03T00:55:20 WARN flash_loader.c: MCU state: DHCSR 0x1080009 DFSR 0x0 CFSR 0x0 HFSR 0x0
2021-11-03T00:55:20 WARN common.c: l1_stlink_flash_loader_run(0x8000000) failed! == -1
2021-11-03T00:55:20 WARN common.c: 
write_half_pages failed == -1
тут оно висит
^C
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_DEBUG_READREG
2021-11-03T00:55:56 INFO common.c: Go to Thumb mode
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_DEBUG_WRITEREG
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
[!] send_recv send request failed: LIBUSB_ERROR_BUSY
[!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT
libusb: error [do_close] Device handle closed while transfer was still being processed, but the device is still connected as far as we know
libusb: error [do_close] A cancellation hasn't even been scheduled on the transfer for which the device is closing
st-flash: os/threads_posix.h:58: usbi_mutex_destroy: Assertion `pthread_mutex_destroy(mutex) == 0' failed.
Aborted (core dumped)

После этого девайс вообще не отвечает и даже reset не помогает, только перетыкивание из USB.

STM32Programmer у меня не запускается, жава падает с коре дампом. Предполагаю, что из-за wayland, пока хочу без него обойтись.

Возможно я неправильно указываю параметр ADDR, но во всех примерах указывают 0x8000000, никаких инструкций по поиску правильного адреса я не нашёл.

Прошивку на st-link который на плате я обновил до последней версии.

stlink у меня из дистрибутива, версия 1.7.0. Судя по гитхабу это последняя.

 

Legioner ()

За браузером будущее

Прям щас сунули в морду рекламу - Keil Studio Cloud. Keil это бренд, это даже я знаю. Вдумайтесь - микроконтролеры, эту вотчину бородатых консольных мужей, теперь будут программировать смузихлёбы со своих макбуков, прямо не вылезая из сафари. Где теперь ваш бог?

 , ,

Legioner ()

А почему микроконтролеры не включают в себя нужную обвязку?

Изучаю вопрос, как правильно подключать микроконтролер на плату и там куча каких-то сложностей. Какие-то конденсаторы, резисторы, дроссели, диодов напридумывали разных.

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

Или я изобрел ардуину?

 ,

Legioner ()

bash, docker, sleep

Есть bash-скрипт, который запускает чего-то там в background и дальше делает sleep 100000d. Смысл в том, что юзер жмет ctrl+c, скрипт завершает выполнение и фоновые процессы прибиваются.

В докере это не работает. На ctrl+c реакции нет, stop не останавливает (ну точней останавливает тупо прибивая, когда таймаут выходит).

Пробовал: trap, trap с короткими sleep в цикле, trap с sleep в фоне и wait.

Последняя попытка:

    trap 'echo trap 0' 0
    trap 'echo trap 1' 1
    trap 'echo trap 2' 2
    trap 'echo trap 3' 3
    trap 'echo trap 13' 13
    trap 'echo trap 15' 15
    trap 'echo trap INT' INT
    trap 'echo trap STOP' STOP
    trap 'echo trap TERM' TERM
#    trap 'jobs -p | xargs --no-run-if-empty kill' STOP
    
#    sleep 100000d || true
    sleep 1 &
    while wait $!
    do
        sleep 1 &
    done

Ничего не работает. Как это правильно сделать?

Т.е. если упростить, то:

test.sh:

#!/bin/sh -eu

trap 'echo trap INT' INT

sleep 100000d || true

Dockerfile

FROM node:16

WORKDIR /root
COPY test.sh .
CMD ./test.sh
docker build -t test .
docker run --rm --name test test

Тут надо, чтобы он на Ctrl+C среагировал, напечатав что-нибудь и остановившись. Или на docker stop test в соседней вкладке. Хотя кажется это одно и то же.

Запускать docker run -t не предлагать. Оно должно в конечном итоге работать как сервис.

 ,

Legioner ()

Чёлка в новых макбуках

Мне кажется, это гениально. Гномовцы как будто знали, интерфейс гнома прямо идеально заточен на чёлку, как раз верхняя панель посредине никак не используется, дату-время перенести правей и всё.

 , ,

Legioner ()

Посоветуйте европейский email-сервис

  1. Достаточно старый и авторитетный.

  2. Бесплатный или с небольшим одноразовым платежом (без подписки).

  3. Без удаления аккаунтов из-за неактивности (-protonmail).

  4. Разрешающий регистрацию из Казахстана (-gmx).

  5. Поддерживающий двухфакторную аутентификацию (пароль + телефон).

  6. Базирующийся исключительно в странах Европы, без Америки и России (-yandex).

 

Legioner ()

Раздербанить odex файл

Имеется apk + odex. Скачал baksmali, запускаю:

java -jar ~/apps/baksmali-2.5.2.jar deodex --api 22 MyApp.odex
Exception in thread "main" org.jf.dexlib2.DexFileFactory$UnsupportedOatVersionException: Unsupported oat version: 45
	at org.jf.dexlib2.DexFileFactory.loadDexContainer(DexFileFactory.java:274)
	at org.jf.baksmali.DexInputCommand.loadDexFile(DexInputCommand.java:153)
	at org.jf.baksmali.DisassembleCommand.run(DisassembleCommand.java:162)
	at org.jf.baksmali.Main.main(Main.java:102)

Автор фиксить отказывается.

Есть какие-нибудь ещё варианты?

Мне надо отреверсить всё это и внести определённые изменения.

 ,

Legioner ()

RSS подписка на новые темы