LINUX.ORG.RU
ФорумTalks

Вы тут сидите и ничего не знаете, а там Торвальдс федоровцам пальцы показывает.

 ,


0

4

Федоровцы не смогли в нормальный парсер Kconfig и решили заменить табы пробелами, Линус патч завернул и отправил их чинить парсер.

https://www.opennet.ru/opennews/art.shtml?num=61021

★★★★★
Ответ на: комментарий от wandrien

В 70-е и 80-е клавиатуры делали под конкретные задачи с учётом конкретной машины и софта, который там будут запускать.

Сейчас такие тоже есть для всяких околопромышленных целей. В России в продаже встречаются редко,обычно только под большой заказ.

https://nnz-ipc.ru/catalogue/monitors_peripherals/keyboards/?pa=1

Сейчас столько возможностей по конструированию железа, хоть в подвале у себя печатай корпуса на 3D принтере и ставь копеечные контроллёры из Китая. Но никакого движения творческой мысли нет.

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

watchcat382
()
Ответ на: комментарий от papin-aziat

Вот, что-то уже похожее на истину всплывает.

Смысл в том, что при форматировании текста в наше время tab как клавиша означает переход по фиксированным позициям в рамках логики документа.

При правке исходников на ЯВУ это увеличение глубины вложенности.

При правке списков аналогично.

При правке таблиц – переход к следующей ячейке.

И даже в диалоговых окнах её придумали использовать как переход к следующему контроллу.

А вот tab как ASCII символ имеет смысл только при правке сорцов. В остальных случаях он не востребован.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от targitaj

В конфигах всё-таки табам не место…

Согласен. Но например make в каких-то случаях хочет именно табы, а не пробелы :(

watchcat382
()
Ответ на: комментарий от knock

Не знаю что там с перфокартами, а в linux kernel coding style табы 8 потому что у дидов проблемы со зрением и 4 пробела они видимо не отличают от 0.

spbzip
()
Ответ на: комментарий от DumLemming

все жесткие форматы должны иметь жесткие длины табуляции - жабаскрипт 2, си 4, итд

Во. Сперва галя придумывает форматирование пробелами, потом негодует по поводу того, что не все гали ставят одинаковое число пробелов. Отказаться от форматирования пробелами? ДА ВЫ ЧТО!

Индустрия гордых технарей, епт.

thesis ★★★★★
()
Ответ на: комментарий от papin-aziat

Chicony KB-5311

Хороша, но места много занимает.

У меня свой отдельный дом в котором живу я один - так что с местом проблем нет. Под мои электронно-компьютерные хобби выделена специальная комната.

А клавиатур этих я штук пять тогда, в 95,прикарманил с работы. Их списали потому что DIN,а на свежекупленных компах были только разъема PS/2.

Одну лет десять назад таки утоптал,топчу вторую. Остальные лежат. Думаю мне их на всю жизнь хватит.

watchcat382
()
Ответ на: комментарий от wandrien

Смысл в том, что при форматировании текста в наше время tab как клавиша означает переход по фиксированным позициям в рамках логики документа.

С этим могу согласиться.

И даже в диалоговых окнах её придумали использовать как переход к следующему контроллу.

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

А вот tab как ASCII символ имеет смысл только при правке сорцов.

И там он не нужен,можно по нажатию клавиши таб вставлять желаемое количество пробелов. Что кстати большинство редакторов по умолчанию и делают.

watchcat382
()

О том как зажечь костёр с помощью двух гранитных камней.

Пусть в строке имеется три таба.
Какую длину строки возвратит strlen()?
Первые 32 символа в ASCII управляющие и многие из них были использованы в эпоху перфораторов и тому подобное.
То бишь легаси от которого никак не могут избавиться.

Нужны ли управляющие символы ныне?

Нужны.
Так как разработчики леняться и «ждут».

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 1)
Ответ на: комментарий от watchcat382

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

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

wandrien ★★
()
Ответ на: комментарий от watchcat382

даже не в том порядке в каком они на экране,а в том,в которым их в исходнике описывали

Это должно устраняться на этапе проектирования и отладки окна. Просто у нас в индустрии как всегда.

wandrien ★★
()
Ответ на: комментарий от Forum0888
Пусть в строке имеется три таба.
Какую длину строки возвратит strlen()?

А более бессмысленного вопроса у тебя нет?

wandrien ★★
()
Ответ на: комментарий от watchcat382

моя клава из 1995 года Chicony KB-5311 вообще имеет разъем DIN.

Chicony, не конкретно вами озвученная модель, а как производитель клав, это вестч была! Тоже много лет пользовал.

anc ★★★★★
()
Ответ на: комментарий от spbzip

в linux kernel coding style

Я думаю правильнее будет сказать Linus Torvalds coding style :)

табы 8 потому что у дидов проблемы со зрением

Нет, я думаю это о того,что в начале 90х когда Линус писал первый вариант своего ядра - большинство текстовых редакторов имели настройку длины таба на 8 символов. Причем бывало что и настройку неизменяемую. Интересно кстати,в каком редакторе он исходники писал? Не знаю как в Финляндии,а в России тогда у большинства на компах был DOS и я имел дело с несколькими редакторами под DOS - везде таб был по 8.

watchcat382
()
Ответ на: комментарий от wandrien

даже не в том порядке в каком они на экране,а в том,в которым их в исходнике описывали

Это должно устраняться на этапе проектирования и отладки окна. Просто у нас в индустрии как всегда.

По-моему разумнее было бы это проблему не создавать вообще,сделав переход в произвольном направлении курсорными стрелками. И я когда-то очень давно интересовался возможно ли это сделать например в GTK. Оказалось - технически возможно. Надо просто этим удобством озаботиться и написать соответствующий обработчик клавиатурных событий. Но таки да - у нас в индустрии как всегда. А потом попадаются программы,в которых для активации текстового поля ввода надо сначала снять руку с клавиатуры,схватиться за мышь,прицелиться и ткнуть в это поле. И только после этого в него можно будет вбивать текст. И так бывает до десятка полей на одном экране где какие-нибудь реквизиты чего-нибудь вводятся с бумажных документов. Под виндами такого маразма вообще много.

watchcat382
()
Ответ на: комментарий от wandrien

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

Опять же если не лениться то можно прописать неизменяемые хоткеи. Но это же писать надо,а программистам лень, и так сойдет.

watchcat382
()
Ответ на: комментарий от papin-aziat

Фига ты там помещик.

Ну вобщем да - владею землей и домом(он на аватарке:). Я еще и рантье - живу на пассивный доход (небольшой).

watchcat382
()
Ответ на: комментарий от watchcat382

Это всё от того, что весь GUI линукса вторичен. В частности, почти весь look & feel контроллов цельнотянут с винды. За редкими исключениями, которые остались от других GUI юникса – вроде буфера PRIMARY SELECTION и работы с ним через СКМ или того, что меню открываются по нажатию ПКМ, а не по отпусканию ПКМ.

«Отрываемые» меню вроде тоже откуда-то из NeXTSTEP стянуты.

Из собственных разработок GTK я могу вспомнить только возможность переназначать хоткеи на лету. (И то не уверен, что это не откуда-то скопировано.)

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

А так вообще на уровне концепта и GUI винды, и GTK задумывались такими, чтобы управление с клавиатуры было если не максимально удобно, то как минимум возможно. Но на практике нужно ведь каждое приложение доводить до ума отдельно, а всем прикладникам пенделя не дашь.

wandrien ★★
()
Ответ на: комментарий от Forum0888
Основная статья: Управляющие символы

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

(После названия каждого символа указан его 16-ричный код)

NUL, 00 — Null, пустой. Всегда игнорировался. На перфолентах 1 представлялась дырочкой, 0 — отсутствием дырочки. Поэтому пустые части перфоленты до начала и после конца сообщения состояли из таких символов. Сейчас используется во многих языках программирования как конец строки. (Строка понимается как последовательность символов.) В некоторых операционных системах NUL — последний символ любого текстового файла.

SOH, 01 — Start Of Heading, начало заголовка.

STX, 02 — Start of Text, начало текста. Текстом называлась часть сообщения, предназначенная для печати. Адрес, контрольная сумма и т. д. входили или в заголовок, или в часть сообщения после текста.

ETX, 03 — End of Text, конец текста. Здесь телетайп прекращал печатать. Использование символа Ctrl-C, имеющего код 03, для прекращения работы чего-то (обычно программы), восходит ещё к тем временам.

EOT, 04 — End of Transmission, конец передачи. В системе UNIX Ctrl-D, имеющий тот же код, означает конец файла при вводе с клавиатуры.

ENQ, 05 — Enquire. Прошу подтверждения.

ACK, 06 — Acknowledgement. Подтверждаю.

BEL, 07 — Bell, звонок, звуковой сигнал. Сейчас тоже используется. В языках программирования C и C++ обозначается \a.

BS, 08 — Backspace, возврат на один символ. Сейчас стирает предыдущий символ.

TAB, 09 — Tabulation. Обозначался также HT — Horizontal Tabulation, горизонтальная табуляция. Во многих языках программирования обозначается \t .

LF, 0A — Line Feed, перевод строки. Сейчас в конце каждой строчки текстового файла ставится либо этот символ, либо CR, либо и тот и другой (CR, затем LF), в зависимости от операционной системы. Во многих языках программирования обозначается \n и при выводе текста приводит к переводу строки.

VT, 0B — Vertical Tab, вертикальная табуляция.

FF, 0C — Form Feed, новая страница.

CR, 0D — Carriage Return, возврат каретки. Во многих языках программирования этот символ, обозначаемый \r, можно использовать для возврата в начало строчки без перевода строки. В некоторых операционных системах этот же символ, обозначаемый Ctrl-M, ставится в конце каждой строчки текстового файла перед LF.

SO, 0E — Shift Out, измени цвет ленты (использовался для двуцветных лент; цвет менялся обычно на красный). В дальнейшем обозначал начало использования национальной кодировки.

SI, 0F — Shift In, обратно к Shift Out.

DLE, 10 — Data Link Escape, следующие символы имеют специальный смысл.

DC1, 11 — Device Control 1, 1-й символ управления устройством — включить устройство чтения перфоленты.

DC2, 12 — Device Control 2, 2-й символ управления устройством — включить перфоратор.

DC3, 13 — Device Control 3, 3-й символ управления устройством — выключить устройство чтения перфоленты.

DC4, 14 — Device Control 4, 4-й символ управления устройством — выключить перфоратор.

NAK, 15 — Negative Acknowledgment, не подтверждаю. Обратно к Acknowledgment.

SYN, 16 — Synchronization. Этот символ передавался, когда для синхронизации было необходимо что-нибудь передать.

ETB, 17 — End of Text Block, конец текстового блока. Иногда текст по техническим причинам разбивался на блоки.

CAN, 18 — Cancel, отмена (того, что было передано ранее).

EM, 19 — End of Medium, кончилась перфолента и т. д.

SUB, 1A — Substitute, подставить. Следующий символ — другого цвета или из дополнительного набора символов. Сейчас Ctrl-Z используется как конец файла при вводе с клавиатуры в системах DOS и Windows. У этой функции нет никакой очевидной связи с символом SUB.

ESC, 1B — Escape. Следующие символы — что-то специальное.

FS, 1C — File Separator, разделитель файлов.

GS, 1D — Group Separator, разделитель групп.

RS, 1E — Record Separator, разделитель записей.

US, 1F — Unit Separator, разделитель юнитов. То есть поддерживалось 4 уровня структуризации данных: сообщение могло состоять из файлов, файлы из групп, группы из записей, записи из юнитов.

DEL, 7F — Delete, стереть последний символ. Символом DEL, состоящим в двоичном коде из всех единиц, можно было забить любой символ. Устройства и программы игнорировали DEL так же, как NUL. Код этого символа происходит из первых текстовых процессоров с памятью на перфоленте: в них удаление символа происходило забиванием его кода дырочками (обозначавшими логические единицы)

Sorry, EM, 19 — кончилась перфолента.

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 1)
Ответ на: комментарий от watchcat382

Опять же если не лениться то можно прописать неизменяемые хоткеи. Но это же писать надо,а программистам лень, и так сойдет.

Прописать не проблема, проблема в том, как их обозначить для пользователя.

Пока ты сидишь в США и делаешь вещи для США, всё выглядит логично. Но при локализации появляется нюанс.

Например, в openbox меню управления окном локализовано, но хоткей оставлен «родным», будто это английский. И выглядит оно как-то так:

Положение (L)
Восстановить (E)
Переместить (M)
Изменить размер (Z)
Свернуть в значок (N)
Распахнуть (X)
Закрыть (C)
wandrien ★★
()
Ответ на: комментарий от Forum0888

Нужны ли управляющие символы ныне?

А какие еще действительно нужны кроме символа перевода строки и нулевого символа который конец строки в Си?

разработчики леняться и «ждут».

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

watchcat382
()
Ответ на: комментарий от wandrien

Например, в openbox меню управления окном локализовано, но хоткей оставлен «родным», будто это английский. И выглядит оно как-то так

Нормально оно выглядит. Не включать же русскую раскладку каждый раз только чтобы окном поуправлять.

Пока ты сидишь в США и делаешь вещи для США, всё выглядит логично. Но при локализации появляется нюанс.

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

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

Так что программирование ничем принцпиально не отличается от других научных дисциплин.

watchcat382
()
Ответ на: комментарий от thesis

Где я сказал что нужно пробелами форматировать? Табами надо, просто должен быть гост - для .жс файла редактор 2 пробела показывает, для .ц - 4

DumLemming ★★★
()
Ответ на: комментарий от watchcat382

А чего их убеждать? Стандарт языка, и нечего выделываться. Редакторы только должны о всех стандартах знать

DumLemming ★★★
()
Ответ на: комментарий от watchcat382
Наш буржуй ни перед чем не останавливается по части пользования продуктами цивилизации и куда как превосходит в этом отношении скромное сосание пива и скверных сигар, которые позволяет себе европейский буржуа, но европейский буржуа имеет право на пиво и сигару, а наш буржуй этого-то права и не имеет. Ни малейшей личной мысли, ни малейшего личного участия в приобретении права пользоваться дарами цивилизации наш буржуй не истратил даже и на две копейки серебром; никогда личная «выдумка», личная работа мысли, имевшие целью хотя бы только личное благосостояние, не были свойственны ему в размерах, даже более ничтожных сравнительно с размерами умственной работы немецкого колбасника; никакого исторического прошлого, которое есть у колбасника, и никакого будущего, о котором колбасник позволяет себе фантазировать, никогда не было у нашего буржуа и, вероятно, не будет.
Он появился вдруг, неожиданно, как неожиданно, точно с неба свалился, появился неведомо откуда широчайший кредит; банки промышленные, земельные, городские, общественные, концессии и т. д. , ― все это в огромнейших размерах ввалилось в общество и, как магнит притягивает одинаково и ключ, и иголку, и ножик, и перо, притянуло к себе и купца, и чиновника, и помещика, и инженера, и офицера и создало совершенно новое сословие, стоящее вне всяких определенных трудом или общественным положением установившихся сословий, ― сословие людей с кучей денег в руках, с кучей денег не заработанных, не «нажитых», не имевших, в огромном количестве случаев, даже плана истратить эти деньги.[2]

 	— Глеб Успенский, «Буржуй», 1889
Forum0888
()
Ответ на: комментарий от wandrien

А так вообще на уровне концепта и GUI винды, и GTK задумывались такими, чтобы управление с клавиатуры было если не максимально удобно, то как минимум возможно.

Нет бы слизать клавиатурное управление с программ под DOS. Вот в Midnight Commander слизали и управлять им с клавиатуры удобно. А в виндах и GTK - именно что «как минимум возможно»,кое-как.

Но на практике нужно ведь каждое приложение доводить до ума отдельно, а всем прикладникам пенделя не дашь.

Почему под досом они как-то без пенделей успешно справлялись и удобное клавиатурное управление делали? Кто пользовался например DOS Navigator - могут сравнить.

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

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

watchcat382
()
Ответ на: комментарий от grem

Тунеядец!

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

watchcat382
()
Ответ на: комментарий от DumLemming

Стандарт языка, и нечего выделываться. Редакторы только должны о всех стандартах знать

Это где в каком стандарте на Си прописана длина табуляции? И почему Линус Торвальдс считает что надо не 4,а 8 ?

watchcat382
()
Ответ на: комментарий от grem

даже самогоноварение в деревнях уже не в почёте

По лично моим наблюдениям, за последние полтора-два десятка лет пить стали очень заметно меньше. Кстати,официальной статистикой это подтверждается.

watchcat382
()
Ответ на: комментарий от watchcat382

Я подозреваю что всё это связанное с символами и клавиатурами легаси - настолько же непобедимо как дюймы с футами и фунтами.

Сражаться с ветряными мельницами не нужно.
Пусть себе стоят в сторонке.

Всё зависит от контекста задачи.
В некоторых случаях можно использовать простые строки (в стиле Unix).
Для создания книг, ... нужно использовать некие метаданные.
...

Многие управляющие символы из ASCII ныне почти не используются.

Forum0888
()
Ответ на: комментарий от watchcat382

Почему под досом они как-то без пенделей успешно справлялись и удобное клавиатурное управление делали?

Потому что мышка всё еще была экзотикой.

Нет бы слизать клавиатурное управление с программ под DOS.

Там же не было никакой цельной концепции управления. Каждая программа делала по своему усмотрению.

Вот в Midnight Commander слизали и управлять им с клавиатуры удобно.

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

Это правильная реализация самодокументируемого интерфейса.

В Midnight это сделать невозможно, потому что… терминал не подразумевает передачу нажатия модификаторов в программу. Парапарапам!

wandrien ★★
()
Ответ на: комментарий от watchcat382

По лично моим наблюдениям, за последние полтора-два десятка лет пить стали очень заметно меньше.

Скоро начнут больше.

wandrien ★★
()
Ответ на: комментарий от watchcat382

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

DumLemming ★★★
()
Ответ на: комментарий от Forum0888

сословие людей с кучей денег в руках

У меня нет кучи денег на руках(вложены в недвижимость). По уровню дохода я примерно как российский пенсионер.

watchcat382
()
Ответ на: комментарий от watchcat382

Завидую. А я по роду деятельности и вообще навсегда походу привязан к Москве, но — Слава Аллаху — живу прям около леса, там и гуляю, воздух у нас прекрасный!

papin-aziat ★★★★★
()
Ответ на: комментарий от watchcat382

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

Компьютер у Вас есть же?
В деревне запрещено заниматься разработкой?

Forum0888
()

Вы тут сидите и ничего не знаете, а там Торвальдс федоровцам пальцы показывает.

Он считает, что табы в конфигах нужны.

Табы или пробелы? (ну и вопрос к этому)

PS: «Моя бабушка курит трубку!».
«Ох и тяжёлая эта работа, из болота тащить бегемота».

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 4)
Ответ на: комментарий от wandrien

Там же не было никакой цельной концепции управления.

Можно подумать она сейчас в линуксе есть.

Каждая программа делала по своему усмотрению.

И у довольно многих программ свои усмотрения были очень удобные.

В Нортоне, когда ты зажимал модификатор, у тебя в нижней панели менялись названия действий, назначенные на функциональные клавиши. Это правильная реализация самодокументируемого интерфейса.

Да, и это тоже. Но я немного не об этом,а о диалоговых окнах - например диалог поиска файлов. Или диалог настроек. Там где и текстовые поля и чекбоксы и radio button(кнопки-переключатели).

В Midnight это сделать невозможно, потому что… терминал не подразумевает передачу нажатия модификаторов в программу.

Знаю что не позволяет. Но зато это можно сделать под Иксами. Программа xev модификаторы вполне показывает,так что использовать их можно. И существует иксовый аналог миднайта - называется Doube Commander. Но и там хорошего управления с клавиатуры нет.

Я еще приведу в пример малоизвестный текстовый редактор eFTE (есть в Дебиане) - собранный под иксы позволяет удобно работать с исходниками пользуясь клавиатурой. Я на Си под микроконтроллеры в нём пишу. После правки конфигов он неплохо имитирует досовский редактор MultiEdit 6.01p в котором я когда-то в долинуксовые времена работал.

Потому что мышка всё еще была экзотикой.

Я работал с компами с начала 90х. Мышки были там где они требовались для выполнения работы. Рисование чертежей/схем,вёрстка газет/книг и тому подобные работы с графикой. А вот такого идиотизма чтобы в каком-нибудь околобухгалтерском софте для ввода текста надо было сначала ткнуть в поле мышкой - небыло.

watchcat382
()
Ответ на: комментарий от Forum0888

Компьютер у Вас есть же?

Даже два:) Работают на солнечной энергии. Вот прямо сейчас пишут это с компа,от солнышка работающего:)

В деревне запрещено заниматься разработкой?

Что и для кого разрабатывать? Да и ездить на всякие согласования к заказчикам весьма затруднительно так как деревня с плохой транспортной доступностью в осенне-зимнее время.

watchcat382
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)