LINUX.ORG.RU

364
Всего сообщений: 3653

Обработка ивентов

Допустим есть пользователи. У одного пользователя происходит событие, второй пользователь должен об этом знать. Как осуществляется информирование(имеется ввиду не push, а информирование апплекейшена, что он должен забрать ивент) пользователя о том, что у другого пользователя произошло событие? На серверной стороне нужно создать некоторый бокс, в который будут падать ивенты, а клиент должен по каким-то сигналам ходить в этот ivent box и забирать оттуда ivent’ы? Или как это всё правильно делается?

 , , , ,

serg002 ()

Ноты

Здравствуйте. Тут собрались крутые кодеры, которые мне помогут и ответят.

Есть нота. Частота 440 Гц. Как сделать .wav, который состоит только из этой ноты?

Я знаю ноты мелодии. Как сделать .wav, который состоит из этих нот?

Есть .wav с мелодией. Из каких нот он состоит?

 

Cameyoc ()

Проблемы curses && gnu screen

Привет, ЛОР! У меня curses неправильно определяет размеры окна: https://i.imgur.com/AdbX5lp.png.
Запускаю программу через screen: screen -dm ....
Если запускать без флага -d, то конечно же все хорошо. Как решить можно проблемку?

 , ,

cadogan ()

Регистрация юзеров логика

Есть несколько endpoint’ов. Auth, end1, end2. На auth регистрация юзера производится по user password, на end1 и end2 регистрация юзера производится по информации, которая находится внутри токена(внутри токена id, который отдал Auth после регистрации), чтобы id’шки на всех endpoint’ах совпадали. Сижу и думаю, как это всё правильно оформить. Итак, у нас есть мобильная аплека, которая регистрирует пользователя. Юзер ввел код, который прилетел ему от firebase и далее варианты развития событий

  1. в апи Auth я добавляю код, который сначала создает юзера в Auth, потом идет на end1/register, создаёт юзера там, получает ответ 200, что всё ок, далее идет на end2/register, создает юзера и получает 200. Когда получил 200 от end1 & end2, отдаёт «ОК» клиенту. Тупой вариант. Почему? end1 и end2 могут не быть не в рабочем состоянии и получается так, что мы УЖЕ создали юзера в Auth(потому что без создания юзера мы не сможем отправить id в end1 & end2) и если end1 и/или end2 не работают, то мы получим отлуп клиенту при созданном юзере в Auth

  2. юзер стучится в Auth, ему возвращается 200(ОК). Это считается завершением регистрации. Далее понятия не имею как правильно. Скорей всего нужно где-то в базе сделать поля end1_reg: False, end2_reg: False. Далее, при обращении к этому endpoint’у юзер смотрит на флаг end1_reg, если он False - обращается на end1/register, пока end1 не вернет 200 и флаг не станет True, а уже после этого начинает отправлять в end1 запросы в апи. Или сразу же после регистрации в Auth в фоне начинает стучаться на end1/register,end2/register, пока ему не вернется оттуда 200(ОК)

Как вообще правильно сделать?

 , , ,

serg002 ()

Как обслуживать endpoint'ы?

Есть djangorest endpoint. Допустим, работает себе endpoint. К нему прилетают запросы. Происходит изменение БД. Как мне его безопасно отключить, чтобы обновить или изменить схему бд или сделать еще что-то? Нужно сделать так, чтобы endpoint перешел в режим maintenance. Но не просто выключился. А перестал принимать новые запросы апи, но завершил старые и отдал ответы от запросов, которые прилетели раньше того момента, как я перевел endpoint в режим maintenance. Как это решается?

Есть django-maintenancemode. Он делает именно так, как я описал выше или нет? Если нет, то что взять, чтобы было так, как описано ранее?

 , ,

serg002 ()

Сложное вычисление на Python и засовывание результата в Ansible

Нужно мне сделать некоторые вычисления на Python, и результат получить в Ansible.

Делаю так:

  - name: Вычисление суммы
    shell: |
      python <<< "print 1+2"
    register: result

  - debug:
      msg: Результат {{result}}

И при исполнении плейбука ошибка:
fatal: [generatorHost]: FAILED! => {"changed": true, "cmd": "python <<< \"print 1+2\"\n", "delta": "0:00:00.001918", "end": "2020-11-24 15:25:22.719117", "msg": "non-zero return code", "rc": 2, "start": "2020-11-24 15:25:22.717199", "stderr": "/bin/sh: 1: Syntax error: redirection unexpected", "stderr_lines": ["/bin/sh: 1: Syntax error: redirection unexpected"], "stdout": "", "stdout_lines": []}

При этом простое выполнение команды в командной строке работает правильно:
$ python <<< "print 1+2"
3

Как сделать так, чтобы получить значение питоновской команды?

 ,

Xintrea ()

Ansible и Python - как написать условие наличия элемента в списке внутри списка?

В конфигурации Ansible сделан такой список Git-репозитариев:

gitRepos:
- [ "twp.git",                   "master",    "twp",                   "twp.pro" ]
- [ "impulse.git",               "radioline", "calc_impulse",          "impulse.pro" ]
- [ "doxygen_documentation.git", "master",    "doxygen_documentation", "" ]

Как видно, это список (из трех элементов), состоящий из списков (из четырех элементов). На самом деле, список гораздо больше, около 50 записей.

В процессе работы список Git-репозитариев может меняться: в нем постоянно добавляются и удаляются различные строки.

Мне нужно написать такую задачу (task), которая должна проверить наличие строки «doxygen_documentation» в третьем столбце переменной gitRepos, и если такового ни в одной строке нет, завершить работу плейбука:
  - name: Проверка наличия Git-репозитария doxygen_documentation в списке обрабатываемых
    fail: msg="Не подключен репозитарий doxygen_documentation в all.yml"
    when: "<тут какое-то условие проверки gitRepos>"

К сожалению, я не владею Ansible/Питоном настолько, чтобы придумать как сделать такое условие. Как оно должно выглядеть?

 , , ,

Xintrea ()

Заннотировать метакласс

Привет, лор!

Помогите зааннотировать метакласс, реализующий синглтон.

T = TypeVar("T", bound=type)


class Singleton(type):
    instances: ClassVar[Dict[Type[T], T]] = {}

    def __call__(cls: Type[T], *args, **kwargs) -> T:
        if cls not in cls.instances:
            cls.instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
        return cls.instances[cls]


Но это не работает. Не могу раздуплить, как правильно вывести типы тут?

 , ,

djnoob ()

Два cur.execute и fetchone()

Есть

cur.execute('''
SELECT
  ...;
''')

while True:
    rec = cur.fetchone()


    cur.execute('''
    SELECT 
    ...;
    while True:
        rec1 = cur.fetchone()
        # далее используется rec['some']

Но дело в том, что при второй выборке теряются данные из первой выборки. Возможно как-то сделать вторую выборку не трогая результаты первой выборки(я подозреваю, что можно сохранить результаты первой выборки с помощью fetchall(), но расход памяти будет под 30гб)

 , , ,

serg002 ()

Python & SOAP прошу помощи.

Добрый вечер, есть некое API на SOAP. пытаюсь к нему достучатся используя suds-py3 в python при любом запросе получаю в ответ

suds.transport.TransportError: HTTP Error 405: Method Not Allowed

пример кода

from suds.client import Client
client = Client('http://XXXXXXXXXXX:7878')
print(client)

даже если просто из браузера вызвать то ошибка такая же. я так понимаю что отсутствуют какие то заголовки. хотя если использовать в чистом виде requests то все нормально.

и не понимаю как передать urn:tc, я думаю проблема в этом. пытался использовать Zeep проблема такая же.

 ,

yegapo3970 ()

Python и печать на принтер

Хочется печатать на бумаге таблички (шапка, столбцы, строки и так далее). Собственно как лучше это сделать? В голову пришло уродство генерировать latex и собирать скриптами, но наверняка можно более красиво и без зависимости от установки latex-а и его пакетов. Печатать html? Смысл в том, чтобы напечатанное было очень компактным и читабельным. Надо именно печатать, раз в неделю вооружать человека бумажкой, на которой он может делать пометки при помощи карандаша или ручки мне сильно проще, чем писать приложение для планшета и мучить бедолагу экранной клавиатурой.

 , ,

peregrine ()

Большое потребление памяти при Table.objects.all().delete()

Как этого избежать?

 , ,

serg002 ()

На чем писать андроид-лаунчер?

Ученик предложил мне очень интересную идею лаунчера с активной работой с ОС, голосовым управлением и фидбеком и кучей всего, что можно добавить позже. Проблема в том, что классическое приложение на джаве ему осилить будет сложно. Есть базовые знания Python и JS, но очень сомневаюсь, что на них можно написать достаточно эффективное по памяти и энергопотреблению мобильное приложение. Очень желательно также выбрать кроссплатформенный фреймворк, чтобы проект можно было довольно безболезненно портировать на iOS. Что происходило в последний год в мобильной разработке не имею ни малейшего понятия. Склонялся к React Native, но держать на телефоне постоянно включенный браузер - оверкилл как по мне. Поэтому буду рад любым комментариям по поводу выбора фреймворка, библиотек, языка и собственно начала разработки. Благодарю за внимание.

 , , , ,

Man-o-Jar ()

Дистрибутив без ненужно

Часто сталкиваюсь с мнением, что «питон хрень», «javascript хрень», «systemd хрень» etc, но не смог найти ни одного дистрибутива линукса без питона и джава-скрипта, а вот без systemd несколько есть. Есть ли радикалы, которые пользуются системой без питона и джава скрипа?

 , ,

D3306 ()

Логично ли использовать для выполнения переодических (длинных) тасков через celery?

По сабжу, для использования в flask/django.
Дело в том что по большей части это выглядит как то костыльно.
UPD: нашел вот такую статью от автора известной книги по flask - https://blog.miguelgrinberg.com/post/run-your-flask-regularly-scheduled-jobs-...
выглядит вроде не плохо

 , , ,

foozzi ()

Проблема сборки на CMAKE

Есть программа

https://github.com/google/usd_from_gltf

Установил кустарно после маленького допиливания

https://github.com/google/usd_from_gltf/pull/69

до этого было так

https://github.com/google/usd_from_gltf/issues/68

мой хак работает на самопальной сборке, а на портаже в системе нет

собирается на 90%, при линковке получаю

https://gist.github.com/404124b2b284a6df48c25e0558b79d04

у вас есть идеи почему?

мой оверлей https://github.com/brothermechanic/cg/tree/master/media-gfx/usd_from_gltf

 , , ,

brothermechanic ()

А что было бы если ...

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

 , ,

Harald ()

моральный вопрос

Мы не сошлись с руководством компании «Рога и копыта», вернее эти три компании с тремя вывесками в одном коттедже, где в одной из фирм работал месяц один я, а еще месяц еще товарищ.

Я написал код для STM32 (IMHO простой, шаблоны там в основном только в util.cpp, каждый может переписать util.cpp).

Мне скзали, что я громко говорю и много (факт) и кучу бреда прро меня стандартного такого (вранье естественно). Я попросил дать мне закончить мой код до конца испытательного срока. Мой же ребенок, я хочу, чтобы у него выросли ножки и ручки. Начальство сделало вид, что пошло советоваться, хотя ответ понятен и так (ну конечно, проще заплатить мне за 2 недели работы, получил практически готовый проект, чем пытаться заставить кого-то разобраться в кусках кода, состоящий из TODO через три минуты вернулось и сказала - дописывай, только дисциплина и дальше бессмысленный набор слов.

Я сделаю модель ESP32 как WiFi-Bluetooth модем и Proof of Concept консольное приложение показывающее, что protobuf со скоростью ок 200Kbit/s по UART - будет работать.

Изначально идея была писать приложение в Unity. Я не люблю Unity, поэтому остановились на Xamarin. ВНЕЗАПНО.. оказалось, что в приложение должны быть «rig animations». Я тогда сказал, что давайте так Unity. Ну неважно. Теперь мне нужен PoC.

Меня тошнит от Python. Но я понял, как работат контора «Рога и копыта». У них нет денег платить программистом. Они берут их на испытательный, после чего увольняют и берут студента за в три раза меньше и он доделывает. Советь говорит мне писать TCP/IP-сервер и BLE-сервер в Python, так как каждый студент, знает Python. Его сейчас на первом курсе учат.

Но меня тошнит от Python. Я хочу написать PoC в Go. Все приложение займет < 1000 строк. А в Python/Go и того 500.

Можно ли быть в ладах со своей совестью заставив студента (особенно мутанта-любителя Unity) читать Go код?

Но все еще сложнее. Я подружился с перцем-коллегой. Он мне подарил STM32-Discovery board, а я ему купил пару мелочей на allegro. Он мне объяснил как работает H-bridge, а ему, что такое branch prediction и почем код, содержащий likely/unlikely - недерминистичен, а потому MISRA-incompatible.

Я хочу рассказать ему ВСЕ о том, что видел в рогах и копытах и что я думаю об их методе работы. У меня в жопе зудит рассказать ему об этои в понедельник вечером, но чувство самосохранения шепчет "расскажи тогда, когда они точно определяться, что Unity-студент будет им что-то править в STM32 коде. Как поступить? Рассказат в понедельник или в конце?

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

Как же поступить?

 , , ,

dissident ()

Как правильно загрузить polygon'ы?

SELECT
  polygon.name AS region_name,
  polygon.tags->'name:ru' AS region_name_ru,
  polygon.tags->'name:uk' AS region_name_uk,
  polygon.way AS polygon_way
FROM
  planet_osm_polygon AS polygon
WHERE
  admin_level='4'
  AND polygon.boundary='administrative';

Получаю

"Брестская область";"Брестская область";"Берестейська область";"0103000020E6100000010000000A1C000075C0BF52A72D37401094DBF63D244A40B1D93631C92D37407A72A83A3F244A4050D88F5E1E2E374061527C7C42244A406E0DB6227B2E374032022A1C41244A407381CB63CD2E374011F637B23C244A406FC1AD16332F3740C4279D4830244A40689B768C862F374088C4F30824244A (...)"
"Минская область";"Минская область";"Мінська область";"0103000020E61000000100000022000000BD5E5095A5683B40B2EB2818DFEF4A4027F56569A7683B406A3B5C61B0EF4A40FEF15EB532693B40C3F6EEEAB0EF4A402D2E443D33693B40F5B1CC6CA1EF4A40BE5B6ACE0B6B3B404820B990A2EF4A40DFE23CF7796B3B405FBEABD4A2EF4A406D077EAF7C6B3B401932C3EB9FEF4A (...)"
"Гродненская область";"Гродненская область";"Гродненська область";"0103000020E610000001000000CF5E00003B6B5CA4F5823740B8E7F9D346F54A40C97B3084F7823740B8F8252C3BF54A4060483DFA158337407A4E1F2686F44A40A97290C6578337409E019AAD61F44A40019BBD7D67833740B51A12F758F44A40E085ADD9CA833740B6847CD0B3F34A40E1687D80A4843740AC53E57B46F24A (...)"
"Минская область";"Минская область";"Мінська область";"0103000020E6100000010000002000000020860C9A4C773B40B010678F61EB4A4068F1BD1AFB773B40399DBF643EEB4A40A93C7084FB773B40C885B9933EEB4A4048CCA266FE773B40D2C5A69542EB4A4098874CF910783B40C79C67EC4BEB4A40C3A85AC125783B4077499C1551EB4A40D6C9198A3B783B403A819F2754EB4A (...)"
"Минская область";"Минская область";"Мінська область";"0103000020E61000000100000081000000DC1B32D417AC3B403CC32F50ADE74A40C3F0113125AC3B40C982D3CCA4E74A40892FC9B72DAC3B40D6FF39CC97E74A400FAECACF57AC3B40E2FD5D4480E74A4031EFCC5F7CAC3B40CF97288C77E74A40B67CC96BCAAC3B40BD29F6E16AE74A4012D4957439AE3B404216B36F38E74A (...)"
"Минск";"Минск";"Мінськ";"0103000020E61000000700000045050000DF20109EBF5F3B40FCA886FD9EEF4A407B59C97D61603B40B253628D69EF4A40C02E79F29F603B40B7A283E453EF4A4019703BD972613B409647927B15EF4A40D8158E7B4E613B4030968EDE15EF4A4032A770A9EF613B400EE2B9ADE3EE4A405CE7DF2EFB613B40F87D4974E0EE4A (...)"
"Минская область";"Минская область";"Мінська область";"0103000020E6100000010000000700000024AA0194D0B33B40BB80F2D2A8E84A40A97A432B41B43B40ADD62E127FE84A40D2DCAFA7C2B43B406745D4449FE84A404F74023F4FB43B40C9D98530C8E84A40D6C9198A3BB43B40EC1FFAA4C9E84A40A3CD716E13B43B40FB24D291B7E84A4024AA0194D0B33B40BB80F2D2A8E84A (...)"
"Минская область";"Минская область";"Мінська область";"0103000020E61000000400000006150000A051BAF42F013A40B0AD9FFEB3124B40C314408C6B053A4083D08B248B114B400CC050D1A20A3A40569BFF571D104B4093FBC2D08F0B3A4041B04FA50B104B406ED45460120C3A40C0BA8509FE0F4B4015223BCA1C0C3A4037F11F1CFD0F4B4096253ACB2C0C3A40FDB0941BFB0F4B (...)"
"Минская область";"Минская область";"Мінська область";"0103000020E6100000010000009D0000007D676AC82EAF3B409723BFD941EE4A40C80CAF7F32AF3B40D8EF2EBC37EE4A40A0127C783BAF3B403AC54F8825EE4A403933B04456AF3B40433A3C84F1ED4A407DC7951F5DAF3B40EE540ACBE9ED4A40410E4A9869AF3B406E4617E5E3ED4A4008FA55CA7CAF3B407102D369DDED4A (...)"
"Минск";"Минск";"Мінськ";"0103000020E6100000010000006C000000CFE27B35F6FF3B40D425885F56F34A4045AB49A6F9FF3B40A422A9E04BF34A408132D7B331003C40036F92301DF34A402E2691D849003C40F38299000DF34A401C61ACCA19013C409FB6FC76C8F24A408C214AC510023C4042D5438F73F24A4009C6C1A563023C40EBEB545458F24A (...)"
"Минская область";"Минская область";"Мінська область";"0103000020E6100000010000004C000000FE37E5C061BA3B403B072A3E99F14A4059840772F5BA3B40D641B9C898F14A403ABE07F9EABA3B406F2A52616CF14A40B4D771B2C3BC3B40879A32816CF14A401D95F66118BD3B401019A07E61F14A406AF008B831BD3B4060CEC7105BF14A402FA1270A99BE3B4092393BBE62F14A (...)"
"Минск";"Минск";"Мінськ";"0103000020E61000000100000037000000B46103D836E13B40E534FA87E3EF4A40D1C3753172E13B40F9ED9007C7EF4A40FCE659A4E4E23B40182DF64D50EF4A4009C61C5FD6E33B401B09D91E62EF4A40D4282499D5E33B4089EB18575CEF4A40838B70EE0AE43B40423F53AF5BEF4A40795E85EF58E53B40C7B0D4C44CEF4A (...)"
"Могилёвская область";"Могилёвская область";"Могильовська область";"0103000020E610000001000000A21A0000E2BF8A9D3A163C40E0D16B58F8A24A4006C545A45C163C40B34FB637AE9F4A406ABC749318183C400E1137A7929F4A40662DAAEA8A1A3C4046562360199F4A409F22E2410E1D3C40AFC623021F9F4A40881634886A1D3C406323B5F5789E4A40724CBB3DAD1B3C40569A94826E9C4A (...)"
"Витебская область";"Витебская область";"Вітебська область";"0103000020E6100000010000009F4D0000CECDED1461353A4049490F43AB7F4B4056B950F9D73A3A40CC4065FCFB7E4B4075CB0EF10F3F3A406DE525FF937D4B4075CB0EF10F3F3A403D0E83F92B7C4B4034D593F947433A408D60E3FA777B4B4034D593F947433A407E5704FF5B794B400D5F155E38483A4065D9380774784B (...)"
"Гомельская область";"Гомельская область";"Гомєльська область";"0103000020E610000002000000D6210000A721AAF067403B40880FECF82F2E4A40C6866EF607463B4019ABCDFFAB2A4A40DF686C544C443B40156580553F294A4062DA37F7575F3B40E9D32AFA43294A40C23577F4BF603B402A1DACFF73264A40F665C46059663B4038BBB54C86254A40A051BAF42F693B40FA4509FA0B254A (...)"

Как правильно polygon загрузить в django?

polygon = models.MultiPolygonField(default=geos.MultiPolygon(), verbose_name='Полигон')
  1. Как правильно в одну запись загрузить несколько полигонов?
  2. Нужно в какой-то другой формат конверитровать или как есть загружать?
  3. По итогу мне нужно построить апи, в которую я буду передавать поинт и скать вхождение в полигон. Может лучше делать не мультиполигон, а делать отдельную таблицу с полигонами и привязывать их к записи полигона с помощью ForeignKey?

 , ,

serg002 ()

Gentoo: миграция на Python 3.8

Группа разработчиков Gentoo Python Project напомнила, что переход на python 3.8, как на target по умолчанию, намечен на 1 декабря 2020 г.

В дополнение к этому указано, что пакеты, зависящие от python2 (за исключением пакетов требующих его во время сборки), должны быть портированы на использование python3 до 1 января 2021 г., иначе они будут удалены из дерева portage.

Также к 1 января 2021 г., должнен быть завершён процесс миграции с python3.6 на python3.7 пакетов, которые его ещё не завершили. В противном случае, такие пакеты будут удалены или поддержка возможностей связанных с python будет отключена. После этого python3.6 target, возможно, будет удалён. По крайней мере, в пакете dev-python/ipython поддержка python3.6 уже удалена.

Update:
Более того, python3.9 target теперь размаскирован и стабилизирован. Точные даты пока не запланированы, но, возможно, к середине 2021 target’ом по умолчанию станет python3.9, а поддержка python3.7 будет сброшена.

Источник

 , , ,

grem ()