• Почему меняется id при multiprocess Python?

    @galaxy
    когда я меняю её в методах get в progressbar она не будет меняется, так как другой id

    не в id ваша проблема. get() и progressbar() запускаются из разных процессов (почитайте хотя бы в википедии, что это такое). Процессы имеют независимое адресное пространство каждый, и переменные в разных процессах никак друг с другом не связаны.
    Почитайте, как обмениваться информацией между процессами.

    К вопросу про id: id - это если грубо, адрес соответствующей переменной структуры в памяти (в CPython). Даже если в разных процессах этот адрес один и тот же, это не означает ничего, т.к. адресные пространства процессов независимы и виртуальны.
    С другой стороны, конкретный адрес зависит от того, как выделялась память при запуске процесса и его исполнении. Multiprocessing запускает новый процесс чуть иначе, чем вы, вот и адреса разные.
    Ответ написан
    Комментировать
  • Как исправить ошибку в pagespeed?

    @galaxy
    Во-первых, это не ошибка, а рекомендация, причем довольно бестолковая.
    Удовлетворить pagespeed можно:
    1. отложив загрузку стилей (вниз страницы или асинхронно через JS)
    2. заинлайнив их
    3. выделив существенные правила именно для данной страницы и загружать только их.

    1 - покажет (и будет показывать всегда) нестилизованную страницу до полной прогрузки.
    2 - тоже тупой способ, ибо придется каждую страницу раздувать, вместо того, чтобы один раз положить стили в кеш.
    3 - геморно. Не, так-то этот путь хорош, но у вас там 12кБ стилей - из-за такой мелочи огород разводить?

    Объедините стили в один файл, минифицируйте, сожмите brotli (или от чего там гугл сейчас оргазмирует). И забейте на pagespeed
    Ответ написан
    2 комментария
  • Как выбрать записи за сегодня sqlite?

    @galaxy
    Если храните строкой, используйте формат, который можно сравнивать:
    strftime("%Y-%m-%d %H:%M");

    $start = strftime("%Y-%m-%d");
    $end = strftime("%Y-%m-%d", strtotitme("tomorrow"));
    $db->query("SELECT * FROM tab WHERE time > ='$start' AND time < '$end'");
    Ответ написан
  • Как оптимизировать запрос sqlite datetime для postgresSQL date?

    @galaxy
    Текущее время - now()
    date_trunc() - округление даты
    -- date('now', 'start of day')
    date_trunc('day', now())
    
    -- date('now', 'start of month')
    date_trunc('month', now())
    
    -- date('now', '-6 days')
    now() - INTERVAL '6 days'
    Ответ написан
    Комментировать
  • Пример замыкания при использовании метода arr.filter( ). Как это работает?

    @galaxy
    Но объяснения, как сие работает, никакого нет. Не совсем понятно здесь, откуда прилетает некие нигде не объявленный аргумент x в анонимную внутреннюю функцию? Интуитивно предполагаю, что ее может определять сам метод filter при прохождении по массиву, но сам механизм не совсем понятен..

    так и работает

    Метод filter() вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве, и создаёт новый массив со всеми значениями, для которых функция callback вернула значение, которое может приведено к true. Функция callback вызывается только для индексов массива с уже определёнными значениями; она не вызывается для индексов, которые были удалены или которым значения никогда не присваивались. Элементы массива, не прошедшие проверку функцией callback, просто пропускаются и не включаются в новый массив.

    Функция callback вызывается с тремя аргументами:

    1. значение элемента;
    2. индекс элемента;
    3. массив, по которому осуществляется проход.


    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан
    Комментировать
  • Как вывести значениЕ которое больше всего повторяется?

    @galaxy
    Ну например:
    select i from t group by i order by count(*) desc limit 1;


    sqlfiddle.com/#!17/d1148/1
    Ответ написан
    Комментировать
  • Объясните почему происходит ошибка UnboundLocalError: local variable 'error_count' referenced before assignment?

    @galaxy
    Так работают переменные в питоне.
    Если переменная только читается в локальной области видимости (в вашем случае - внутри функции login()), то она будет искаться последовательно локально, в области видимости на уровень выше и так до глобальной.
    Если в переменную идет запись в локальном скоупе, то она становится локальной (причем сразу, а не в момент записи). Это поведение меняется объявлением переменной global или nonlocal. Надеюсь, понятно написал (если что, об этом в интернете полно материалов, например)

    В вашем примере error_count в функции login() - локальная, т.к. внутри функции идет запись в нее. При этом вы пытаетесь читать из нее до записи (ибо error_count += 1 суть error_count = error_count+1).
    Ответ написан
  • Для чего WITH CONSISTENT SNAPSHOT?

    @galaxy
    Я бы не назвал себя специалистом в mysql, но вот что можно увидеть из документации, как минимум:
    The WITH CONSISTENT SNAPSHOT modifier starts a consistent read for storage engines that are capable of it. This applies only to InnoDB. The effect is the same as issuing a START TRANSACTION followed by a SELECT from any InnoDB table. See Section 15.7.2.3, “Consistent Nonlocking Reads”. The WITH CONSISTENT SNAPSHOT modifier does not change the current transaction isolation level, so it provides a consistent snapshot only if the current isolation level is one that permits a consistent read. The only isolation level that permits a consistent read is REPEATABLE READ. For all other isolation levels, the WITH CONSISTENT SNAPSHOT clause is ignored. A warning is generated when the WITH CONSISTENT SNAPSHOT clause is ignored.


    То бишь:
    1. Все это касается только InnoDB
    2. START TRANSACTION WITH CONSISTENT SNAPSHOT не отличается от START TRANSACTION + SELECT (точнее, как я понял, тот самый консистентный снепшот фиксируется в первом случае в момент START TRANSACTION, а во втором - в момент SELECT).
    3. Суть одна и та же - транзакция видит данные на момент фиксации снепшота, независимо от того, что там делают параллельные транзакции (+ она, конечно, видит свои собственные изменения)
    4. WITH CONSISTENT SNAPSHOT не меняет уровень изоляции
    5. WITH CONSISTENT SNAPSHOT работает только с REPEATABLE READ и игнорируется для любых других уровней с выдачей предупреждения (блин, не имею возможности проверить: что, даже для SEIRALIZABLE?)

    Короче, вывод: ставите REPEATABLE READ (он, впрочем, стоит по умолчанию) и нафиг не сдался этот WITH CONSISTENT SNAPSHOT.

    я могу вообще не делать полную блокировку таблиц, чтобы не потерять незавершенные транзакции. Я правильно понимаю смысл использования?

    Смысл: вы получаете снимок состояния БД на момент фиксации снепшота. Обычно, это то, что нужно для бекапа
    Ответ написан
    1 комментарий
  • Влияет ли мощность компьютера/сервера на executor plan в Postgres?

    @galaxy
    Не влияет. Cost считается в попугаях, которые рассчитываются через коэффициенты (коэффициенты определяют во сколько раз медленнее или быстрее операция относительно seq_page_cost - доступа к странице при последовательном чтении).
    Разница в Row/width говорит почти наверняка о проблемах со статистикой. Сделайте на обеих базах ANALYZE (можно даже VACUUM FULL ANALYZE, если базы использовались для записи).
    Ответ написан
    2 комментария
  • Уточнение типа в ООП. Где ошибка?

    @galaxy
    Парсер такое воспринимать не научен (да и писателю я бы по рукам надавал).
    return $x[0]::{$x[1]}();
    (это помимо того, что очевидно $x и $m перепутаны были после четвероточия)
    Ответ написан
    2 комментария
  • Сумма бесконечного ряда на C++?

    @galaxy
    Как минимум:

    double eps, i, sum; -> double eps, i, sum = 0;

    i = (pow(-1,k) * (pow(x, k+2) / Fact2(k+1) * (4 * k+3)) );
    ->
    i = (pow(-1,k) * (pow(x, k+2) / Fact2(k+1) / (4 * k+3)) );


    sum +=1; -> sum += i;
    Ответ написан
    3 комментария
  • Безопасно ли хранить верификационные коды в БД?

    @galaxy
    Ведь, если будет взломана БД, то даже учитывая, что все пароли зашифрованы, могут быть активные коды на сброс пароля, которыми можно воспользоваться.

    Странно, снявши голову, плакать по волосам. Если уж у вас взломали БД, так можно и просто пароль поменять пользователю (да и вообще, доступ ко всем данным и так есть).
    Если только вы представляете себе какой-то взлом "на полшишечки"... Ну тогда можно зашифровать паролем, хранящимся где-то в настройках приложения.
    Ответ написан
    1 комментарий
  • Как найти в строке слова-палиндромы?

    @galaxy
    А ошибки и предупреждения компилятора не пробовали читать?

    void polydrome(char **word){ -> void polydrome(char *word){

    char **words[80]; -> char *words[80];
    Ответ написан
    Комментировать
  • Как защититься от двойного списания в многопоточном приложении?

    @galaxy
    Есть проблема, что я не нашел блокировки строк, блокирующей на чтение

    SELECT FOR UPDATE
    Ответ написан
    3 комментария
  • 'bytes' object has no attribute 'get' как исправить ошибку?

    @galaxy
    Если в ответе приходит JSON, в этом случае его сначала надо запросить из объекта Response:
    ...
    self.find_largest(photo.get('sizes'))) for photo in resp.json()],
    Ответ написан
    Комментировать
  • Как вытянуть данные с ячейки mysql {title}?

    @galaxy
    Там же JSON
    echo json_decode($settings)->title;
    Ответ написан
    Комментировать
  • Как найти максимальные значения из сумм в MySQL?

    @galaxy
    С mysql 8:
    SELECT user_id, price FROM (
    	SELECT t.*, rank() over (order by price desc) as r FROM (
    		SELECT user_id, SUM(price) price FROM `order` GROUP BY user_id
    	) t
    ) t2
     WHERE r = 1
    Ответ написан
  • Как изменить свойства колонки, не удаляя текущие значения?

    @galaxy
    Сделать еще одну колонку, скопировать данные, колонки переименовать?
    Ответ написан
    2 комментария
  • ValueError: invalid literal for int() with base 10: '', что делать?

    @galaxy
    f.readline() читает очередную строку файла. Посчитайте, сколько строк вы читаете в вашем коде (подсказка: больше, чем n)

    Прочитайте все строки в список и потом уже сравнивайте, как хотите
    Ответ написан
    Комментировать
  • Почему кракозябры в Теме письма в "Opera Mail"?

    @galaxy
    Заголовки с не-ASCII символами должны кодироваться по стандарту (1, 2). Сомневаюсь, что go за вас это сделает
    Ответ написан
    1 комментарий