• Как добавить/обновить данные в таблице MySQL, если в другой таблице соблюдается определенное условие?

    @alexalexes
    Обновлять строки по условию с подзапросом. Но проблема в том, что в утверждении не говорится, чем связаны table_1 и table_2.
    update  table_1 t1
    set  t1.column_1 = A
    where exists (select 1 from table_2 t2 where t2.какой-то-связный-ключ-с-t1 = t1.какой-то-связный-ключ-с-t2 and t2.column_1 = B)
    Ответ написан
    6 комментариев
  • Как работать с общим списком в многопользовательском приложении?

    @antares4045
    Точка входа в приложение (запускаемый python-скрипт) должна быть одна: при входе или запуске пользователь вводит свой id (или он генерируется на основании неких косвенных признаков). Для хранения данных необходимо использовать базу данных. причём, учитывая что вы сразу захотели многопользовательское приложение, необходимо поднять полноценный сервер базы данных (простенький sqlite не прокатит).
    Если вы не знакомы с sql, рекомендую начать с знакомства с mongodb и способа взаимодействия с ним через python. Если всёже знакомы, то лучше будет поднять инстанс mysql/postgress/или что вы там знаете, вооружиться библиотекой pyodbc и начать постигать мир полноценного промышленного программирования.

    UPD: ответив решил исследовать, нельзя ли стандартный sqlite3 запустить в мультипроцесном режиме -- оказалось костыль есть.

    Подключение к базе блокирует другие подключения и они ждут, пока файл освоботится с задержкой timeout. так что если соединения постоянно открывать-зарывать, то сразу несколько процессов могут работать с одной базой (теоретически её можно коннект в picke положить, но это злая идея).
    Вот такой код по идее должен справляется с парой десятков пользователей (а главное: никакого сервера):
    import sqlite3
    import os
    import sys
    import random
    import time
    from datetime import datetime
    
    TIMEOUT_DELAY=10
    
    CURRENT_DIRECTORY = os.path.normpath(
        os.path.relpath(
            os.path.dirname(__file__),
            os.getcwd())
        )
    DB_PATH = os.path.normpath(os.path.join(CURRENT_DIRECTORY, './db/lists.db'))
    
    
    
    def initBase():
        with sqlite3.connect(DB_PATH) as connect:
            cursor = connect.cursor()
            cursor.execute("""
    CREATE TABLE lists(
        userid INTEGER primary key,
        value INTEGER
    )
    """)
            connect.commit()
    
    
    
    if not os.path.exists(DB_PATH):
        os.makedirs(os.path.dirname(DB_PATH), exist_ok=True)
        initBase()
    
    
    ID = None
    if len(sys.argv) > 1:
        ID = int(sys.argv[1])
    else:
        ID = int(datetime.now().timestamp() * 1000) % 10000 + 10000
        print(f'ID не передан. сгенерирован идентефикатор {ID}')
    
    
    while True:
        with sqlite3.connect(DB_PATH, timeout=TIMEOUT_DELAY) as connect:
            cursor = connect.cursor()
            cursor.execute("""SELECT userid, value FROM lists""")
            print(cursor.fetchall())
            x = random.randint(100, 999)
            cursor.execute("""
    INSERT INTO lists(value, userid)
    VALUES (?, ?)
    ON CONFLICT(userid) DO UPDATE SET
    value=?
    WHERE userid=?
    """, [x, ID]*2)
            connect.commit()
        time.sleep(1)


    открыл 3 консоли и запустил
    python3 __main__.py
    python3 __main__.py 1
    python3 __main__.py 2
    вроде работает):
    616e00f12619c652105096.png

    Но лучше всеравно так не делать, а использовать всёже нормальный сервер бд
    Ответ написан
    1 комментарий
  • Бесплатная оффлайн (yandex) карта моего города с настоящими координатами - реально?

    FiLinX
    @FiLinX
    Знать то - что не придумали ещё..
    Про халяву забудь - ведь даже если её обретешь, то всё равно прийдётся приложить усилия для её использования)
    А между тем присмотрись к СасПланете - www.sasgis.org/forum/viewtopic.php?f=2&t=986
    Ответ написан
    Комментировать
  • Как лучше распределить Li-ion ячейки в батарейном блоке зная их сопротивление?

    @pfg21
    ex-турист
    без разницы.
    простой БМС просто зарядившуюся группу отключит от дальнейшего заряда.
    внутри параллельной группы каждая банка сколь заряда наберет столько и отдаст.

    если очень сильно хочется по науке, то ставь емкостной балансир. тогда все банки будут в идеально-идентичных условиях.
    Ответ написан
    5 комментариев
  • Следующий шаг после базы Python?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Правильно ли, что для этого нужно перейти от изучения питона к изучению Django/Flask?


    Питон - это не только WEB. Если интересно посмотрите в сторону Data Since - учите NumPy с SkLearn и kaggle Вам в помощь

    Интересна автоматизация - напишите плагин для Ansible - это тоже питон
    Ответ написан
  • Бесплатная оффлайн (yandex) карта моего города с настоящими координатами - реально?

    vabka
    @vabka
    Токсичный шарпист
    Посмотри в сторону OpenStreetMap.
    Если не зватает точности и деталей - всегда можно подкорректировать.

    А вообще: Бесплатно, качественно и легально - это очень редкое сочетание.
    Ответ написан
    3 комментария
  • Какую видеокарту вы бы посоветовали для Solidworks?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    От задач зависит.
    Для некоторых SolidWorks отлично работает даже с интегрированной видеокартой
    Ответ написан
    1 комментарий
  • Какой силы и в каком направлении протекает ток между аккумуляторами соединенными последовательно?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Движок Тостера опять вытащил меня на роль эксперта. Ну что ж, попробую...

    Какой силы и в каком направлении протекает ток между аккумуляторами соединенными последовательно?
    Ток по всему кольцу цепи одинаковый (поскольку цепь чисто последовательная без ответвлений), направление определяется полярностью, и больше ничем.

    И что получится, если в цепь добавить еще одну нагрузку, скажем между ячейками 1 и 2 ?
    Тут возможны варианты, поскольку формулировка неточная. Если дополнительная нагрузка включается в разрыв цепи, то цепь по-прежнему остаётся последовательным кольцом. А у него есть такое свойство, что все его элементы можно переставлять в любое место кольца, и ток в нём не изменится. Так что включайте куда хотите - хоть между 1 и 2, хоть между 2 и 3, хоть в любое другое место кольца, сопротивление этой дополнительной нагрузки просто суммируется с сопротивлением основной, а ток соответственно уменьшится в строгом соответствии с законом Ома. Аккумуляторы при этом будут разряжаться совершенно одинаково (как и полагается в чисто последовательной цепи).
    Если же понимать формулировку так, что дополнительная нагрузка подключается параллельно одному из аккумуляторов, то она станет потреблять от него дополнительный ток (помимо основного, потребляемого основной нагрузкой). Этот доп. ток опять-таки определится строго по закону Ома, и в этом аккумуляторе (и только в нем) суммируется с током основной нагрузки. В остальных аккумуляторах ток останется прежним. Таким образом, при таком подключении аккумуляторы будут нагружены по-разному и разрядятся за разное время.
    Ответ написан
    2 комментария
  • Какой силы и в каком направлении протекает ток между аккумуляторами соединенными последовательно?

    hint000
    @hint000
    у админа три руки
    Я прав если скажу, что на всех участках цепи ток будет идти против часовой стрелки (от плюса к минусу), а сила тока между ячейкой 1 и 2 тоже будет 5А так же как и между ячейками 2 и 3 ?

    Да, на всех участках цепи ток идёт в одну сторону и сила тока одинаковая. Если бы в схеме были разветвления (параллельные соединения), то на этих участках сила тока была бы меньше; но здесь разветвлений нет, так что если на каком-то участке 5А, то и на любом другом участке 5А.
    что получится, если в цепь добавить еще одну нагрузку, скажем между ячейками 1 и 2 ?
    нагрузка имеет какое-то сопротивление больше нуля, это дополнительное сопротивление уменьшает ток в цепи. Насколько уменьшает - зависит от сопротивления. Может быть ток будет 4.99А, а может быть 0.01А, но ток опять будет одинаковый на всех участках.
    Чтобы определить напряжение на новой нагрузке, нужно знать сопротивление обоих нагрузок и внутреннее сопротивление ячеек.
    Ответ написан
    2 комментария
  • Jquery или React?

    OnYourLips
    @OnYourLips
    TESTUSER376372, нет ничего такого, что можно сделать на реакте, и нельзя на jQuery.
    Более того, в React гораздо выше порог вхождения.

    Однако дело в скорости разработки проекта при хорошем знании технологий
    В команде.
    На длительном участке времени в десятки человеколет.

    И с каждым этим уточнением React получает преимущества по сравнению с jQuery. А с последним уточнением и вовсе Angular.
    Ответ написан
    Комментировать
  • Как на практике течёт ток при параллельном соединении?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Ток через параллельные ветви потечёт в строгом соответствии с законом Ома, т.е. где меньше сопротивление ветви, там через неё больший ток. Напряжение-то на них одинаковое, так что другой причины для различия токов нет.
    Поэтому делать так, как вы описали в примере с предохранителями - категорически нельзя. Те, кто думает, что ток сгорания предохранителей суммируется, полностью ошибаются, и причина тому - разброс параметров. Не может быть совершенно одинаковых деталей, и предохранители - не исключение. Поэтому если запараллелить два якобы одинаковых, а затем повышать через них ток, то первым сгорит тот, у которого сопротивление чуть меньше, а следом, оставшись в одиночестве, через считанные миллисекунды сгорит второй.
    Точно так же произойдёт и в вашем втором случае - связка 20+30 сгорит не при 50, а при (условно) 30 амперах. Условно - потому что реальный ток сгорания зависит от множества факторов и потому имеет очень большой разброс даже у одиночного предохранителя, а у запараллеленых - и подавно.
    Ответ написан
    4 комментария
  • Как на практике течёт ток при параллельном соединении?

    15432
    @15432
    Системный программист ^_^
    Ток пойдет согласно сопротивлениям проводников. Смотря как запаяли, смотря какое сопротивление у предохранителей. Если они прям вообще по одинаковой технологии сделаны, и пайка идеальная, то от количества олова почти не зависит и разделится примерно поровну.
    Ответ написан
    1 комментарий
  • Можно ли последовательно соединять 12-вольтовые линии от 2 разных БП подключенных к одной розетке, чтобы получить 24V с тем же током?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Да, это можно, с некоторыми предосторожностями - скажем, нельзя допустить соприкосновения корпусов этих БП, поскольку у комповых БП на корпус выведен общий провод выхода (минус всех выходных каналов). При таком соприкосновении один из БП окажется закороченным, и в нём сработает защита от КЗ.
    Ответ написан
    9 комментариев
  • Можно ли соединять выводы 3.3V, 5V и 12V системного БП последовательно для увеличения выходного напряжения?

    vabka
    @vabka
    Токсичный шарпист

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

    Именно так.
    Смотрите на схемотехнику.
    Если хотите 20V на 20A, то просто возьмите БП помощнее и повышающий преобразователь.
    Ответ написан
    5 комментариев
  • Как с помощью .htaccess сократить URL?

    @av_kotosin Автор вопроса
    вроде решил проблему!


    RewriteCond %{DOCUMENT_ROOT}/folder/$1/index.php -f
    RewriteRule ^(.*)$ folder/$1/index.php [L,QSA]


    Если вдруг кому то понадобится!
    Ответ написан
    1 комментарий