LINUX.ORG.RU

Сообщения Aswed

 

Собственный ip адрес

Я тут играюсь с получением собственного публичного ip. Запрашиваю его с помощью сервиса. Потом поднимаю у себя UDP сервер, слушаю в нем 0.0.0.0:port. Вторым процессом делаю себе UDP запрос на полученный шагом ранее публичный ip и смотрю приходит ли мне сообщение в сервер.

Я сижу в офисе за роутером(возможно несколькими)

  1. Я пробовал тут несколько сервисов. Они мне возвращают один и тот же ip(82.a.b.c). С этим адресом мой тест не работает.

  2. Одновременно с этим я пробовал ресолвить ping myip.opendns.com. Такой метод возвращает мне совсем другой адрес (172.a.b.c). С этим адресом мой тест работает.

Мой вопрос в том, почему эти методы дают разный результат? Есть ли еще какие-то сервисы кроме opendns.com которые работают так же?

 , ,

Aswed
()

Asahi звук

Есть ли тут счастливые пользователи asahi? Знает ли кто-то способ сделать так, что бы звук работал?

 

Aswed
()

Получаю таймаут когда пытаюсь подключиться к своему ПК по внешнему IP

Я тут пишу утилиту для p2p взаимодействия. Поймал проблему, что если я подключаюсь к своему серверу по 127.0.0.1:<port_num> то все ок. Если же я вместо локалхоста подставляю внешний ip, то получаю timeout. Даж telnet-ом пытаюсь в любой порт через внешний ip, ловлю Trying <my ip>... и все. Что может отрезать подключение? Фаерволов не использую. Может ли провайдер блокировать подключение? Если да, как это можно обойти? Пробовал на убунте со стандартными настройками и на маке.

 

Aswed
()

Как правильно делать http сервер в hyper

Делаю по документации конструкцию типа:

        ...
        let maker = make_service_fn(move |cnn| async move {
            println!("get conn");
            Ok::<_, Infallible>(service_fn(move |req| {
                println!("in service fn");
                Self::handle(handlers, req)
            }))
        });
        println!("run on: {:?}", self.addr);
        let server = Server::bind(&self.addr).serve(maker);
        if let Err(err) = server.await {
            println!("server error: {:?}", err)
        }
        ...

Сервер запускается на 0.0.0.0:8421. Когда дергаю его курлом, то сообщение get conn выводится, а in service fn никогда. ЧЯДНТ?

 

Aswed
()

Как запускать тесты на go?

У меня есть структура проекта типа

mod_a/
|- mod_a.go
|- sub_mod_a/
|- |- sub_mod_a.go
|- |- sub_mod_a_test.go
mod_b/
main.go

Если я внутри директории sub_mod_a дергаю go test то тесты из sub_mod_a_test.go запускаются, все ок. А если я из корневой директории проекта, где main.go лежит, запускаю go test, то testing: warning: no tests to run получаю. Как запустить из корневой директории все тесты?

 

Aswed
()

На сколько сейчас живой lua?

Я тут пилю свой оркестратор just for fun. Аналог camunda если хотите. Сам проект хочу видеть единым бинарником, потому пилю его на расте, но пользовательские задачи надо описывать на каком-то тьюринг полном cкриптовом языке. Потому встал вопрос о том, что выбрать. Я вообще склоняюсь к lua, потому что он очень быстрый, его стандартная библиотека маленькая и его интерпретаторы занимают мало памяти. Lua сейчас, кажется, уже устаревает, но так как я планирую делать бинарник без внешних зависимостей, то это не должно быть проблемой, так ведь? Однако может я чего-то упускаю? Есть ли смысл тащить в качестве встроенного ЯП питон там или js? Или может сейчас изобрели что-то новое удобное, о чем я не знаю?

 , ,

Aswed
()

перезагрузить систему из демона

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

Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.

Как это правильно обойти? Или может есть другой простой способ спровоцировать перезагрузку кроме запускания команды reboot?

 , ,

Aswed
()

Небольшой телефон на андроид.

Привет. Я тут задумался о покупке нового телефона. У меня сейчас телефон 16см на 8см(xiaomi mi 10 lite) и это неудобно. Ну т.е. в руке держать могу конечно, но дотянуться одним пальцем до любой точне экрана нет. Может кто-нибудь из местных экспертов может подсказать приемлимого качества андроид размером с iphone se? Собсна сам айфон брать не хочу, т.к. мне не нравится экосистема, камера этих моделей, да и аккумулятор их так себе. Но подходящего размера андроид найти просто не могу.

 ,

Aswed
()

Парсинг /proc/<id>/status

Мне тут надо сделать скрипт, который измеряет потребление памяти процессом. Решил парсить для этого /proc/ но запутался со спекой. Подскажите пожалуйста, какая строка показывает реальное потребление памяти процессом? Я так понимаю, что это что-то с RSS, но не понимаю разницы между VmRSS, RssAnon и RssFile.

Буду так же благодарен если подскажете, какие теги под такой вопрос нужны.

 

Aswed
()

mongodb удалить индекс

Я не оч сведущ в монге. Подскажите пожалуйста, почему я могу создать индекс, а удалить не могу.

local> db.app_data.createIndex({"slug": 1}, {"unique": 1})
slug_1
local> db.app_data.dropIndex("slug_1")
MongoServerError: not authorized on local to execute command { dropIndexes: "app_data", index: "slug_1", lsid: { id: UUID("bd93aae1-31e2-4e92-bc96-2e8cefd51d00") }, $db: "local" }

Монгу поднимаю через докер композ вот так:

  mongo:
    image: mongo:5.0
    ports:
      - 27017:27017
    volumes:
      - ~/apps/mongo:/data/db
    environment:
      - MONGO_INITDB_ROOT_USERNAME=mongo
      - MONGO_INITDB_ROOT_PASSWORD=mongo

Подключаюсь к базе соответственно mongosh 'mongodb://mongo:mongo@0.0.0.0:27017/'

 

Aswed
()

dylib в расте

Господа растоманы, подскажите пожалуйста как организовать систему плагинов. Хочу динамически подгружаемые плагины к приложеньке. Я знаю, что можно сделать либу через crate-type="cdylib", а потом загрузить ее в приложение чем libloading. Но cdylib требует, что бы экспортируемые функции работали с C примитивами. Т.е. Box указатель на какую-нибудь структуру или даже String нормально не прокинуть. Раст вроде как умеет в crate-type="dylib" который как раз таки нативное ABI, а не сишное. Но я нигде не могу найти инструкции, как правильно dylib подгружать. Мб вы знаете?

 

Aswed
()

Кросскомпиляция в gitlab раннере

Привет. У меня есть маленький проект на rust в гитлабе. Я хочу добавить в пайплайны сборку бинарников под мак. Нативная архитектура раннера linux x64. Я делаю там

rustup target add x86_64-apple-darwin
cargo build --release --target x86_64-apple-darwin

На этапе линковки вот такая ошибка выпадает:

error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-m64" "-arch" "x86_64" <тут огромная простыня файлов> "-Wl,-dead_strip" "-nodefaultlibs"
  = note: cc: error: x86_64: No such file or directory
          cc: error: unrecognized command-line option '-arch'

Кто-нибудь знает, какой компилятор надо установить в качестве cc? Мб здесь кто-то занимался кросс-компиляцией в rust?

 , , ,

Aswed
()

python #1 на TIOBE

https://www.tiobe.com/tiobe-index/

Си и Джаву впервые за долгое время потенили на TIOBE. Поздравляю всех причастных. Ждем переписывания ядра линукса на питон :)

Перемещено xaizek из development

 , , , ,

Aswed
()

Длинная математика в rust

Господа растафарианцы, расскажите пожалуйста, если какой-нибудь крейт для раста с длинными числами вроде Integer в хаскеле? Которые неатомарные, но никогда не переполняются? Я чет не могу ничего нагуглить кроме i128. Это, конечно, длинный тип, но конечный, а потому не подходит.

 

Aswed
()

Клиент серверное взаимодействие внутри одной машины

Всем привет. Я тут пишу маленький сервис для своих нужд, который будет крутиться демоном на машине и cli утилиту, которая будет им управлять. Вопрос собсна как правильно связать утилиту и демона? Мне на ум приходят shared memory и порты. Порт это конечно очень удобно, но мне хотелось бы быть уверенным, что демон получил сигнал именно от утилиты с той же машины, где демон крутится, а не откуда-то из сети. Если это удалось выяснить, как убедиться, что сигнал подала утилита запущенная от нужного юзера, например рута? Понятно, что я могу клиент-серверное взаимодействие обмазать сертификатом и в http запросе его проверять, например, но мне кажется, что эту задачу можно решить как-то проще. Как в принципе такую задачу принято решать в линуксе?

 , , ,

Aswed
()

Ассемблерные ошибки при компиляции С кода

У меня такая ситуация:

Есть функция:

void $lambda_1(Registers* registers, FunEnv *env, Var c) {
    NEW_INT(registers, registers->result, GET_INT(env->outers[0]) + GET_INT(c));
}

void make_lambda(Registers* registers, Var a) {
    FunEnv* new_env;
    OO_Lambda_new((void*)&$lambda_1, registers, (int)1, &new_env);
    ...
}

Если закоментировать вызов OO_Lambda_new, то все ок. С самим вызовом, при сборке компилятор выдает.

/tmp/ccyO0QEF.s: Assembler messages:
/tmp/ccyO0QEF.s:305: Error: junk `(%rip)' after expression
/tmp/ccyO0QEF.s:305: Error: operand type mismatch for `lea'

Меня эта ошибка вводит в ступор, так как у меня в коде нигде нет ассемблерных вставок и ранее, на другой машине, в gcc все компилировалось ок. Я бы решил, что это баг в gcc, но clang тоже выдает такую ошибку. Это не единственное использование OO_Lambda_new в коде, и в других местах проблем с ней нет.

Чем пробовал собирать:
gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)

У кого есть мысли? какую информацию нужно предоставить для анализа?

 , ,

Aswed
()

Теория вероятностей

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

 

Aswed
()

Где найти словарь ударений в удобном для парсинга формате?

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

 , ,

Aswed
()

tkinter не рисует картинки

Я тут делаю простенький гуй на ткинтере, но вот эта зараза не хочет никак рендерить картинки. Я делаю так

        pic = tkinter.PhotoImage(self.path)
        self.canvas.create_image(0, 0, image=pic)
Или так
        pic = PIL.ImageTk.PhotoImage(PIL.Image.open(self.path))
        self.canvas.create_image(0, 0, image=pic)

В обоих случаях никаких исключений не выбрасывается, но картинка не рисуется. Пробовал jpg и png. ЧЯДНТ?

 ,

Aswed
()

Почему iw может не видеть сеть?

У меня есть очень своеобразный девайс на QNX, который умеет раздавать вайфай. Мне нужно приконнектится к нему с opangePI с вайфай адаптером. Пытаюсь сделать это через iw, но не вижу сетку. При том, что другие сетки вижу. Я бы решил что девайс просто не работает, но сетка видна с телефона. Почему ее может не видеть iw? Куда копать? Сканирую так

sudo iw dev wlx74da38de33cd scan | grep SSID

 , ,

Aswed
()

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