• Как вставить 300 строк в таблицу?

    @galaxy
    Проще все же key было сделать serial.

    insert into table_Number (key, tstamp)
    select * from (
    	select row_number() over () n, t
      	  from generate_series(NOW() - INTERVAL '90 days', NOW(),'1 min') t
      ) sq
     where n <= 300

    https://www.db-fiddle.com/f/bzE1G4cQ8S6sCHHPFH64gx/0
    Ответ написан
    Комментировать
  • Для кругозора, как работает RSA?

    @galaxy
    откуда там появился коэффициент к

    Подобрался методом научного тыка.

    Мультипликативно обратный элемент d по модулю phi(n) означает e*d = 1 mod phi(n), т.е. e*d = k*phi(n) + 1, для некоторого целого k. Нужно подобрать k, чтобы правая часть последнего равенства без остатка делилась на e
    Ответ написан
  • Есть ли возможность общаться с TCP сервером вручную?

    @galaxy
    Для простых вещей telnet сойдет:
    > telnet address port
    Ответ написан
    Комментировать
  • В чём может быть проблема сервера и как её решить?

    @galaxy
    UDP сокеты не используют listen()/accept().
    Сразу можно делать socket.recvfrom()
    Ответ написан
    Комментировать
  • Как изменить тип столбца и имеющиеся строки используя данные из другой таблицы?

    @galaxy
    ALTER TABLE progress ADD COLUMN subject_id INT;
    
    UPDATE progress p SET p.subject_id = s.subject_id 
      FROM subjects s
     WHERE p.subject = s.subject;
    
    -- ALTER TABLE progress DROP COLUMN subject;
    Ответ написан
    Комментировать
  • Как построить диапазон значений от одной даты до другой?

    @galaxy
    От СУБД зависит, везде разные инструменты и свои особенности.
    Например, для PostgreSQL можно так:
    select status, generate_series(
        date_trunc('hour', date_start),
        date_trunc('hour', date_end),
        interval '1 hour')
      from tab


    sqlfiddle.com/#!17/81ba7/2
    Ответ написан
    1 комментарий
  • При sql запросе писать с кавычками или без?

    @galaxy
    1) Как безопаснее и правильней писать имя таблицы и базы с кавычками или без кавычек . Если с кавычками то с двойными или одинарными.

    Это не кавычки, а обратные апострофы (backticks).
    Правильнее - в апострофах. Без них нельзя использовать многие зарезервированные слова в именах таблиц/колонок/пр., а также ограничен набор символов. С апострофоми можно делать так:
    SELECT * FROM `select` WHERE `select`.id > 100;
    SELECT * FROM `a b`;
    CREATE TABLE `a``b` (`c"d` INT);
    select * from tablename group by `group`;
    Ответ написан
    3 комментария
  • Что делать если программа выдает ошибку при вводе функции double?

    @galaxy
    Неплохо было бы написать, в какой строке ошибка (а для начала оформить код нормально - в редакторе кнопка есть).
    Видимо, тут проблема return 5 * tan(x) - (10 / (x) ^ 2) - 3;
    (x) ^ 2 - это не возведение в степень, а XOR (исключающее ИЛИ). В квадрат возводить так: x*x, например
    Ответ написан
    Комментировать
  • Есть ли какой-то сервис, умеющий делать усиленную ЭЦП на документ?

    @galaxy
    А нужен вам тут сервис вообще? Это как-то не очень безопасно, ключ-то должен в сервисе храниться
    https://habr.com/ru/post/550664/
    Ответ написан
  • Как получить определённый элемент из бд(через foreach)?

    @galaxy
    Вы несколько раз определяете фукнцию selected() внутри foreach, вот последняя и срабатывает.
    Пишите свой url в value у option, функцию selected() вытащите за пределы foreach:
    <select size="4" id="series_list" name="selection" onchange="selected(this)" disabled>

    var videoPlayer = document.getElementById('video-player');
                
                function selected(sel){
                    videoPlayer.src = sel.options[sel.selectedIndex].value;
                    videoPlayer.play();
                }
    Ответ написан
    1 комментарий
  • Почему меняется 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 комментария