• SQLITE WHERE не возвращает ничего?

    @nirvimel
    Ваше:
    SELECT task, status FROM todo WHERE 1;
    эквивалентно
    SELECT task, status FROM todo WHERE True;
    что эквивалентно
    SELECT task, status FROM todo;
    Ответ написан
    Комментировать
  • ERR_CONNECTION_TIMED_OUT?

    @nirvimel
    1) Заходим сюда https://www.url2png.com/
    2) Вводим url сайта.
    3) Видим результат того как прямо сейчас этот сайт выглядит для всего интернета (а не для вас).
    4) Делаем выводы кто виноват: ваш провайдер или хостинг.
    5) В случае чего такой "нотариально-заверенный" скриншот может послужить доказательством некомпетентности беспомощного саппорта.
    Ответ написан
    1 комментарий
  • Задачка по mysql?

    @nirvimel
    Что-то типа такого?
    select a.email as email, p.id_post as id_post, (p.publicated_to - NOW()) as days_left
        from publications as p inner join authors as a on p.author_id = a.id
        where p.publicated_to > NOW()
    Ответ написан
    3 комментария
  • Как лучше организовать автоматическое восстановление приложения после сбоя?

    @nirvimel
    Классический вариант решения:
    1. Таблица, где хранятся котировки, имеет индекс по дате/времени.
    2. Выгрузка идет отдельными транзакциями в цикле. Между транзакция не сохраняется никакого внутреннего состояния. По окончанию каждой транзакции программа (условно) возвращается в исходное состояние (этим обеспечивается восстановление после сбоев).
    3. В самой транзакции сперва делается выборка записи с максимальным значением временной отметки (поиск по индексированному полю - мгновенно).
    4. Это значение округляется в меньшую сторону до начала периода (минуты/часа/дня/года).
    5. Производится запрос котировок за этот период.
    6. Выбранные данные объединяются с содержимым таблицы таким образом, что пересекающиеся записи не дублируются (тут много вариантов решения на sql).
    7. Транзакция закрывается.
    Все.
    Итого: полная гарантия отсутствия дублирующих записей в базе при любом раскладе. Этот скрипт/программу можно запускать вручную/автоматически/по_графику в любое время - ситуация с несколько одновременно работающими копиями не опасна (хоть и бессмысленна).
    Ответ написан
    1 комментарий
  • Где взять хорошего регистратора доменов?

    @nirvimel
    Собственно при этом что-бы цена была низкая.

    Ну конечно же - NameCheap

    Желательно что-бы на своем опыте, а не просто так

    У меня куча печального опыта с другими. А с неймчипом я благополучно забыл все те "опыты".
    Ответ написан
    1 комментарий
  • Что можно почитать про архитектуру клиент сервера?

    @nirvimel
    Где можно узнать больше о синхронизации клиента и сервера?

    Бывает синхронизация данных и синхронизация процессов. Задачи Синхронизации данных обычно сводятся или к контролю версий или к синхронизации файловых систем или к репликации БД . Для каждой из этих проблем существуют давно отточенные стандартные решения, велосипеды собственного производства тут неуместны.
    Задачи синхронизации процессов возникают когда есть некий разделяемый "ресурс" к которому пытаются получить доступ более одного "потребителя". В 99% случаев это касается синхронизации потоков/процессов на самом сервере, но не между клиентом и сервером.

    О целостности данных при синхронизации?

    За это обычно отвечает СУБД. Для прикладных задач достаточно правильно организовать собственные транзакции к БД, тут самое главное определиться с тем какую целостность вы собираетесь обеспечивать (что под этим понимается), это не такой простой вопрос, ответ на него позволит организовать собственные транзакции нужным образом.
    Ответ написан
    Комментировать
  • Как вызвать функцию по onclick?

    @nirvimel
    Можно сверху (вне всех обработчиков) ввести переменную:
    var myMap;
    Дальше просто заменить:
    var myMap = new ymaps.Map()
    на
    myMap = new ymaps.Map()
    Ответ написан
    1 комментарий
  • Сойдет ли Scala как второй язык после JS?

    @nirvimel
    Scala более похож на js из всех языков

    Это что шутка такая? Как статический, компилируемый язык со строгой типизацией и развитой системой типов может быть похож на динамический интерпретируемый скрипт?
    Ответ написан
    1 комментарий
  • Почему создаются дополнительные потоки в конце очереди?

    @nirvimel
    С виду тут все в полном порядке.
    Имеем 50 ПАРАЛЛЕЛЬНЫХ потоков, которые питаются из очереди в 500 элементов.
    1. К моменту когда первый поток окончил выполнение своего задания, на выполнение которого потратил некоторое время, в очереди давно уже осталось 450 элементов, ведь расхватывают новые задания потоки мгновенно и ПАРАЛЛЕЛЬНО.
    2. К моменту, когда завершилось выполнение 450-го задания, оставшиеся 50 уже находятся в работе, их уже расхватали потоки, и в очереди осталось 0 элементов. После чего оставшиеся 49 потоков заканчивают выполнение своих заданий и каждый рапортует о том, что наблюдает в очереди ноль элементов, после чего воркеры вылетают по task_done() и подбираются join-ом в основном потоке.
    Ответ написан
    2 комментария
  • Как рисовать гистограммы в GTK3-виджет + PyGObject?

    @nirvimel
    В вашем случае, наверное, только вручную рисовать простыми примитивами (прямоугольниками, линиями) на DrawingArea при помощи DrawingMethods (это под gtk2, но под 3-ий будет аналогично). Маловероятно, что где-то найдется СПЕЦИАЛЬНАЯ библиотека для рисования ИМЕННО гистограмм ИМЕННО под GTK3, притом достаточно легковесная для вас.
    Если не существует ТЕХНИЧЕСКИХ ограничений, мешающих пользоваться matplotlib, то вероятно вы придете к тому, чтобы ей воспользоваться. Весь софт на python под GTK, способный рисовать гистограммы так или иначе стоит на matplotlib. Реальных альтернатив, похоже, не существует.
    Ответ написан
    1 комментарий
  • Как протестить удаление с помощь Selenium?

    @nirvimel
    Дело в том, что метод click создает событие click, которое имеет свойства screenX и screenY, то есть должно происходить на "видимом" экране. Работа через Selenium не меняет того факта, что браузер и все скрипты на странице работают с неким "видимым" экраном. Иначе одной строкой на js можно было бы легко выявить весь обман и отсутствие живого человека по ту сторону браузера.
    Но find_elements_by_xpath возвращает все соответствующие данному xpath элементы дерева в независимости от их реальной видимости. При этом невозможно вызвать click на элементе за пределами "видимого" экрана.
    Частично решить эту проблему можно путем вызова scrollIntoView на элементе перед click. Но у этого метода тоже могут возникать проблемы с элементами, у которых (или у их родителей) style="display:none".
    Ответ написан
    Комментировать