LINUX.ORG.RU

Сообщения firkax

 

Вынос ветки дискуссии в новую тему

 

Уже который раз из-за рандомной фразы начинается дискуссия, которая оффтоп к обсуждаемой теме, но тем не менее вполне заслуживает быть обсуждённой в техническом разделе. Выходим дилемма или нарушать правила оффтопом или отказываться от обсуждения, оба варианта не особо приятные. Почему бы не сделать вынос ветки в новую тему?

firkax
()

Сломался автосброс уведомлений

 

Тема black, старый вид.

firkax
()

Случайно удалил файлы

 , бармин,

Были у меня в директории рядом с исходниками, внутри рута рабочей копии vcs, несколько скриптов тестов. Часть из них использовала внешние (по отношению к репе) данные, и поэтому я их пока не коммитил (внёс в игнор-лист), думая что закоммичу когда решу вопрос с нормальным хранением данных для них. А только что мне пришлось там же рядом, в директории с тестами (она не вся в игноре), откатить локальное изменение, и я сделал revert на всю tests/. Но в revert был баг - оно игнорировало списки игнора и откатило tests/ к состоянию репы, по факту сделав rm -Rf на всё что было заигнорировано :(

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

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

firkax
()

Архитектуры где байт не 0..255 и софт под них

 

Кто с какими сталкивался (без археологии)? Какой из современно используемого софта можно под них скомпилировать чтобы он работал, без кучи костылей? Речь про системы, которые можно представить в виде чего-то компьютеро-подобного, например пытаться запустить на них, например, хотя бы обычное /bin/cat.

Напомню, Си формально не требует 8-битных байтов. А следовательно, используя всякие int8 int16 итд - рискуем получить слом совместимости с системами, где байты например 7-битные или 10-битные (там таких типов получается не будет). Стало интересно, насколько это актуально, или можно с чистой совестью продолжать забивать на это, как я всегда делал.

Я, конечно, понимаю, что такие системы, даже если существуют, очень редки. Вопрос в том, насколько они «очень редки» или же их сейчас вообще ровно ноль.

firkax
()

procfs hidepid

 hidepid,

В очередной раз увидел эту штуку в мане к procfs. Возник вопрос - почему везде дефолт 0? Это же дыра для всяческих утечек. От 1 или 2 что-то может сломаться? В фрибсд всегда настраивал сокрытие чужих процессов, и даже инсталлятор там предлагает это сделать (с некоторых пор). В линуксе же кроме абзаца в мане нигде почти не упоминается, как будто не принято.

firkax
()

Транзитные пакеты, LRO vs MTU

 , lro, ,

Система FreeBSD.

Ситуация такая: входящие пакеты собираются сетевухой LRO в один большой tcp-сегмент. Дальше оно должно роутиться на другой интерфейс, в него такой большой пакет не влезает. Даже если послать назад icmp ошибку, исходный хост же не виноват в ситуации и исправить ничего не сможет. TSO на втором интерфейсе нет.

Очевидное решение - отключить LRO, но есть и нетранзитные соединения (их даже большинство), где он полезен. Какие у кого есть мысли по этому поводу?

Способов нарезать назад большой tcp-сегмент на маленькие же нет? (речь не про ip фрагментацию а перепаковать именно tcp)

firkax
()

Тема про Debian

 

Это же очень важное событие для линукса, как её можно удалять?

firkax
()

ipfw fwd in + ipfw out xmit не тот интерфейс

 , ,

Заметил такую штуку. Если на входящий («in») пакет сделать fwd для смены ему next-hop (старый next-hop был локалхостом в связи с тем что dst ip локальный, новый - внешний), то при последующем проходе правил на выходе для исходящего («out») пакета интерфейсом отправки всё равно значится «lo0». Т.е. пакет можно файрволить правилом с «out xmit lo0», однако на самом деле он шлётся по указанному в первом проходе файрволла next-hop-у через соответствующий ему интерфейс.

Планирую позже посмотреть маны и исходники на этот счёт, чтобы узнать это так и задумано или баг, и если баг то отправить репорт. А пока что написал тут, вдруг кто уже знает ответ.

firkax
()

Про луддитов

 , , луддиты

Меня время от времени обзывают луддитом в связи с моим осуждением некоторых современных модных ИТ-штук.

Извиняюсь за внешнюю ссылку, но нашёл интересную статью про данную тему.

Ъ:

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

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

То есть тут прослеживается два аспекта: 1) социалистические идеи о том что трудящиеся должны жить хорошо и не должны эксплуатироваться капиталистами, 2) противодействие скатыванию своей профессии к производству хлама. Войны же с автоматизацией среди мотивов не было, это была только идеологическая карикатура на них.

firkax
()

@ вместо пингвинов выглядит невзрачно и плохо

 

В упоминаниях, если маркдаун выбрать.

firkax
()

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

 , компьютеры, ,

Навеяно этим опросом: Сколько максимум дисплеев, одновременно подключенных к одному компьютеру, вы регулярно используете?

Речь про личную технику, т.е. которая в собственности, а не выдана/отдана под присмотр работодателем.

  1. 1 238 (60%)

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

  2. 2 104 (26%)

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

  3. 3 31 (8%)

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

  4. Ни одного (напишу в комментарии, как так вышло) 11 (3%)

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

  5. 4 6 (2%)

    ********

  6. 5 или больше 4 (1%)

    *****

Всего голосов: 394

firkax
()

Подсветка синтаксиса для огромных файлов

 ,

Представим, что юзер открывает файл размером 10гб в редакторе кода и пролистывает хоткеем в конец. Допустим, редактор умеет корректно работать без предварительной подгрузки всего файла в память (под ответственность юзера что файл никто со стороны не испортит в неожиданное время, или пусть вообще он в read-only режиме - просмотрщик кода). Как редактор кода должен себя вести в плане подсветки синтаксиса?

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

Варианты:

1) залагать и парсить подсветку этих 10 гб, и только когда оно доделалось отлагать и нарисовать всё

2) нарисовать конец файла без подсветки, парсить её в фоне (где-нить выводить % готовности) и как закончим - нарисовать с подсветкой

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

4,5) варианты 2,3 но в фоне ничего не парсить и так и оставить (ведь юзер может оказаться недоволен нагрузкой на диск или на проц, из-за которых лагают другие проги)

6) каждый раз в таких случаях спрашивать у юзера хочет ли он фоновый или нефоновый парсинг (в виде попап окна) и надо ли делать предварительную неточную но быструю подсветку

firkax
()

qemu arm-виртуалка на x86

 , , ,

Если ли способ её просто запустить (с линуксом и снаружи и внутри, разумеется), без выяснений каких-то особенностей зоопарка arm-железок? Я когда-то пытался это сделать, оказалось что «просто arm» не существует, а есть куча мучений которые надо преодолевать.

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

А, наверно надо не только возможность запустить систему, но и возможность перед этим запустить её инсталлятор с iso-образа.

И есть ли разница в запуске 32 и 64 битных?

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

firkax
()

Ваше отношение к конструкциям вида if (a=f) в Си и C++

 ,

В очередной раз столкнулся с этой темой на форуме, решил провести опрос.

Тех, кто не пишет на этих языках, прошу выбирать соответствующий пункт и в остальной части опроса не участвовать.

Существует, в целом, три варианта отношения к конструкциям вида if (a=f). Первый — конструкция полностью нормальная, нет причин на неё гнать. Второй — опасения спутать = и == и на этом основании объявление данной конструкции вредной. Третий (почему-то про него вспоминают реже чем про первые два) — заявления о том, что не-булевы выражения (речь тут не конкретно про присваивание) в качестве условия if вообще так или иначе не совсем нормальная ситуация.

Часто сторонники второго варианта начинают потом писать про опечатки «которые у всех бывают», но я считаю нужным данную ситуацию прояснить: следует чётко отличать спутывание = и == по причине забывания как в Си пишется сравнение (в этом случае проблемой будет только =/== и ни что другое, и происходит такое, в первую очередь, у сильно неопытных программистов), и опечатки по причине, условно, нажимания не тех кнопок на клавиатуре — такое действительно случается у всех, но в этом случае конкретно присваивание никакой особенной роли не играет, речь идёт вообще о разных «способах» написать в скобках после if что-то неправильное и не заметить это. При этом, поскольку if по смыслу означает проверку условия, логично ожидать в скобках что-то булевое, а все остальные варианты объявить симптомами опечаток, подлежащими как минимум пристальному рассмотрению.

Те, кто так или иначе считает такую конструкцию проблемной (и включают соответствующий варнинг компилятора), дальше делятся ещё на два варианта: одни призывают вообще её избегать в любом виде, вторые же допускают её применение, но с явной подсказкой компилятору/программисту в виде дополнительных круглых скобок вокруг: if((a=f)).

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

  1. практически не использую Си и C++ или не понял в чём суть проблемы 105 (28%)

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

  2. конструкцию осуждаю и включаю предупреждение: снижает читаемость кода, при коллективной разработке провоцирует баги 92 (25%)

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

  3. нормальная конструкция, сам пользуюсь (без вторых скобок) 34 (9%)

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

  4. в целом не осуждаю (у других), но в мой стиль не вписывается (неэстетично, неудобно читать итд) 33 (9%)

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

  5. другой вариант (напишу в комментариях) 31 (8%)

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

  6. конструкцию осуждаю и включаю предупреждение: у всех бывают опечатки, и дело не в =/== а вообще в автоконверсии int->bool 23 (6%)

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

  7. пользуюсь с двойными скобками, но не из-за опечаток, а ради упрощения чтения кода, зрительного выделения "тут не сравнение а меняется переменная" 21 (6%)

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

  8. боюсь перепутать присваивание со сравнением, конструкцию осуждаю, включаю на неё предупреждение 17 (5%)

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

  9. пользуюсь с двойными скобками, на одинарные включаю варнинг: у всех бывают опечатки, и дело не в =/== а вообще в автоконверсии int->bool 15 (4%)

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

Всего голосов: 371

firkax
()

В каком расположении тела предпочитаете кодить?

 ,

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

1) сидя за нормальным столом

2) сидя, но нормальный стол не участвует

3) стоя за столом

4) стоя без стола

5) лёжа на спине

6) лёжа на животе

Для опросов в левую колонку думаю не тянет, поэтому в толксы.

firkax
()

Улучшение кнопки «показать ответы на сообщение»

 

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

firkax
()

Вывод бредогенераторов хотят обязать маркировать

 

источник

«Правительство обещает включить в законопроект описание требований по маркировке ИИ-контента, поставив точку в спорах о том, нужно ли маркировать нейрогенерацию или же, наоборот, что создано без участия ИИ. Как вы знаете, я придерживаюсь „органического подхода“, ведь нейрослоп плодится в интернете не просто быстро, а лавинообразно», - подчеркнул Горелкин.

firkax
()

smartctl для бинарного дампа смарта

 

Можно ли подсунуть smartctl-у бинарный дамп смарта (блоб 512 байт), снятый ранее отдельно (+ указать модель диска), чтобы он его распарсил и показал в удобном текстовом виде?

firkax
()

Автоматический мерж пересекающихся коммитов

 ,

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

Пример, исходное состояние:

echo greet
./prog1
./prog2
./prog3

первая ветка от него с таким коммитом:

echo greet
echo test
./prog1
./test
./prog2
./prog3

вторая - с таким

echo greet
echo test
./prog1
./prog2
./test
./prog3

Мержим эти две ветки, что должно в итоге получиться?

Вариант [1] - конфликт

Вариант [2]

echo greet
echo test
./prog1
./test
./prog2
./test
./prog3

Вариант [3]

echo greet
echo test
echo test
./prog1
./test
./prog2
./test
./prog3

Или ещё что-то?

firkax
()

Ссылки из трекера в конец темы

 

В трекере перечисляются недавние (последние) сообщения во всех темах, но ссылки почему-то ведут не на эти самые указанные сообщения, а на начала тем. По-моему это нелогично.

firkax
()