LINUX.ORG.RU

Сообщения FeelUs

 

ssh из wsl не подключается к виртуальной машине (а putty подключается)

Установил FreeBSD на VirtualBox, пробросил порт с 22 на виртуалке на 2222 на хосте.
Подключаюсь через PuTTY - всё нормально.
Подключаюсь из WSL:

$ ssh -vvv 127.0.0.1:2222
OpenSSH_8.9p1 Ubuntu-3ubuntu0.6, OpenSSL 3.0.2 15 Mar 2022
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_addr: could not resolve name 127.0.0.1:2222 as address: Name or service not known
debug1: resolve_canonicalize: hostname 127.0.0.1:2222 is an unrecognised address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/feelus/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/feelus/.ssh/known_hosts2'
debug2: resolving "127.0.0.1:2222" port 22
debug3: resolve_host: lookup 127.0.0.1:2222:22
ssh: Could not resolve hostname 127.0.0.1:2222: Name or service not known

Что могло пойти не так?

 , ,

FeelUs
()

микрофон перестал слышать собственный динамик.

poco m4 pro 5g после очередного обновления miui примерно летом 2023 года

микрофон перестал слышать собственный динамик.

В результате чего CallRecorder и диктофон во время записи разговора (по телефону или по мессенджеру) записывает только мой голос, но голос собеседника (самое важное) не записывает. А также shazam не может слышать музыку, проигрываемую на данном устройстве.

Всё перерыл, где мог спросил, осталась последняя надежда. Как вернуть как было?

 , , ,

FeelUs
()

Реляционные базы данных и индексы

Два вопроса:

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

  2. Я знаю 2 способа быстрого поиска элемента в контейнере:
    а) красно-черное дерево - у него сложность O(log N), и при этом все элементы отсортированы
    б) хэш-таблица - сложность O(1), но при этом нет упорядоченности элементов.
    Есть ли РСУБД, которые позволяют выбирать между этими двумя опциями при создании индекса?

Ну и вообще, есть ли случаи, когда целесообразно хранить картинки в самой базе данных, особенно применительно к sqlite?

 , ,

FeelUs
()

python requests: сайт на некоторые запросы отвечает нормально а на некоторые 403 forbidden

Хочу скачать данные с https://www.rik.parlament.gov.rs/542645/rezultati/

смотрю в браузере сеть, и пытаюсь имитировать те же запросы с теми же параметрами, куками и заголовками

Вот все параметры:

import requests
url = 'https://www.rik.parlament.gov.rs'
common_headers = {
    'Host': 'www.rik.parlament.gov.rs',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0',
    'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate, br',
    'Connection': 'keep-alive',
    'TE': 'trailers',
}
get_headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Upgrade-Insecure-Requests': '1',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Site': 'none',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-User': '?1',
}
post_headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Referer': 'https://www.rik.parlament.gov.rs/',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'X-Requested-With': 'XMLHttpRequest',
    'Origin': 'https://www.rik.parlament.gov.rs',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
}
post_doc_headers = {'Sec-Fetch-Dest': 'document'}
post_empty_headers = {'Sec-Fetch-Dest': 'empty'}
def params2str(data):
    return '&'.join(k+'='+v for k,v in data.items())
def content_length(data):
    return {'content_length':str(len(params2str(data)))}
def req_load(should_update_pies,type,election_round,region,municipality,election_station):
    return {
        'should_update_pies':str(should_update_pies),
        'type':str(type),
        'election_round':str(election_round),
        'region':str(region),
        'municipality':str(municipality),
        'election_station':str(election_station),
    }

Инициирую сессию, получаю куки

r0 = requests.get(url+'/542645/rezultati/',headers= common_headers|get_headers)
r0 # <Response [200]>

Запросы /get_results/ всегда заканчиваются удачно

r3 = requests.post(url+'/get_results/',data=req_load(1,2,341140,1,1,0), headers= common_headers|post_headers|post_doc_headers, cookies=r0.cookies.get_dict())
r3 # <Response [200]>, содержательный

А вот запросы /get_regions/ /get-municipalities/ /get-election-stations/ всегда заканчиваются неудачно

param = {'election_type':'2','election_round':'341140'}
r2 = requests.post(url+'/get_regions/', data=param, headers= common_headers|post_headers|post_empty_headers|content_length(param), cookies=r0.cookies.get_dict())
r2 # <Response [403]>

И с добавлением content_length и без него

 , ,

FeelUs
()

помогите сделать debootstrap на centos 6

Установил debootstrap через yum.

Запускаю debootstrap --arch amd64 bookworm /mnt/debinst http://ftp.ru.debian.org/debian - ошибка, открываю /mnt/debinst/debootstrap/debootstrap.log - там

dpkg-deb: error: archive './/var/cache/apt/archives/libacl1_2.3.1-3_amd64.deb' contains not understood data member control.tar.xz, giving up
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

Ну значит dpkg-deb не умеет работать с xz архивами, надо поставить по свежее пакет dpkg. На всякий случай проверяю зависимости, от него зависит только debootstrap. Устанавливаю debootstrap и dpkg из репозитория debian вручную, как в мануале

# ar -x debootstrap_0.X.X_all.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv

Очищаю /mnt/debinst, опять запускаю debootstrap - ошибка

dpkg-deb: error while loading shared libraries: libmd.so.0: cannot open shared object file: No such file or directory
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

Отсутствует libmd. Нашел какой-то, взял для centos-7. Пытаюсь

# rpm -i libmd-1.1.0-1.el7.x86_64.rpm
предупреждение: libmd-1.1.0-1.el7.x86_64.rpm: Заголовок V4 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
ошибка: Неудовлетворенные зависимости:
        libc.so.6(GLIBC_2.14)(64bit) нужен для libmd-1.1.0-1.el7.x86_64

А у меня

# ldd --version
ldd (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.

Что мне дальше делать? Переустанавливать glibc? Тогда ведь вообще всё работать перестанет…

Как вообще переустановить линукс на сервере не выходя из дома?

 ,

FeelUs
()

как примонтировать exfat раздел и изменить владельца

как примонтировать exfat раздел, чтобы владельцем всех файлов был я а не какой-то root?
я пытаюсь sudo mount -o rw,user=feelus /dev/sda1 /mnt/SeaGate1/ но ничего не получается.

А у диспетчера файлов Dolphin это как-то получается. Как?

 ,

FeelUs
()

ошибка YaST2: could not prepare Boot variable

имеется жеский диск структуры MBR со следующими разделами:

  1. 691Gb exFAT «SeaGate1»
  2. 350 Mb NTFS «Зарезервировано системой»
  3. 585 Gb NTFS «SysGate»
  4. расширенный 4.1 585 Gb exFAT «SeaGate2»

Я его вставил в компьютер с UEFI (материнка Asus M5A97 LE R2.0) и устанавливаю на него OpenSuse Leap 15.5 Network Image с флешки

Первые 3 раздела я хочу сохранить. Я удалил раздел 4.1, и на его месте создал

  • /dev/sda5/ 500Mb EFI раздел,
  • /dev/sda6/ 30Gb SWAP раздел,
  • /dev/sda7/ остальные 555Gb btrfs для операционки.

и в конце YaST2 мне пишет: Ошибка:

Не удалось выполнить команду [[«/usr/sbin/shim-install»,«–config-file=/boot/gub2/grub.cfg»]]
Код завершения: 5
Сведения об ошибке: Выполняется установка для платформы x86_64-efi.
Установка завершена. Ошибок нет.
Could not prepare Boot variable: Function not implemented

При попытке запуститься с диска пытается загружать винду с разделов 2 и 3.

Не может ли это быть связано с тем, что EFI раздел - логический а не первичный?

При запуске с флешки попробовал запустить консоль grub, там

>ls (hd1,msdos7)/
@/
  • что это значит?
>ls (hd1,msdos5)/
efi/
>ls (hd1,msdos5)/efi/
./ ../ boot/ opensuse/

 , ,

FeelUs
()

Как обновить CentOS 6 в 2022 году?

Достался мне сервер с CentOS 6.10, к которому нет доступа. Хочу его обновить до CentOS 7, только yum не работает совсем, и все способы это исправить тоже не работают, устарели ссылки. Как быть? Что делать?

 

FeelUs
()

как правильно убить один процесс после завершения другого?

есть такой код, назовем его ~/monitor:

  • запускаю исследуемую команду
  • запускаю top, который исследует исследуемую команду
  • и хочу убить top после завершения исследуемой команды
#! /bin/bash
set -m # для fg

# есть 3 (или более) параметра
interval=$1 # 1
outfile="$2" # 2
shift
shift
# 3,4,5 - $@ - исследуемая команда

rm -f "$outfile" # очищаем лог

"$@" >> "$outfile" & # запускаем исследуемую команду в фоне

top -b -d $interval -p $! >> "$outfile" & # начинаем её исследовать
top_pid=$!

fg 1 > /dev/null # ждём завершения первой команды
sleep $interval # еще немного ждём

kill $top_pid # убиваем исследователя

когда я запускаю ~/monitor 5 sleep.log sleep 20 - всё ОК

Но когда я запускаю то же в фоне ~/monitor 5 sleep.log sleep 20 & - после завершения команды завершается оболочка из которой запущен этот monitor (если запускать из под screen - screen завершается, если напрямую через ssh - закрывается соединение) Это можно как-то исправить?

 ,

FeelUs
()

размер буфера перенаправления

Запускаю iostat в режиме постоянного повторения и перенаправляю в файл

iostat -dx /dev/sdb2 5 >> testlog

– подождав минуту прерываю - всё ОК, статистика в файле.

Запускаю iostat в режиме постоянного повторения через sed и перенаправляю в файл

rm testlog
iostat -dx /dev/sdb2 5  | sed -E 's/^(.*)$/iostat:\1/' >> testlog

– подождав минуту прерываю - файл пустой.

Запускаю iostat в режиме однократного запуска через sed и перенаправляю в файл

rm testlog
iostat -dx /dev/sdb2  | sed -E 's/^(.*)$/iostat:\1/' >> testlog

– всё ОК, статистика в файле.

Очевидно sed ждет, пока наполнится буфер перенаправления.

Как сделать так, чтобы данные из программы обрабатывались на лету и сразу же записывались в файл?

(Дело в том, что я хочу чтобы в этот файл еще писал (через >>) top и исследуемая программа, и надо чтобы их вывод был совмещен и при том хронологически упорядочен)

 ,

FeelUs
()

Отладка и просмотр объектов в памяти (python)

Подскажите, есть ли какая-нибудь питонская либа, которая позволяет просматривать объекты в памяти в удобном формате?

Я имею в виду например: начинаем с какого-нибудь объекта - отображается его содержимое. Потом подводишь мышку к какому-нибудь полю этого объекта, которое ссылается на другой объект, и рядом появляется окошко, в котором отображается содержимое этого другого объекта. Далее в новом окошке можно сделать то же самое. И так далее. А когда убираешь мышку с окна - оно пропадает.

Я помню такое было в MSVC2008. Это было очень удобно.

Если такое есть для jupyter-notebook-а - будет вообще божественно.

 ,

FeelUs
()

ls -R со следованием по симлинкам

Подскажите пожалуйста, как ls заставить рекурсивно выводить поддиректории так, чтобы еще ls следовала по симлинкам?

 

FeelUs
()

Слияние папок

Хочу функциональность при копировании/перемещении папок как в windows 8+:

когда встречаются одинаковые папки, чтоб спрашивал: сливать? сливать рекурсивно?, сохранить обе (изменив имя)? сохранить обе (изменив имя) для всех?

когда встречаются одинаковые файлы, чтоб спрашивал: заменить? для всех?, не заменять? для всех?, сохранить оба (изменив имя, т.е. name.txt -> name (1).txt)? для всех?

и чтоб когда он задает вопрос, чтоб не останавливался, а продолжал копировать/перемещать.

знаю

cp -ir
, но если мне надо не копировать, а перемещать, то перемещение было бы быстрее чем копирование, а потом удаление, ну и асинхронности нет, и сохранить, изменив имя, нельзя.

Подскажите что-нибудь, а то велосипед немного лень писать

 , ,

FeelUs
()

Помогите выбрать hackable text editor

В основном между:

emacs на elisp - вроде старый какой-то

sublime на python - в консоли не запускается (но это далеко не главный критерий)

, а какие бывают еще?

atom (на javascript) - не предлагайте, у меня оперативки не так много

vim - не очень hackable, там вообще можно избавиться от vim-режима?

 

FeelUs
()

Генерировать простые числа на haskell

Помогите придумать функцию, генерирующую бесконечный список простых чисел, такой же как [1..] или fib a b = a:fib b (a+b).

Очевидно, что это можно сделать неоптимально:

ghci> let isprime x = all (\n->x`mod`n/=0) [2..x-1]
ghci> take 10 $ filter isprime [2..]
а так же можно сделать оптимально, но так,чтоб генерировала бесконечный список у меня не получается
ghci> let isprimeof x primes = all (\y-> x`mod`y/=0) primes
ghci> let newprime primes = x where Just x =  find (flip isprimeof primes) [(last primes)..]
ghci> let addprime primes = primes ++ [newprime primes]
дальше можно определить primegen primes = primegen $ addprime primes, но это будет бесконечная рекурсия, которая не выдает список

 

FeelUs
()

No instance for (Num t0) arising from the literal `3' The type variable `t0' is ambiguous

class FooAble t where
    foo :: t->Bool
    foo _ = False

instance FooAble Int where
  foo x | x == 3 = True
        | otherwise = False

при попытке выполнить foo 3 появляется ошибка:

*Nat> foo 3

<interactive>:113:1:
    No instance for (FooAble t0) arising from a use of `foo'
    The type variable `t0' is ambiguous
    Note: there is a potential instance available:
      instance FooAble Int -- Defined at Nat.hs:75:10
    In the expression: foo 3
    In an equation for `it': it = foo 3

<interactive>:113:5:
    No instance for (Num t0) arising from the literal `3'
    The type variable `t0' is ambiguous
    Note: there are several potential instances:
      instance Integral a => Num (GHC.Real.Ratio a)
        -- Defined in `GHC.Real'
      instance Num Integer -- Defined in `GHC.Num'
      instance Num Double -- Defined in `GHC.Float'
      ...plus three others
    In the first argument of `foo', namely `3'
    In the expression: foo 3
    In an equation for `it': it = foo 3
*Nat>

как справиться с ошибкой? написание (fromInteger 3) и там и там не помогает

и еще такой вопрос: могу ли я в области сопоставления с образцом писать

foo 3 = ...
, ведь он автоматически раскрывается в
foo (fromInteger 3) = ...
, а fromInteger - это функция, а не конструктор?

 

FeelUs
()

Ambiguous occurrence в haskell

При решении задачки из учебника

data BinTree a = Leaf a | Branch (BinTree a) (BinTree a)

reverse :: BinTree a -> BinTree a
reverse (Leaf a) = Leaf a
reverse (Branch a b) = Branch (reverse b ) (reverse a )
-- reverse (Branch a b) = Branch (reverse  :: (BinTree a -> BinTree a) b ) (reverse :: (BinTree a -> BinTree a) a )
-- reverse (Branch a b) = Branch (reverse b :: (BinTree x)) (reverse a :: (BinTree x))

ghci при загрузке модуля, как бы я не пытался ему намекнуть типы, мне говорит одно и то же

Nat.hs:50:32:
    Ambiguous occurrence `reverse'
    It could refer to either `Nat.reverse', defined at Nat.hs:47:1
                          or `Prelude.reverse',
                             imported from `Prelude' at Nat.hs:1:8-10
                             (and originally defined in `GHC.List')

Nat.hs:50:59:
    Ambiguous occurrence `reverse'
    It could refer to either `Nat.reverse', defined at Nat.hs:47:1
                          or `Prelude.reverse',
                             imported from `Prelude' at Nat.hs:1:8-10
                             (and originally defined in `GHC.List')
Failed, modules loaded: none.

как с этим справится не отключая reverse из Prelude, а что бы была перегрузка функции?

Перемещено beastie из general

 

FeelUs
()

форматированный вывод сообщений об ошибках gcc

Перед тем, как писать свой велосипед спрошу: Допустим gcc выдает мне следующее сообщение

/usr/lib/gcc/i686-pc-cygwin/4.9.3/include/c++/bits/predefined_ops.h: In instantiation of «bool __gnu_cxx::__ops::_Iter_equals_val<_Value>::operator()(_Iterator) [with _Iterator = __gnu_cxx::__normal_iterator<std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, long long int> >*, std::vector<std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, long long int> > > >; _Value = const std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, int> >]»:
/usr/lib/gcc/i686-pc-cygwin/4.9.3/include/c++/bits/stl_algo.h:866:28:   required from «_ForwardIterator std::__remove_if(_ForwardIterator, _ForwardIterator, _Predicate) [with _ForwardIterator = __gnu_cxx::__normal_iterator<std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, long long int> >*, std::vector<std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, long long int> > > >; _Predicate = __gnu_cxx::__ops::_Iter_equals_val<const std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, int> > >]»
а я хочу его видеть в таком формате:
/usr/lib/gcc/i686-pc-cygwin/4.9.3/include/c++/bits/predefined_ops.h: In instantiation of «
	bool __gnu_cxx::__ops::_Iter_equals_val<_Value>::operator()(_Iterator) [
		with _Iterator = __gnu_cxx::__normal_iterator<
			std::pair<
				std::pair<char, std::basic_string<char> >, 
				std::pair<long long int, long long int> >*, 
				std::vector<
					std::pair<
						std::pair<char, std::basic_string<char> >, 
						std::pair<long long int, long long int> 
					> 
				> 
			>; 
		_Value = const std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, int> >
	]
»:
/usr/lib/gcc/i686-pc-cygwin/4.9.3/include/c++/bits/stl_algo.h:866:28:   required from «
	_ForwardIterator std::__remove_if(_ForwardIterator, _ForwardIterator, _Predicate) [
		with _ForwardIterator = __gnu_cxx::__normal_iterator<
			std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, long long int> >*,
			std::vector<std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, long long int> > > 
		>; 
		_Predicate = __gnu_cxx::__ops::_Iter_equals_val<
			const std::pair<std::pair<char, std::basic_string<char> >, std::pair<long long int, int> > 
		>
	]
»
Существуют ли утилиты, делающие что-то подобное?

 , ,

FeelUs
()

Аналог touch для си

Подскажите пожалуйста си-шную функцию, которая меняет время изменения файла (аналог команды touch).

Спасибо

 ,

FeelUs
()

уменьшить число элементов в массиве

что-то не пойму, возможен ли в bash сабж в принципе?

$ arr=(1 2 3 4 5)
$ echo ${#arr}
5
$ unset arr[5]
$ echo ${#arr}
5

видно, что этот способ не работает, но может есть какой-нибудь другой?

upd: это на самом деле на bash а zsh

 , ,

FeelUs
()

RSS подписка на новые темы