LINUX.ORG.RU

Сообщения Xintrea

 

Странная ошибка при создании функции в PostgreSQL

Форум — Development

Имеется следующий короткий код на Python. В основе кода используется библиотека psycopg2. Весь код работает в одной транзакции.

Что делает код? Он должен просто создать функцию с именем update_change_time_column(). После создания, функция, естественно, существует одна на всю схему.

# Рекомендательная блокировка на момент создания функции
self.exec( "SELECT pg_advisory_lock(12345);" )

# Проверка что функция уже есть в БД
resultCursor = self.exec( """SELECT EXISTS (
                          SELECT 1
                          FROM information_schema.routines
                          WHERE routine_name = 'update_change_time_column'
                            AND routine_schema = current_schema()
                          );""" )
isFunctionExists = resultCursor.fetchone()[0]

# Если функции нет, она создается
if not isFunctionExists:
    self.exec( """
               CREATE OR REPLACE FUNCTION update_change_time_column()
               RETURNS TRIGGER AS $$
               BEGIN
                 IF current_setting('custom.disable_change_time_trigger', true) IS NOT NULL THEN
                   RETURN NEW;
                 END IF;

                 NEW.change_time = now();
                 RETURN NEW;
               END;
               $$ language 'plpgsql';
               """ )

# Рекомендательная блокировка снимается
self.exec( "SELECT pg_advisory_unlock(12345);" )

Важно: внешняя система может запустить данный код в параллель. Примерно 10 одинаковых копий этого кода работает одновременно. Не спрашивайте почему, это не моя разработка.

И при работе иногда возникает ошибка:
Ошибка при выполнении SQL-запроса
CREATE OR REPLACE FUNCTION update_change_time_column()
RETURNS TRIGGER AS $$
BEGIN
  IF current_setting('custom.disable_change_time_trigger', true) IS NOT NULL THEN
    RETURN NEW;
  END IF;

  NEW.change_time = now();
  RETURN NEW;
END;

ОШИБКА:  повторяющееся значение ключа нарушает ограничение уникальности "pg_proc_proname_args_nsp_index"

DETAIL:  Ключ "(proname, proargtypes, pronamespace)=(update_change_time_column, , 2200)" уже существует.

Вопрос: почему возникает такая ошибка?

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

 , , , транзакция,

Xintrea
()

Как сделать INSERT в таблицу, у которой есть RULE?

Форум — Development

Имеется таблица calc, для которой написано правило:

CREATE RULE rule_insert_calc AS
ON INSERT TO calc 
DO  SELECT pg_notify('notify_insert_calc'::text, (new.id)::text) AS pg_notify;
В таблице, как видно из этого кода, есть поле id.

Теперь надо сделать команду INSERT так, чтобы если значение id уже есть в таблице, то запись не добавлялась.

Интернет советует писать так:
INSERT INTO calc (...) VALUES (...) ON CONFLICT (id) DO NOTHING;
Однако такой SQL-запрос вызывает ошибку:
INSERT c предложением ON CONFLICT нельзя использовать с таблицей, для которой заданы правила INSERT или UPDATE


Вопрос: как добавить данные в таблицу с RULE так, чтобы не добавлялись записи с уже существующими id?

 , ,

Xintrea
()

Создание пакета moc через checkinstall -D завершается ошибкой

Форум — Development

Собрал я себе moc (mocp) из исходников:

http://moc.daper.net/download

И хочу его контролируемо установить в системе. Но при запуске команды checkinstall -D появляется ошибка:

2.6-alpha3" is not a
*** Warning: debian policy compliant one. Please specify an alternate one

Я пробовал задать в качестве версии «2.6.0~alpha3», но все равно появляется та же самая ошибка.

Вопрос: как побороть эту ошибку?

 , ,

Xintrea
()

Как заставить VSCode собирать Си-проект через Makefile?

Форум — Development

Имеется готовый проект на языке Си. Для сборки в нем используется Makefile, который лежит в корне проекта.

Находясь в корне проекта я запускаю VSCode:

code .

Далее создаю каталог .vscode, в нем создаю файл tasks.json следующего содержания:
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build",
            "type": "shell",
            "command": "make",
            "group": "build",
            "problemMatcher": []
        }
    ]
}

По идее, теперь при нажатии Ctrl+Shift+B должна происходить компиляция проекта.

Но ничего не происходит. Где в меню находится пункт Build или нечто подобное - я тоже не нашел.

Вопрос: как в VSCode запустить компиляцию проекта, который собирается командой make?

 , , , ,

Xintrea
()

Не могу прочитать JSON из командной строки в Python

Форум — Development

Написал вот такой примитивный скрипт, который берет строку со стандартного входа и пытается сделать из нее JSON-объект:

#!/usr/bin/python3

import sys
import json

jsonData = sys.argv[1]

print("Получена JSON строка: ", jsonData)

try:

    config = json.load( jsonData )

except (Exception) as error:
    print("Некорректный формат JSON")
    sys.exit(1)

Запускаю его так:
./ourScript.py '{ "varName": "varValue" }'

И мне в ответ:
Получена JSON строка:  { "varName": "varValue" }
Некорректный формат JSON

Что тут такого неправильного?

 , ,

Xintrea
()

Подскажите адекватный минимальный GUI браузер с поддержкой JavaScript и CSS

Форум — General

Нужен GUI браузер для запуска на очень древнем 32-х битном железе. Установлен Debian 12 (32bit).

* Firefox - слишком медленен и тяжел.

* Min Браузер (https://minbrowser.org) - оказалось что есть только 64bit сборки.

* Links2 -g - работает хорошо, но в нем нет JavaScript.

Кто что еще реально пользовал на максимально слабом железе?

 , , ,

Xintrea
()

Не могу запустить WiFi на USB-свистке ZyXEL NWD2105 в чистой консоли

Форум — General

Пытаюсь получить WiFi-сеть, использую ZyXEL NWD2105. Сеть надо получить в консоли на очень слабом железе без этих ваших NetworkManager и WiCd, чтобы в памяти ничего лишнего не болталось и процессорное время не выжиралось (Intel Celeron M processor 630MHz, RAM 512Mb).

Вот какие действия я совершаю:

> # Что увидело ядро
> dmesg | grep -i phy
[   34.915284] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[   34.945194] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0005 detected
[   34.945612] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'


> # Что на шине USB
> lsusb | grep -i wireless
Bus 001 Device 002: ID 0586:341e ZyXEL Communications Corp. NWD2105 802.11bgn Wireless Adapter [Ralink RT3070]


> # Заблокировано ли устройство
> rfkill list
0: eeepc-wlan: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
1: phy0: Wireless LAN
        Soft blocked: yes
        Hard blocked: no

        
> # Разблокировка устройства
> rfkill unblock 1
> rfkill list
0: eeepc-wlan: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
1: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

        
> # Состояние линка wlan0
> ip link show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether fc:f5:28:fb:f8:a6 brd ff:ff:ff:ff:ff:ff

    
> # Поднятие интерфейса wlan0 (ошибок нет, интерфейс не поднимается)
> ip link set wlan0 up
> ip link show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether fc:f5:28:fb:f8:a6 brd ff:ff:ff:ff:ff:ff

    
> # Вывод информации о WiFi устройствах
> iw dev
phy#0
        Interface wlan0
                ifindex 3
                wdev 0x1
                addr fc:f5:28:fb:f8:a6
                type managed
                txpower 20.00 dBm


> # Просмотр списка WiFi сетей
> iw wlan0 scan | grep SSID
        SSID: RT-GPON-07B9
        SSID: RT-GPON-6E8F
        SSID: Pipetka
        SSID: TP-Link_14B3
        SSID: Borsh
        SSID: RT-GPON-2180
        SSID: TP-Link_B140
        SSID: MikroTik-Xi
        SSID: Cher
        SSID: KV91
        SSID: 
        SSID: tanushenok
        SSID: 249

        
> # Установка параметров поключения к WiFi сети (выполняется без ошибок)
> iwconfig wlan0 essid MikroTik-Xi key s:ТутМойПароль


> # Снова попытка поднять интерфейс (выполняется без ошибок, интерфейс не поднимается)
> ip link set wlan0 down
> ip link set wlan0 up


> # Состояние линка
> ip link show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether fc:f5:28:fb:f8:a6 brd ff:ff:ff:ff:ff:ff

    
> # Состояние TCP/IP
> ip addr show wlan0
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether fc:f5:28:fb:f8:a6 brd ff:ff:ff:ff:ff:ff

То есть, устройство работает с радиоканалом, видит WiFi сети, но подключиться не может. Почему-то не поднимается сетевой интерфейс.

Если что, то соединение предполагается по DHCP. Содержимое /etc/network/interfaces следующее:
auto lo
iface lo inet loopback

allow-hotplug ens3
iface ens3 inet dhcp

allow-hotplug wlan0
iface wlan inet dhcp

Попытка подключиться через dhclient выглядит так:
> dhclient -v wlan0
Internet Systems Consortium DHCP Client 4.4.3-P1
Copyright 2004-2022 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/fc:f5:28:fb:f8:a6
Sending on   LPF/wlan0/fc:f5:28:fb:f8:a6
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 11
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 17
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

Видимо, соединяться по DHCP не имеет смысла, пока status DOWN. Но как сделать status UP я не пойму.

Еще момент: в компьютере есть набортное WiFi устройство ath5k, которое раньше хотя бы определялось ядром, но видимо когда был всунут USB-донгл, ядро его по какой-то причине видеть перестало. Я с этим устройством повозился, но бросил, потому что в Интернетах под Linux ему никто ума дать не смог (в Windows, естественно, работает). Виделось оно вот так:
[  262.434122] ath5k 0000:01:00.0: enabling device (0000 -> 0002)
[  262.434540] ath5k 0000:01:00.0: registered as 'phy0'
[  262.956818] ath: EEPROM regdomain: 0x60
[  262.956837] ath: EEPROM indicates we should expect a direct regpair map
[  262.956847] ath: Country alpha2 being used: 00
[  262.956853] ath: Regpair used: 0x60
[  262.956948] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[  263.026299] ath5k: phy0: Atheros AR2425 chip found (MAC: 0xe2, PHY: 0x70)

А теперь этих строк в загрузке ядра не видно, хотя никаких специальных действий для его отключения не делал. Я про этот AR2425 говорю для полноты картины.

ЗЫ: Кастую mky.

 , , ,

Xintrea
()

Где найти документацию на формат вывода команды ip addr?

Форум — General

Читаю man ip, читаю man ip-address, читаю ip addr help.

Нигде не написано, какие конкретно данные показывает утилита IP и в каком формате. Вот например:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff

Вначале идет номер интерфейса, нумерация с единицы. Это можно понять.

Затем имя интерфейса.

Затем нечто в угловых скобках «<...>». То ли то ли это текущее состояние интерфейса, то ли это возможные состояния интерфейса, то ли там намешаны и возможные «флаги», и текущие. В общем что это? Где найти описание всех возможных значений, применяемых в угловых скобках?

Далее идет поток каких-то ключевых слов. Есть подозрение, что они организованы в пары (имя значение), но подтверждения этой теории в документации не нашел. И даже если это ключ-значение, то что они значат? Возможное (настроенное) состояние? Текущее состояние? Все вперемешку? Где официально найти что значат сами параметры, их описание и возможные значения (mtu, qdisc, state, group, qlen, может еще что)?

Вот, например, имеются строки:
"<LOOPBACK,UP,LOWER_UP> ... state UNKNOWN"
или
"<BROADCAST,MULTICAST,UP,LOWER_UP> ... state DOWN

Что сие значит? Интерфейс поднят или нет? В угловых скобках есть и UP и какой-то LOWER_UP, но в state написано UNKNOWN или DOWN. Как это понимать?

 , , ,

Xintrea
()

Что вы думаете об этой фантазии?

Форум — Talks

Концепции и размышления о новой современной операционной системе:

https://habr.com/ru/articles/840072/

Там автор даже про идейно верный, с его точки зрения, шелл рассказывает. Как по мне, так чувствуется передоз упорином.

 

Xintrea
()

Исчезновение текущего каталога в пути к файлу в Bash-скрипте

Форум — General

Пытаюсь перевести библиотеку звуковых файлов в WAV-формат. Для этого написал простой скрипт:

#!/bin/bash
     
find \( -name \*.mp3 \
     -or -name \*.MP3 \
     -or -name \*.Mp3 \
     -or -name \*.ogg \
     \) -print0 \
     | while IFS= read -r -d '' file; 
do
    fileWithoutExt="${file%.*}"
    command="ffmpeg -loglevel quiet -i \"${file}\" -y -ar 44100 \"${fileWithoutExt}.wav\""
    echo "Команда: ${command}"
done

Этот скрипт выдает следующую последовательность команд, и эти команды правильные:
Команда: ffmpeg -loglevel quiet -i "./Last love jam.mp3" -y -ar 44100 "./Last love jam.wav"
Команда: ffmpeg -loglevel quiet -i "./WindJam/Minus 4.mp3" -y -ar 44100 "./WindJam/Minus 4.wav"
Команда: ffmpeg -loglevel quiet -i "./WindJam/Minus 3.mp3" -y -ar 44100 "./WindJam/Minus 3.wav"
Команда: ffmpeg -loglevel quiet -i "./WindJam/Minus 2.mp3" -y -ar 44100 "./WindJam/Minus 2.wav"
Команда: ffmpeg -loglevel quiet -i "./WindJam/Minus 1.mp3" -y -ar 44100 "./WindJam/Minus 1.wav"
Команда: ffmpeg -loglevel quiet -i "./Thrash-electronics JAM.mp3" -y -ar 44100 "./Thrash-electronics JAM.wav"
Команда: ffmpeg -loglevel quiet -i "./Jingle Bells - Backing Track.mp3" -y -ar 44100 "./Jingle Bells - Backing Track.wav"
Команда: ffmpeg -loglevel quiet -i "./Road  Jam minus2.mp3" -y -ar 44100 "./Road  Jam minus2.wav"
Команда: ffmpeg -loglevel quiet -i "./Chamba Jam/1.ogg" -y -ar 44100 "./Chamba Jam/1.wav"
Команда: ffmpeg -loglevel quiet -i "./Chamba Jam/5.ogg" -y -ar 44100 "./Chamba Jam/5.wav"
...

Осталось дело за малым: выполнить эти команды. Добавляю в конец цикла строку:
eval "${command}"

И наблюдаю такую дичь:
Команда: ffmpeg -loglevel quiet -i "./Last love jam.mp3" -y -ar 44100 "./Last love jam.wav"
Команда: ffmpeg -loglevel quiet -i "WindJam/Minus 4.mp3" -y -ar 44100 "WindJam/Minus 4.wav"
Команда: ffmpeg -loglevel quiet -i "/WindJam/Minus 3.mp3" -y -ar 44100 "/WindJam/Minus 3.wav"
Команда: ffmpeg -loglevel quiet -i "./WindJam/Minus 2.mp3" -y -ar 44100 "./WindJam/Minus 2.wav"
Команда: ffmpeg -loglevel quiet -i "/WindJam/Minus 1.mp3" -y -ar 44100 "/WindJam/Minus 1.wav"
Команда: ffmpeg -loglevel quiet -i "./Thrash-electronics JAM.mp3" -y -ar 44100 "./Thrash-electronics JAM.wav"
Команда: ffmpeg -loglevel quiet -i "/Jingle Bells - Backing Track.mp3" -y -ar 44100 "/Jingle Bells - Backing Track.wav"
Команда: ffmpeg -loglevel quiet -i "./Road  Jam minus2.mp3" -y -ar 44100 "./Road  Jam minus2.wav"
Команда: ffmpeg -loglevel quiet -i "/Chamba Jam/1.ogg" -y -ar 44100 "/Chamba Jam/1.wav"
Команда: ffmpeg -loglevel quiet -i "./Chamba Jam/5.ogg" -y -ar 44100 "./Chamba Jam/5.wav"
...

Тут видно, что по неизвестным причинам в командных строках перед именем файла, вместо ожидаемых символов "./", могут быть следующие варианты:

- "./"
- «/»
- «»

Соответственно, обрабатываются не только лишь все файлы.

Я пробовал вместо eval и такие варианты для выполнения сконструированной команды:
"${command}"
и
${command}

Но тогда вообще другая дичь происходит: в первом варианте лезут ошибки (запускал с set -x):
Команда: ffmpeg -loglevel quiet -i "./Last love jam.mp3" -y -ar 44100 "./Last love jam.wav"
+ 'ffmpeg -loglevel quiet -i "./Last love jam.mp3" -y -ar 44100 "./Last love jam.wav"'
./soundConvert05.sh: строка 22: ffmpeg -loglevel quiet -i "./Last love jam.mp3" -y -ar 44100 "./Last love jam.wav": Нет такого файла или каталога

А во втором варианте команда вроде как выполняется, никакой ошибки не показывается, но WAV-файла не появляется:
Команда: ffmpeg -loglevel quiet -i "./Last love jam.mp3" -y -ar 44100 "./Last love jam.wav"
+ ffmpeg -loglevel quiet -i '"./Last' love 'jam.mp3"' -y -ar 44100 '"./Last' love 'jam.wav"'

Хотя опять же, если ручками выделить команду и выполнить ее в консоли, она выполнится правильно и WAV-файл будет сгенерирован.

Вопрос: как в этих ваших линуксах просто выполнить сконструированную команду, которая лежит в переменной?

 , , ,

Xintrea
()

Почему не доступен файл /sys/bus/usb/drivers/usb/bind (unbind) ?

Форум — Linux-hardware

Мне нужно временно включить/выключить USB-устройство.
Я пытаюсь воспользоваться вот этим решением:

https://superuser.com/questions/1707773/how-to-turn-usb-connected-device-on-a...

Однако файлы /sys/bus/usb/drivers/usb/bind и unbind невозможно использовать, хотя они есть и запись в них разрешена. Вот пример:

root@comp:~# ls -la /sys/bus/usb/drivers/usb/bind
--w------- 1 root root 4096 авг 22 10:17 /sys/bus/usb/drivers/usb/bind

root@comp:~# echo '3-13' |tee /sys/bus/usb/drivers/usb/bind
3-13
tee: /sys/bus/usb/drivers/usb/bind: Нет такого устройства

Вопрос: почему так? Что блокирует возможность записи в эти файлы?


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

 , ,

Xintrea
()

Чем перевести документ в направлении EN-RU на 150 000 символов?

Форум — Talks

Имеется автосгенерированный текст на 150 000 символов (~25 000 строк).

Его нужно перевести в направлении EN-RU. Google Translate ограничен 5 000 символов. Yandex Translate вроде дает 10 000 символов, но это тоже мало.

Вопрос: каким методом можно бесплатно без СМС автоматически перевести текст такого объема?

 , ,

Xintrea
()

Обработка имен файлов с пробелами, полученных от команды find - оно работает, но странно глючит

Форум — General

Наконец-то я почти нашел относительно адекватное решение старого вопроса: как в цикле правильно перебрать имена файлов, полученных от команды find, причем в именах файлов могут встречаться пробелы?

Решение такое:

find -name \*.mp3 -or -name \*.MP3 -or -name \*.Mp3 -or -name \*.ogg -print0 | while IFS= read -r -d '' file; 
do

    echo "Processing ${file}"
 
done

Однако есть проблема. Если в заданном каталоге вручную в консоли вызвать одну команду find, то она, как и положено, найдет все мои ~300 файлов:
find -name \*.mp3 -or -name \*.MP3 -or -name \*.Mp3 -or -name \*.ogg
./Last love jam.mp3
./WindJam/Minus 4.mp3
./WindJam/Minus 3.mp3
./WindJam/Minus 2.mp3
./WindJam/Minus 1.mp3
./Thrash-electronics JAM.mp3
... 300 файлов ...

Если же в этом же каталоге запустить полный вышеуказанный скрипт, то он найдет только *.ogg файлы.

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

 , , , ,

Xintrea
()

Как в XPath выбрать элементы с частично известным именем?

Форум — Development

Имеется следующий XML-код, сгенерированный некой программой с закрытыми исходниками:

<?xml version="1.0" encoding="utf-8"?>
<preparedreport>
    <b1 t="0">
        <m1 u="Период: 01.01.2024..08.08.2024"/>
    </b1>
    <b7 t="80.25201">
        <m53 u="Таблица"/>
    </b7>
    <b5 t="178.92919">
        <m33 u="09.01.2024"/>
        <m38 u="1"/>
        <m40 u="00:06"/>
    </b5>
    <b5 t="196.92919">
        <m33 u="10.01.2024"/>
        <m38 u="1"/>
        <m40 u="00:22"/>
    </b5>
</preparedreport>

Необходимо через XPath выбрать значения атрибута u для всех элементов, имя которых начинается на m.

То есть, в данном случае для элементов m1, m53, m33, m38, m40. А циферки в реальном XML-документе могут быть непредсказуемы, то бишь совершенно разные.

Вопрос: как через XPath выбирать элементы, имя которых начинается на m?

И вопрос со звездочкой: как через XPath выбрать элементы, имя которых начинается на m, после чего в имени идут только цифры?

Подозреваю, что правильный ответ - никак. Но хотелось бы подтверждения от реально знающих предмет специалистов.



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

 ,

Xintrea
()

GitHub стал показывать профиль рекурсивно

Форум — Talks

На основной странице показывает ошибку:

Uh oh!
There was an error in loading the activity feed. Reload this page.

А на странице профиля - профиль, потом с отступом ниже тот же профиль, потом с отступом еще один и так до бесконечности.

Браузер Firefox 86.0.1.

Если уменьшить шрифты, то выглядит вот так:

https://ibb.co/gFFNV3F

 

Xintrea
()

Как пользоваться ByeDPI для Android? Раззамедление YouTube

Форум — Talks

Наконец-то и мой провайдер стал резать YouTube. В поисках бесплатных OpenSource альтернатив VPN, я нашел такое:

Способ есть, протестил лично на своих девайсах:
(Работает по той же технологии, что и на пк GoodbyeDPI)

1. Качаете программу ByeDPI с гитхаба
https://github.com/dovecoteescapee/ByeDPIAndroid

2. Устанавливаем, включаем (при включении она запросит подключение впн). Ютуб работает. Вот так вот просто.

⚡️ Гайд, как пофиксить ютуб на Windows: https://t.me/modden_yt/1521

P.S. Ясное дело, есть впн, но бесплатный впн некачественный, а платный стоит денег. Так что, вот ответ тем, кто напишет про впн.


Ну окей. Поставил Obtainium, а через него ByeDPI for Android. Запускаю, нажимаю Connect. Пишет Connected. В Termux через ifconfig вижу, что создался интерфейс tun0. И дальше что?

Каким образом траффик Youtube должен завернуться на этот интерфейс?

Андроид, если что, не рутованный.

Искал-искал что где надо настраивать, везде в интернетах какая-то жесть. Наконец нашел следующее:

https://androidow.com/program/internet/3084-byedpi-ubiraem-zamedlenija-youtub...

Там написано:

Откройте ByeDPI после установки и перейдите к настройкам. Поменяйте VPN на Proxy. Альтернатива нажмите на шестерёнку в правом верхнем углу, во вкладке General выберите Mode и нажмите Proxy.

Активизация ByeDPI

После настройки активируйте ByeDPI. Программа начнет работать в фоновом режиме, обеспечивая обход замедлений и оптимизацию скорости соединения.

Проверка работы

Запустите YouTube на вашем Android TV или Google TV и оцените улучшение скорости воспроизведения видео. ByeDPI должен устранить все замедления и обеспечить плавный просмотр.


То есть, надо вместо режима VPN включить режим Proxy. Переключаю. Туннель пропадает. ByeDPI пишет что «Proxy is up 127.0.0.1:1080».

И дальше что делать?

Как траффик клиента YouTube завернуть на этот прокси?

UPD: Решение здесь: Настройки ByeDPI for Android для восстановления работы YouTube

 ,

Xintrea
()

Понимание других людей: что обозначает иконка?

Форум — Talks

Я давно уже перестал понимать людей из инторнета.

Вот, например, иконка на всем доступном сервисе:

https://ibb.co/WKDGVPg

Что она обозначает? Только я не понимаю?

UPD: Я даже дам подсказку: это как-то связано с иностранными языками.

 ,

Xintrea
()

Не могу правильно вставить рекламный блок Yandex 220x300 (коряво в Firefox)

Форум — Web-development

Здравствуйте, уважаемые веб-мастера.

Не могу нормально вставить рекламный блок Yandex размером 220x300.

Вот как выглядит вставленный блок:
https://ibb.co/ykGKmBC

Сама страница здесь:
https://webhamster.ru/mytetrashare/index/mtb0/340

Код такой:

...
<td rowspan="2" style="background-color: #eae9e0; 
                       padding:0px; 
                       vertical-align: middle;" 
                       width="220px" 
                       height="300px">
 <div style="text-align: center;">
  <div style="display: inline-block;">

   <!-- Yandex.RTB R-A-259917-2 -->
   <div id="yandex_rtb_R-A-259917-2">
   ...

Как видно, этот блок отображается со странными полями сверху и снизу. При просмотре свойств элементов никаких отступов не установлено. Но рекламный блок, почему-то, обрезан сверху и снизу.

Проблема в старых и новых (102.12.0esr) Firefox.
В Chrome такая проблема не наблюдается.

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

 , ,

Xintrea
()

Что означает Default для Experimental QUIC protocol в браузере Chrome?

Форум — General

Ели в Chrome в строке адреса ввести команду:

chrome://flags/#enable-quic

То будет отображена страница настройки значения Experimental QUIC protocol:

Experimental QUIC protocol
Enable experimental QUIC protocol support. – Mac, Windows,
Linux, ChromeOS, Android, Fuchsia, Lacros

#enable-quic


Возможные варианты: Default, Enable, Disable.

Вопрос: как понять, что означает Default?

 ,

Xintrea
()

Загадки исходников NVIDIA

Форум — Development

Имеется исходник:

https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/nvidia/genera...

И в нем не понятно, что это за конструкция в виде отдельного блока, завершаемого запятой «{...},» посреди других определений:

#if defined(BINDATA_INCLUDE_STORAGE_PVT_DECL)
BINDATA_STORAGE_PVT kgspBinArchiveBooterLoadUcode_TU102_patch_meta_storage_pvt;
#endif // defined(BINDATA_INCLUDE_STORAGE_PVT_DECL)

#if defined(BINDATA_INCLUDE_STORAGE_PVT_DEFN)
{
    12, // uncompressed data size (bytes)
    12, // compressed data size (bytes)
    kgspBinArchiveBooterLoadUcode_TU102_patch_meta_data, // compressed data pointer
    NV_FALSE, // is pData compressed?
    NV_TRUE, // contain information for file overriding?
    NV_FALSE, // is the data referenced during load? (Only valid when BINDATA_IS_MUTABLE is true)
},
#endif // defined(BINDATA_INCLUDE_STORAGE_PVT_DEFN)

#if defined(BINDATA_INCLUDE_DATA)
static BINDATA_CONST NvU8 kgspBinArchiveBooterLoadUcode_TU102_num_sigs_data[] = 
{
    0x01, 0x00, 0x00, 0x00,
};
#endif // defined(BINDATA_INCLUDE_DATA)

Эта конструкция «{...},» ничему не присваивается, то есть не участвует в инициализации, зачем она нужна? Встречается в этом файле несколько раз.

 , ,

Xintrea
()

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