LINUX.ORG.RU

Сообщения firkax

 

ftp.ru.debian.org не резолвится

Форум — Talks

У всех?

 ,

firkax
()

Не добавлять дубли сообщений

Форум — Linux-org-ru

С плохого инета иногда не доходят ответы на post отправки сообщения. В итоге, после повторного нажатия кнопки, их получаются два, и из-за того же плохого инета может не получиться увидеть этот итог и вовремя удалить дубль. Почему бы не пропускать добавление коммента, если он 100% совпадает с последним добавленным этим юзером в эту тему? Даже ошибку никакую не писать, просто раз коммент уже есть - пропускать этот инсерт а всё остальное как обычно.

 

firkax
()

header-файлы с функциями, принимающими va_list

Форум — Development

Почему авторы всяких libc могут объявлять функции типа vprintf в stdio.h не инклюдя побочно stdarg.h (вдруг юзеру не нужно), а все остальные не могут? Ну, я конечно посмотрел как там сделано и там вместо va_list внутренний __синоним к нему, но это же не то что некроссплатформенно, а даже при переходе на другое libc может сломаться (у libc-шных хедеров такой проблемы понятное дело нет). И даже нормального способа выяснить инклюдил ли юзер stdarg тоже нет (можно было бы эти функции вырещать препроцессором если знать что stdarg не заинклюден - всё равно без него их вызвать не получится ведь va_list).

Что вы об этом думаете?

UPDATE Поскольку замечено систематическое непонимание сути темы, попробую ещё раз написать другими словами. Есть такая функция

int vprintf(char const *fmt, va_list arg);
Функция определена в stdio.h, тип va_list - в stdarg.h. Но stdio.h умеет показать этот прототип не инклюдя заодно stdarg.h. То есть, после инклюда stdio.h у нас уже есть vprintf, но нету va_list. Ладно, пофиг на vprintf, пусть даже его тоже не будет если нет stdarg, более важный аспект: можно инключить stdio+stdarg и пользоваться vprintf с va_list, а можно инклюдить только stdio (без stdarg) и он тоже скомпилируется, и не будет ругаться на «undefined identifier va_list» пытаясь показать прототип для vprintf. Как этого добились в libc я в курсе, но способ чисто приватный для libc и пользоваться им снаружи, не боясь сломать где-то совместимость, нельзя.

Перемещено leave из talks

 , ,

firkax
()

Что за «оффсайт http2»?

Форум — Talks

http2.github.io - что это за бред? Серьёзно, они своей домашней страницей решили сделать аккаунт на гитхабе? Или это кто-то левый мимикрирует?

 

firkax
()

remmina-rdp жрёт трафик 1.4.11 vs 1.1.2

Форум — Desktop

Последнее время стала раздражать тормознутость rdp-сеансов через remmina (на том конце xrdp, если что). Сначала думал что виноваты новые версии xrdp, но догадался запустить старую версию реммины которую не удалил. Так вот, там где 1.1.2 (+freerdp 1.1.0-beta1) работает нормально и укладывается в 5кбайт/с входящего трафика, 1.4.11 (+freerdp 2.3.0) хочет 100кбайт/с и больше и тормозит. Если поставить на паузу коннект (на уровне tcp) и вернуться через несколько часов - то приходится долго смотреть как на удалённом десктопе часы пересчитывают все минуты от начала до конца паузы. Причём - если все удалённые окна были спрятаны, то часы идут ещё относительно быстро, а если там был открыт браузер (даже без меняющихся картинок) - то это очень надолго. С 1.1.2 такого никогда не было - казалось что оно после долгих задержек просто перерисовывает экран целиком в новое состояние, не проходя все промежуточные. А может быть просто очень быстро проходит и незаметно. В настройках коннекта ничего интересного не нашёл.

В чём может быть дело?

А да ещё вспомнил уточнения. В debian jessie было 1.1.1 и работало нормально. Потом в buster было 1.3.3 и работало вообще неудовлетворительно - не помню в чём было дело, но пользоваться было вообще невозможно, откатил на 1.1.1 через полчаса попыток наладить её работу, а спустя какое-то время пересобрал 1.1.2 из исходников чтобы не зависеть от библиотек из debian 8. Затем вышел bullseye с этим 1.4.11, который поначалу понравился но затем выяснилась эта подстава.

 , ,

firkax
()

Лицензия, код под которой не смогут украсть через ИИ

Форум — Talks

По мотивам комментария LINUX-ORG-RU: Мир поменялся (комментарий)

К слову, раз уж пошла пьянка и в забугром приняли законы позволяющие прогнать GPL код через сетку и получить Publick Domain результат, то есть вероятность что остальные в мире будут к подобному подтягиваться. Есть мысль включать в лицензии личных публичных проектов запрет на использование исходного кода в качестве данных для обучения и процесс работы программы тоже. Только нужно грамотно сформулировать и добавить это условие в любые лицензии своих проектов к MIT можно просто дописать, в случае GPL и подобных которые нельзя менять включить второй лицензией и пользователь обязан принять обе или тип того.

Собственно что вы думаете о реализации и целесообразности такого?

По-моему очевидно, что запретить стоит не только использование кода для обучения ИИ, но и способствовать таким последствиям: в частности, такая формулировка будет запрещать копировать код в гитхаб-репы, поскольку выложить код на гитхаб означает скормить его копилоту.

Ещё стоит отметить ситуацию с GPL. Производная от GPL лицензия с запретом на обучение кодом ИИ будет с оригинальным GPL несовместима, обойти эту проблему, насколько я понимаю, невозможно, даже если того захочет сам RMS, поскольку внести задним числом какие-то уточнения в лицензии уже опубликованного GPL-софта без согласия его авторов нельзя.

Насколько, по вашему мнению, целесообразно добавление подобных пунктов в лицензии:

1) свободные пермиссивные, не имея побочных эффектов;

2) свободные с копилефтом, теряя лицензионную совместимость с много чем

? И как подобные пункты могут выглядеть, чтобы было грамотно и без бекдоров?

А может, всё не так страшно и пусть воруют код? Или же, может быть, подобные вещи должны регулироваться законами, а не лицензиями?

 , , ,

firkax
()

Как сделать мышь в режиме джойстика?

Форум — Development

Имеется ввиду чтобы вместо координатных событий приходили «сдвинулось на столько-то пикселей вверх/вниз/вправо/влево» на неограниченное расстояние. В некоторых 3д-играх например такое используют для поворота камеры.

Предполагаю что это можно сделать костылём: прога постоянно переставляет мышиный курсор в центр окна (+ ещё надо как-то сделать чтобы укзаатель не мог убежать из окна, но думаю такое тоже есть), и тогда можно в самом деле двигать мышкой в одну сторону сколько угодно. Но может быть есть нативный способ проще?

 , ,

firkax
()

fwmx 1.3 — лёгкий оконный менеджер для x11

Новости — Open Source
fwmx 1.3 — лёгкий оконный менеджер для x11
Группа Open Source

Вышла версия 1.3 набора программ fwmx, включающих в себя собственно оконный менеджер (fwm), меню запуска приложений и регулятор громкости. В качестве индикатора раскладки используется xxkb.

( читать дальше... )

>>> Подробности

 ,

firkax
()

Узнать bits-per-pixel для x11 image в общем случае

Форум — Development

Хочу без привязки к конкретному случаю поддерживать все виды представлений пикселей, которые X-сервер теоретически может подсунуть. В частности, нужно выполнить весьма простую задачу: прислать с клиента на сервер картинку. На клиенте в иксах картинки принято представлять с помощью XImage.

По идее надо сделать XCreateImage:

XImage *img;
img = XCreateImage(display, NULL, depth, ZPixmap, 0, (char*)data, width, height, bitmap_pad, bytes_per_line);

И тут же сразу проблема: величина bytes_per_line, да и размер памяти, который надо выделить под data, зависят от количества бит на пиксель. Ну и чтобы в data что-то записывать, их тоже надо знать. Понятное дело, что для 32-битного depth оно будет тоже 32, но в общем случае, как видно из исходников, XCreateImage для узнавания этого значения использует функцию _XGetBitsPerPixel() и затем записывает её ответ в img->bits_per_pixel (вообще можно было бы оттуда это значение и прочитать, но его надо знать уже заранее).

Несмотря на то, что она есть в /usr/include/X11/Xlib.h, смущает тут подчёркивание в начале названия этой функции, отсутствие мана к ней и то, что поиск по её названию в инете выдаёт только всякую ерунду и отсылки к исходникам Xlib. Насколько она официально публичная?

Тут вот пишут что она неофициальная, но поскольку без неё всё это сделать нормально невозможно то надо вызывать: https://bugs.launchpad.net/hf-lab/ bug/716239

С другой стороны, странно: не могу придумать, как вообще можно нормально использовать XCreateImage с немонохромным типом без знания этой величины (можно ненормально: вызываем с data=NULL, затем читаем img->bits_per_pixel и вручную ставим img->data). Вряд ли они сделали заведомо нерабочую (в рамках официальных спек) функцию в интерфейсе и за 30 лет это заметили только несколько раз.

Я естественно понимаю, что вряд ли _XGetBitsPerPixel() уберут, но интересует скорее идеально-теоретическая сторона дела с поддержкой всех вариаций X11 с начала времён.

 ,

firkax
()

X11: несколько Screen в одном Display

Форум — Desktop

Использовалось ли это где-то вообще? Насколько я понимаю, эта фича не используется ни для многомониторных конфигураций (там делают один экран большого разрешения и мапят на его участки разные мониторы), ни для виртуальных рабочих столов (это вообще делает WM опять же в рамках одного Screen-а). Может, когда-то давно всё-таки для чего-то использовалось?

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

 , ,

firkax
()

firefox слеит за сетевыми интерфейсами, как отключить?

Форум — Desktop

При поднятии/выключении интерфейса ppp0 (через pppd) файрфокс явно что-то замечает, в частности шлёт запросы на свой «detectportal» и, что намного хуже, иногда (не всегда) молча обрывает текущие зависшие (из-за лагов сети) запросы без показывания страницы с ошибкой (оставляет предыдущую). Как это поведение отключить? Фф у меня всё равно через локальный прокси и разбираться с вопросами доставки запросов в инет - исключительно задача прокси, показывание ошибок включая таймауты коннектов - тоже.

 

firkax
()

Какие серверные веб-технологии вы используете на публичных сайтах

Голосования — Голосования

Речь про публичные сайты с ненулевой посещаемостью (скажем так, те, от поломки которых кто-то кроме вас и ваших знакомых начнёт беспокоиться, и которые вы захотите чинить прямо сейчас и побыстрее, а не в течение месяца по мере наличия свободного времени), на которых вы участвуете либо разработкой, либо поддержкой (администрированием там итд), либо каким-то видом технического руководства (включая бытие владельцем).

Опрос с мультивыбором, но пункты «да» и «нет» на одну и ту же технологию прошу не выбирать (хоть никто и не помешает это сделать). В частности, если поставили галочку в первом ответе - больше никакие не выбирайте. Для наиболее интересных пунктов есть вариант «не использую» - чтобы оценить неиспользование данной технологии среди тех, кто работает с вебом.

Во всех пунктах речь про серверную сторону, но для js я дополнительно уточнил во избежание непониманий. И ещё уточню - запуск на сервере всяких npm чтобы собрать js для браузера - сюда не входит.

Если вы участвуете более чем в одном проекте, то сложите все задействованные продукты.

  1. использую nginx 227 (52%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. использую postgresql 178 (41%)

    **********************************************************************************************************************************************************************************************************************************************************

  3. я таким не занимаюсь 138 (32%)

    **************************************************************************************************************************************************************************************************

  4. использую mysql/mariadb 132 (30%)

    ******************************************************************************************************************************************************************************************

  5. использую python 105 (24%)

    ****************************************************************************************************************************************************

  6. использую php как fpm или подобное 97 (22%)

    ****************************************************************************************************************************************

  7. не использую java 84 (19%)

    **********************************************************************************************************************

  8. использую nosql-хранилища (key-value) 83 (19%)

    *********************************************************************************************************************

  9. нигде не использую apache 82 (19%)

    *******************************************************************************************************************

  10. использую apache как публичный http(s)-сервер 78 (18%)

    *************************************************************************************************************

  11. не использую javascript на сервере 72 (17%)

    *****************************************************************************************************

  12. не использую php 70 (16%)

    **************************************************************************************************

  13. использую sqlite или ручное хранение "базы" в локальных файлах 67 (15%)

    **********************************************************************************************

  14. использую apache как внутренний сервер приложений 63 (14%)

    ****************************************************************************************

  15. использую php как cgi или mod_php к апачу 62 (14%)

    ***************************************************************************************

  16. не использую python 61 (14%)

    *************************************************************************************

  17. использую javascript на сервере 59 (14%)

    ***********************************************************************************

  18. использую go 52 (12%)

    *************************************************************************

  19. использую java 49 (11%)

    *********************************************************************

  20. использую другие сервера баз данных 42 (10%)

    ***********************************************************

  21. использую другой софт в качестве публичного http(s)-сервера 41 (9%)

    *********************************************************

  22. использую другие компилируемые языки 39 (9%)

    ******************************************************

  23. использую perl 26 (6%)

    ************************************

  24. не использую nginx 20 (5%)

    ****************************

  25. использую c# 19 (4%)

    **************************

  26. использую другие скриптовые языки (кроме шеллов) 18 (4%)

    *************************

  27. использую mssql 16 (4%)

    **********************

  28. использую скриптовые языки microsoft (asp/vb/?) 7 (2%)

    *********

Всего голосов: 1987, всего проголосовавших: 435

 ,

firkax
()

firefox addon - перехват управления урлами и вкладками

Форум — Desktop

Возможно ли такое? Хочу себе сделать, но лень разбираться, т.к. не уверен что это вообще штатно возможно. Может кто видел аддоны которые таким занимаются? (чтоб точно знать что можно, ну и смотреть их код как пример)

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

 ,

firkax
()

зависимость выдаваемого асм-кода от нефункциональных вставок

Форум — Talks

Извиняюсь за оффтоп, речь про компилятор ms vc 5 (вроде, 97 года).

Если в большой программе где-то в начале вставить бесполезное typedef int random_string_5423432; или int func_name_35432423(void); (в том числе не задевая номера строк), то у него (иногда, но всегда репродуцируемо) меняется ассемблерный дамп получившегося бинарника. Оба варианта (до и после) корректные, отличия касается, например, выбора другого регистра для хранения какого-нить промежуточного числа или другого порядка сложения/вычитания в формуле a[b-c]. Или, например, вместо add eax,[some_mem] оно делает mov ecx,[some_mem] / add eax,ecx или наоборот.

Зависимость наблюдается от количества таких вставок, их содержание не важно. То есть, допустим, нет вставок - один бинарник, 5 typedef-ов - другой, 12 typedef-ов - третий, 3 typedef-а и 2 функции - такой же как 5 typedef-ов. Дублирующие объявления не влияют (т.е. если написать typedef int q1; typedef int q1; то это то же самое как если бы он был один.

Вопрос вобщем-то один - как такое вообще может происходить? Не свидетельство ли это постоянного повреждения памяти, когда код хранилища идентификаторов бьёт память кодогенератору? Или они туда (в генератор асм-инструкций) засунули рандом-генератор, сидированный количеством имеющихся идентификаторов?

Другие версии msvc не проверял. В gcc с таким не встречался вроде (или плохо смотрел).

 , , ,

firkax
()

Реакции к новостям

Форум — Linux-org-ru

Мне вот захотелось поставить одной новости фейспалм, а потом я подумал что автор может воспринять его на свой счёт и убрал. А как вы воспринимаете их? Это реакция на то, о чём говорится в новости, или на то, как её автор донёс до лора?

 , ,

firkax
()

В mcedit есть автокомплит по alt-tab

Форум — Talks

А вы знали? Случайно нажал ища хоткей для переключения вкладок xfce-terminal.

 , , ,

firkax
()

С каких пор 32-битные pid-ы?

Форум — Talks

Давно не устанавливал новые линуксы, вот установил и обнаружил что там pid-ы стали из 6 цифр. При этом на компах где уже стоит тот же debian 11 (обновлённый со старых) - pid-ы везде короткие. Выяснил что это настраивается в /proc/sys/kernel/pid_max и что на 32-битных он по-дефолту 32768, что проясняет почему у меня на старых компах они короткие. Но мне помнится, я когда-то и 64-бит линуксы где-то ставил и там тоже были короткие pid-ы.

 , ,

firkax
()

Как часто вы редактируете патч-файлы в текстовом редакторе?

Форум — Talks

Имеется ввиду прямо правка изменённого текста, включая номера и количество строк в заголовках. У меня - иногда бывает. Причины могут быть разные, я вот вспомнил две:

1) патч не совсем подходит, и вместо того, чтобы мержить его руками (редактировать таргет-файлы для его «применения»), бывает проще (и надёжнее с точки зрения возможных ошибок/опечаток) отредактировать файл патча (или файл .rej с непринятым его куском) и ещё раз его применить

2) сгенерил сам патч на одной системе, перенёс в другую, приготовился применять, а потом внёс ещё небольшие правки в код - вместо того чтобы заново генерировать и пересылать патч, проще бывает эти правки сделать прямо в нём на системе куда он прислан.

 , , ,

firkax
()

sshd, PermitOpen, unix-socket

Форум — Admin

Насколько я вижу в man sshd_config, форваринг unix-сокетов разрешается опцией AllowStreamLocalForwarding и больше никаких настроек там не причастно. По факту же, если в конфиге указана опция PermitOpen и в ней стоит что-то кроме any, форвардинг unix-сокетов всегда отвергается с надписью типа такой:

Received request to connect to path /path/to/socket, but the request was denied.

Собственно, посмотрев в исходник, всё так и есть: для unix-сокетов там точно так же вызывается проверка белого списка, только вот способов внести в этот белый список unix-сокет (кроме общего для всех any) я что-то не вижу. Ну и с маном это поведение кардинально расходится (кроме того что синтаксис PermitOpen рассчитан только на TCP).

Проверял на 7.9 (дефолтный в freebsd12) и 8.4 (дефолтный в debian11).

Это я что-то напутал или всё так и есть и уже за много вышедших версий никто даже не заметил проблемы?

---------------------------------------------------

Места в исходниках (8.4 но думаю там мало что менялось):

1) serverloop.c: server_request_direct_streamlocal()

        if ((options.allow_streamlocal_forwarding & FORWARD_LOCAL) != 0 &&
            auth_opts->permit_port_forwarding_flag &&
            !options.disable_forwarding && (pw->pw_uid == 0 || use_privsep)) {
                c = channel_connect_to_path(ssh, target,
                    "direct-streamlocal@openssh.com", "direct-streamlocal");
        } else {
                logit("refused streamlocal port forward: "
                    "originator %s port %d, target %s",
                    originator, originator_port, target);
        }
тут всё ок, проверяются глобальные разрешения на unix-socket forwarding

2) channels.c: channel_connect_to_path()

        permit = pset->all_permitted;
        if (!permit) {
                for (i = 0; i < pset->num_permitted_user; i++) {
                        perm = &pset->permitted_user[i];
                        if (open_match(perm, path, PORT_STREAMLOCAL)) {
                                permit = 1;
                                break;
                        }
                }
        }
это функция специально для unix-сокетов, так что общего кода с tcp тут нет, а вот проверка белого списка выше процитирована (она одинаковая с проверкой в channel_connect_to_port() для tcp
static int
open_match(struct permission *allowed_open, const char *requestedhost,
    int requestedport)
{
        if (allowed_open->host_to_connect == NULL)
                return 0;
        if (allowed_open->port_to_connect != FWD_PERMIT_ANY_PORT &&
            allowed_open->port_to_connect != requestedport)
                return 0;
        if (strcmp(allowed_open->host_to_connect, FWD_PERMIT_ANY_HOST) != 0 &&
            strcmp(allowed_open->host_to_connect, requestedhost) != 0)
                return 0;
        return 1;
}

 , ,

firkax
()

О смене почт на аккаунтах

Форум — Linux-org-ru

Так можно рандомного юзера с подобным описанием увести, находим просроченный домен, регаем на себя, просим поставить почту «ведь указана в описании» и восстанавливаем туда пароль. Или даже больше - сначала просим сменить почту и только потом регаем домен, чтоб зря не возиться.

 

firkax
()

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