• Как лучше организовать хранение разномастных архивных данных?

    @art_karetnikov
    Лучший мой проект: Мобильный банк Сбербанка РФ.
    Антон, правильно будет, если тебе помогло, ставить ответы решениями. Это я и про твой предыдущий вопрос.

    Теперь давай посмотрим. На мой взгляд, у тебя отдельная сущность "обновление ПО" и оно должно быть в отдельной таблице и мешать его ни с чем не нужно. Т.е. вот у тебя есть Id, m_version, m_date - и пусть оно так и будет.
    А посещение - это у тебя отдельная сущность, с обновлением не обязательно связанная. Значит, правильный вариант - две таблицы, по одной на каждую сущность. Крайне важно сущности не мешать.

    Как это правильно оформить? Я бы на твоем месте в форму, куда ты заносишь данные о посещении добавил чекбокс "обновили необычайно важное ПО". Тогда у тебя дата посещения одна, но если этот чекбокс стоит, то ты пишешь её в две таблицы. Каждая сущность остается изолированной, ничего ты не смешиваешь, и имеешь верные данные.
    Ответ написан
    7 комментариев
  • Может ли Python заменить php?

    Конечно можно, сайты - django, flask.
    В основном, если вы хотите устроиться или открыть свою студию - изучайте сразу же django, если же так, побаловаться, то flask. Для простеньких проектов и быстрого освоения идеальный вариант.
    Ответ написан
    1 комментарий
  • Как организовать хранение изменений в ячейки таблицы Access?

    @art_karetnikov
    Лучший мой проект: Мобильный банк Сбербанка РФ.
    Ну смотри. Вот у тебя есть ключевое поле в основной таблице, должно быть по идее.
    Id_general

    Дальше у тебя таблица городов, в ней пусть id_city.

    И вот у тебя итоговая таблица Архив.

    Id_history Id_general Id_city Date_Change.

    Id_history - автоинкримент. А остальные поля - какую именно ты строку менял, на что, когда.
    Сделав выборку по id_general и добавив сортировку по Date_Change - ты получишь историю изменений.

    Следовало бы добавлять схему данных свою. И - таблицы называй с префиксом tbl, желательно английским языком. Бывают сложно уловимые глюки с русскими названиями.
    Ответ написан
    4 комментария
  • Получение данных о системе и управление ею с помощью python?

    Ternick
    @Ternick
    НУ вот смотри эти либы примерно для твоих нужд :
    os, sys, platform, time.
    Ну вот вроде и все модули которые я знаю и которые тебе нужны ) А так не знаю на счёт главного браузера )
    Ответ написан
    3 комментария
  • Нейросети. Почему Python?

    @Ambrosian
    Вы имеете ввиду про ситуацию, когда нейросети - все исследовательские проекты.
    Ученые - не обязательно программисты. А Python - язык программирования с низким порогом входа.
    Никто не пишет с нуля, не тратит время - просто используют уже написанные другими библиотеки.
    В результате вокруг Python сложилось community по нейросетям.
    Если вам именно в исследовательских целях - поступайте также.

    P.S.:
    Это вы еще про Фортран не знаете.
    Язык давным давно не используется программистами.
    Но физиками продолжает использоваться.
    Ответ написан
  • Как сохранять списки в файл и доставать их из файла?

    igorzakhar
    @igorzakhar
    >>> data = [('config.h', '.\\mb_config.h', '83A7A716'), ('mainCpp.cpp', '.\\mainCpp.cpp', '30FCD925')]
    >>> import pickle
    >>> with open('data.pickle', 'wb') as fp:
    ...     pickle.dump(data, fp)
    ... 
    >>> with open('data.pickle', 'rb') as fp:
    ...     data_new = pickle.load(fp)
    ... 
    >>> data_new
    [('config.h', '.\\mb_config.h', '83A7A716'), ('mainCpp.cpp', '.\\mainCpp.cpp', '30FCD925')]
    Ответ написан
    1 комментарий
  • Как выровнять структуру XML?

    Shshzik
    @Shshzik
    Начинающий
    from xml.dom import minidom
    
    pretty = minidom.parseString('str').toprettyxml()
    Ответ написан
    1 комментарий
  • Я хочу найти красивый фреймворк для GUI для Python. Что мне выбрать кроме Tkinter'а и PyQt'а?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Во-первых, Qt и Tk - это не фреймворки, а библиотеки. Во-вторых, лучше Qt вы ничего не найдёте. В-третьих, список всех gui-библиотек легко гуглится. И наконец, в-четвёртых, откуда нам знать, какая библиотека вам больше подойдёт и почему не устраивают Qt и Tk?
    Ответ написан
    Комментировать
  • Пример SOAP клиента на Python?

    qlkvg
    @qlkvg
    python backend developer
    Если типов запросов не много и запросы не сложные, то имхо лучше сделать дубово
    spoiler
    import requests
    
    user = "admin"
    password = "password"
    endpoint = "http://soap.endpoint"
    
    login_template = """
    <?xml version="1.0"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
      <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        <NS1:GetVersion xmlns:NS1="urn:DCCIntf-IDCC">
          <user>{user}</user>			
          <pass>{pass}</pass>			
        </NS1:GetVersion>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    """
    body = body.format(user=user, pass=password)
    body = body.encode('utf-8')
    
    session = requests.session()
    session.headers = {"Content-Type": "text/xml; charset=utf-8"}
    session.headers.update({"Content-Length": str(len(body))})
    response = session.post(url=endpoint, data=body, verify=False)


    Сам недавно пол дня пытался подружить zeep и suds с одним специфическим АПИ, в итоге плюнул и за оставшиеся пол дня сделал все на голых реквестах.
    Ответ написан
  • Функция сортировки в javascript, необходимо изменить правило ортировки?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    StationsSort.sort(function(s1,s2) {
     // some code
    })

    Это не функция. Функцией является сам метод sort(), которому можно передать функцию как параметр, которая будет указывать как сортировать элементы. А StationsSort является объектом который нужно отсортировать. И вызывается метод sort() в данном блоке кода, а не где то еще.

    Для примера:
    let arr = [5, 4, 7, 2, 1, 8, 6, 0];
    
    arr.sort((a, b) => {
    	if (a < b) {
      	return -1;
      } else if (a > b) {
      	return 1;
      } else {
      	return 0;
      }
    }); // [0, 1, 2, 4, 5, 6, 7, 8]


    PS. Для начала приведите код в нормальный вид, согласно какому нибудь code style. Сейчас же в вашем коде черт ногу сломит.
    Сделайте хотя бы так:
    $.get(URL + '/stations.json', function(data) {
      var j1 = 0;
    
      $.each(data, function(j1) {
        Stations[this.sindex] = this;
        StationsSort[j1] = this;
        
        j1++;
      });
    
      var date = new Date();
      dstmp = date.getTime();
    
      $.each(StationsSort, function() {
        lastMsg = Math.floor(dstmp / 1000) - this.last_at;
        style = '';
    
        if (lastMsg < 10800) {
          style = "style=\"background: #8affbb;\"";
        }
    
        StationsSort.sort(function(s1, s2) {
          if (s1.sindex > s2.sindex)
            return 1;
          if (s1.sindex < s2.sindex)
            return -1;
          else
            return 0;
        });
    
        $('#station-list').append("<div " + style + " class='st-btn' title='" + EncodeHTML(this.station_name) + "' onclick=\"StationProcess(this, '" + EncodeHTML(this.sindex) + "')\">" + EncodeHTML(this.sindex) + ' - ' + EncodeHTML(this.station_name) + "</div>");
      });
    });
    Ответ написан
    6 комментариев
  • Как запустить Python программу?

    @m0nym
    "Панель управления" / "Выбор стандартных приложений для типов файлов"
    Должно быть прописано для .py - python.exe или pythonw.exe
    Ответ написан
    Комментировать
  • Как преобразовать кортеж с несколькими элементами в одну строку?

    str.join() склеивает через указанную строку элементы списка;
    map() применяет указанную функцию к каждому элементу списка.

    t = (('a1', 'a2', 'a3'), ('b1', 'b2', 'b3'))
    
    ';'.join(map(','.join,t)) # 'a1,a2,a3;b1,b2,b3'


    Вместо ; и , можно указать другие разделители, в т.ч. пустую строку.
    Ответ написан
    Комментировать
  • Как преобразовать кортеж с несколькими элементами в одну строку?

    tema_sun
    @tema_sun
    Ну вот так например:
    flatten = [str(item) for sub in tuple for item in sub]


    Или можно itertools использовать:
    import itertools
    flatten = [str(item) for item in itertools.chain(*tuple)]


    А потом сделать join:
    "".join(flatten)
    Ответ написан
    Комментировать
  • Определяемся с выбором беспроводного МФУ для дома?

    @Mark_Berkutov
    Специалист STMC-тестирования ВЕНЕТА СИСТЕМ
    Унылая картина -
    HP, в низшем сегменте, выставил аппарат как у всех - с немагнитной системой переноса тонера. При этом у HP цена страницы печати, на оригинале, зашкаливает за 4,2 руб.. При заправке картина тоже будет безрадостной - тонерка прослужит не более 3-5 раз, а блок фотобарабана пока не восстанавливается. Чипы на HP серии JI астрономической цены, а оставив старые теряется контроль за остатками тонера.
    Таким образом - HP в данном конкретном случае это будет выбор "бренда" - дорого и престижно.

    Samsung - качество пластика и конструкция картриджа (101,111) таковы, что нормально восстановить его могут не только лишь все - даже после первого цикла. Чип блокирует работу - либо менять, либо прошивать аппарат. Бренд так себе (их уже HP купил), стоимость владения может неприятно удивить.

    Ricoh - несмотря, на то что картриджи даже имеют пробку для самостоятельной заправки никаких запчастей для картриджей кроме фотовала нет. Через 3-5 циклов придётся купить новый картридж.
    При этом модель SP150 имеет только "верхнюю" подачу бумаги (лотка нет), вследствие этого необходимо всегда вынимать бумагу после печати и закрывать верхнюю подачу иначе все мелкие предметы в доме так и норовят туда незаметно упасть.
    Несомненное достоинство Ricoh перед остальными, в данном случае, это картридж "всё в одном", за исключением SP325 - там тоже раздельный картридж.

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

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

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

    При малых объёмах печати ( до 500 стр./мес.) наиболее интересен Ricoh SP150 - самый дешёвый аппарат + бонус - имеет прямой тракт прохода позволяющий уверенно прогнать плотный носитель.
    При печати около 1000 стр./мес. наиболее интересен Brother
    Для печати более 2000 стр./мес. разумно взять Xerox или Ricoh SP220

    При подборе техники начального класса в плане производительности смотреть надо не на скорость печати, а на объём картриджа. Оптимальным будет замена тонерной части раз в 1-3 месяца.
    Ответ написан
    2 комментария
  • Не копируются папки на сетевой диск - Wi-Fi, беспроводные сети, в чем может быть дело?

    @DobriyJuk
    Сетевой инженер, системный администратор
    1. Подключите диск к ПК, проверьте, работает ли он, как должно.
    2. Попробуйте скачать и закачать большой объем данных в инет. Например на яндекс диск или one drive.

    Если обе проверки прошли успешно, то проблема очевидно в прошивке роутера. Или с гораздо меньшей вероятностью в USB порту роутера. Первое скорее всего вылечится перепрошивкой (скачайте последнюю версию прошивки с офф.сайта и обновите). Второе лечится только заменой.
    Ответ написан
    8 комментариев