LINUX.ORG.RU
ФорумTalks

Вышел True hackers' reader 0.23

 , , , ,


4

4

Состоялся релиз нового просмотрщика текстов (минималистичного аналога less'а) в однобайтных кодировках True hackers' reader 0.23.

Особенности реализации:

  • Читает содержимое файла в оперативную память и разблокирует текстовый файл, который больше программе не нужен. В отличие от less'а, который читает файл маленькими порциями, а потому требует чтобы файл продолжал присутствовать в системе. Это отличие позволяет True hackers' reader'у, например, читать кучу разных текстовых файлов с разных дискет в системе с одним дисководом. В то время как less заблокировал бы первую же дискету.
  • Несмотря на минималистичные исходники оперативную память расходует сильнее less'а, поскольку текст из файла хранится в буфере в оперативной памяти. Что, впрочем, значительно уменьшает время доступа к любой строке текста (тот же less при прокручивании N строк начинает обращаться к файлу, читать и прокручивать по одной строке с выводом промежуточных результатов, что очень медленно и в последних версиях при вводе цифры полученной при помощи '=' результат не всегда совпадает с ожиданием (что, собственно, и способствовало появлению True hackers' reader'а)).
  • True hackers' reader использует меньше чем less таких функций как, например, doupdate(). Как следствие, True hackers' reader на ARM'ах значительно шустрее чем less.
  • Локаль UTF-8 не поддерживается совсем. Если программа обнаружит локаль UTF-8, то её выполнение завершится ошибкой «Error: invalid locale (UTF-8) found».
  • В первых версиях присутствовали значительные ограничения на размеры текстовых файлов, которые были связаны с внутренними ограничениями библиотеки ncurses (внутренние размеры ncurses (а текст сразу выводился в окно ncurses, которое затем просто сколлилось) ограничены максимальным значением short int, что для x86_64 составляет 32767). Это приводило к тому, что программа могла отказаться читать текстовые файлы, размер которых превышал 2,5 Мб. О чтении текстовых файлов на десятки мегабайт не могло идти и речи. Начиная с версии 0.10 введён промежуточный буфер для текста (который, вопреки ожиданиям, не так уж и снизил скорость программы, но очень значительно сократил расход оперативной памяти) и программа начала открывать текстовые файлы на сотни мегабайт.
  • У программы есть 4 опции:
    -r - удалить файл после прочтения в оперативную память;
    -f - прокрутка по целой странице
            (по дефолту программа оставляет последнюю строку предыдущей страницы в самом начале новой);
    -t - заменить табы пробелами;
    -s - переформатировать текст по ширине экрана;
    
    Переключатель режима прокрутки доступен и во время работы программы по клавише 'f'. Опции должны указываться после пути к файлу, который всегда указывается первым аргументом. Если в первом аргументе программа обнаружит вместо пути к файлу одну из опций, то её выполнение завершится с ошибкой «Error: wrong options and path to file order».
  • Если программа обнаружит локаль KOI8-R, то в окне справки (вызывается по F1) появится надпись «Привет KOI8-R'щикам!». При другой однобайтной локали эта надпись будет отсутствовать.
  • В комплект входят два скрипта на bash'е: lzthreader, который разархивирует пожатый gzip/bzip2/lzma/xz/lzip текстовый файл во временный, а затем открывает его в True hackers' reader'е с опцией удаления файла, а также hexthreader, который при помощи утилиты Brutal squirrel ( http://saahriktu.org/downloads/brtlsqrrl-0.4.tar.xz ) преобразует файл в шестнадцатеричное представление, а затем открывает его в True hackers' reader'е с переформатированием по ширине экрана.

Скачать True hackers' reader и Brutal squirrel также можно по протоколу gopher при помощи команд

curl gopher://sdf.org/9/users/saahriktu/saahriktu.org/truehackersreader-0.23.tar.lzma > truehackersreader-0.23.tar.lzma
curl gopher://sdf.org/9/users/saahriktu/saahriktu.org/brtlsqrrl-0.4.tar.xz > brtlsqrrl-0.4.tar.xz

Скачать (3177 байт)

Перемещено Shaman007 из opensource

★★★★★

Последнее исправление: Shaman007 (всего исправлений: 2)

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

Ну-ну. Если что-то существует, то кому-то это нужно.

Это Ваши домыслы про «пафос» и «кто-то на что-то претендует». В конце концов даже Леди Гага является хакером хоть и не связанным с компьютерами. Так что, совершенно не важно кто где работает и какие задачи решает. Это сути не касается. Если вам сложно представить, что какой-то инструмент может быть практически полезным, то это, отнюдь, не проблемы тех, кто им пользуются. Это, скорее всего, исключительно проблемы вашей профессиональной деформации, когда именно в вашей нише такими инструментами пользоваться в целом не принято по ряду причин. В то время как и в этой нише в ряде случаев и из этого самого инструмента можно извлекать профиты.

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

Ты(!) назвал сам(!) свою поделку True(!!) hackers'(!!!) reader. Сам(!) запостил на довольно посещаемый ресурс. Домыслы?

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

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

В конце концов даже Леди Гага является хакером хоть и не связанным с компьютерами.

Да ты совсем поехавший, как я погляжу.

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

Я написал линуксовую программу и делюсь ей с линуксоидами. А Ваша реакция на слово «хакер» неадекватна. Я это слово использую лишь потому, что его использовали те, кто стояли у истоков UNIX'ов в смысле того

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

Именно поэтому, например, через несколько лет после того, как я стал линуксоидом, я начинал проект оболочки «True hackers' shell». Первоначальный вариант названия программы, между прочим, был «sell»

( echo "less" | tr 'sl' 'ls' )
, но потом я вспомнил про старый «True hackers' shell» и решил, что лучше переименовать.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от ptarh

Это слова Ричарда Столлмана. А уж он знает в каком смысле это слово употреблялось в сообществе свободного программного обеспечения Массачусетского технического института шестидесятых и семидесятых годов. А лично мне здесь важно именно это.

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

При коллективной разработке, да, git'ы и прочие svn'ы могут быть полезными

При любой разработке vcs это must have. И не только разработке, а просто при работе с изменяемыми электронными документами. Если ты считаешь иначе, скорее всего просто никогда не пользовался.

orm-i-auga ★★★★★
()
Ответ на: комментарий от saahriktu

Это слова Ричарда Столлмана.

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

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

Я это слово использую лишь потому, что его использовали те, кто стояли у истоков UNIX'ов в смысле того

Вот именно тут у меня претензия: кто люди, которые стояли у истоков UNIX известны. А ты кто такой, чтобы его так использовать? Ты ж на всеобщее обозрение представил код уровня ленивого студента.

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

Нет, тут суть в том, что что касается терминологии, то тут важнее именно то, какие в неё смыслы вкладывали именно те, кто её устанавливал (а именно из их среды и есть Ричард Столлман, так что, ему тут виднее). А не то, как её стали воспринимать массы с течением времени. Поэтому тех, кого массы называют «хакерами», лично я буду продолжать называть «крякерами». А «хакеры» - это те,

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

Как и написано на сайте проекта GNU: https://www.gnu.org/philosophy/words-to-avoid.ru.html#Hacker .

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

К хакерству в изначальном определении этого слова имеет всякий,

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

А к такому пониманию этого слова каждый линуксоид имеет прямое отношение, поскольку он юзает GNU/Linux, а у истоков GNU и UNIX'ов стояли те, кто начали использовать это слово именно в таком смысле. Это уже потом массы недопоняли что они хотели этим сказать.

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

Нет, тут суть в том, что что касается терминологии, то тут важнее именно то, какие в неё смыслы вкладывали именно те, кто её устанавливал (а именно из их среды и есть Ричард Столлман, так что, ему тут виднее). А не то, как её стали воспринимать массы с течением времени. Поэтому тех, кого массы называют «хакерами», лично я буду продолжать называть «крякерами»

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

Как и написано на сайте проекта GNU

Мало кого даже на этом сайте интересует как там бородатый пророк толкует то или иное слово. А за его пределами вообще никого. Deal with it.

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

код уровня ленивого студента

Даже если бы ленивый студент додумался бы до cp в make install (хотя, по хорошему, за это надо бить ногами), ему бы лень было нажимать y при каждом make install и он бы добавил -f.

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

Нет, я просто использую слово «хакер» в понимании Ричарда Столлмана, которое и указано на сайте проекта GNU.

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

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от ptarh

Deal with it

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

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

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

Ммм, нет, ты маргинал, поэтому это как раз твои проблемы. Пока ты никому не мешаешь, на тебя просто не будут обращать внимания или крутить пальцем у виска, когда начнешь буйствовать и мешать засунут в дурку. С маргиналами так ¯\_(ツ)_/¯

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

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

И тут в помощь линуксоидам как раз уже составлена документация на сайте проекта GNU.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

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

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

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

Не нужно от слова «совсем», если ты не историк или филолог. Язык это соглашение большинства участников о том, что под определенным словом, скажем «табуретка», мы понимаем доску с четырьмя или тремя палками приколоченными опредленным образом к доске. Большинство не интересует, каким у этого слово значение было 100 лет назад. Слово «вратарь» давно уже не употребляется в контексте «привратник».

И тут в помощь линуксоидам как раз уже составлена документация на сайте проекта GNU

То, что там накатано на сайте ГНУ интересует адептов антилопы, которые даже в движении опенсурса далеко не первые и не единственные. Я вот вращал все, что написано на этом сайте, на нефритовом стержне, как пример, ибо даже в те времена когда еще сидел на опенсурсе предпочитал фрю богомерзком линуксу.

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

с тормозами ещё можно мириться

Да откуда вы лезете такие?

1. С тормозами мириться нельзя. Никогда и ни при каких условиях.

2. less не тормозит.

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

А вот если бы Вы жили в текстовой консоли с однобайтной локалью и читали в ней документацию и книги...

На ЛОРе тоже из tty сидите? Или вендузятничек очередной?

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

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

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

И что, всё время следить за тем, как думает большинство, и в соответствии с этим править свои словари?

Да, так все нормальные люди автоматом и делают. На аутизм не проверялся?

Если собрать рандомных людей и заставить их написать словари, то они будут значительно отличаться.

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

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

СПРАВКА
Больной в результате успешной терапии больше не считает себя теннисным мячом, а считает себя программистом.
Дата, подпись, ФИО лечащего врача.

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

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

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

Вот ты сейчас выдал почти 100% того, что чувствует человек, который поверхностно разбирается в каком-то предмете. Замени «программирование» на «вождение автомобиля», получится неопытный водитель.

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

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

да не, вряд ли. можно было бы предположить что он учился в MIT в 60-70 и теперь вспоминает молодость если бы не одно но: не верю что выпускник MIT может написать такой говнокод.

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

Правда я так до сих пор и не понял что за X.25.

ШКОЛОТА

Shaman007 ★★★★★
()

Добрался до работы, посмотрел на код.

[bass@unit-725 truehackersreader-0.23]$ LANG=C ./threader threader.c 
Segmentation fault
[bass@unit-725 truehackersreader-0.23]$ LC_ALL=C ./threader threader.c 
Error: invalid locale (UTF-8) found

Нет, это уже даже не смешно.

Я уже не говорю о том, что локализованные (не-ASCII) сообщения вида

mvwaddstr(mw, 5, 1, "          Привет KOI8-R'щикам!");

стоило бы вынести во внешний message catalog (ну, там, catgets или gettext). А то захочет Антонио Диаз Диаз воспользоваться твоей программой или написать к ней испанскую локализацию — и нихрена не поймёт.

И, к слову о корректной локализации, «Error: file doesn't exists», — это не по-английски. Язык вероятного противника надо знать. А ты палишься, что ты русский шпион.

Помимо этого, не обрабатывается событие изменения размера окна (SIGWINCH). И не говори мне, что вне «иксов» проблема неактуальна — в консоли у тебя точно так же могут работать мультиплексоры терминала, как, напр., screen, tmux или emacs -nw, и размер окна программы может меняться (хотя бы в процессе detach/re-attach). В результате диалоговые окна всегда отображаются в координатах «дофигаX / 2, дофигаY / 2», даже если текущий размер окна у меня 20x20.

Окна, предполагающие ввод, не обрабатывают не только некорректный ввод, но и escape-последовательности, что приводит к появлению «мусора» на экране:

unsigned char  *txtbuf,
                srchbuf[65],
        *rslt;                                                +-----------------+
                                                              |Go to which line?|
// put message                                                |^[[A^[[B^[[A^[[B^[
int                                                           [A^[[B^[[A^[[B^[[A 
putpuwin(char *msgptr, char wtype, int ssl, int wtxt)
{
    WINDOW         *mw;

Ну и, с учётом вышесказанного, перерисовку всего окна по Ctrl+L не мешало бы сделать.

А вообще, я считаю, творение надо опакетить. Страна должна знать своих героев.

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

а вот можно про это поподробнее?

Корочка «программиста-лаборанта» (выдавалась за изучение QBasic'а), корочка «оператора ЭВМ с элементами программирования» (здесь уже изучался Turbo Pascal), диплом «инженера информационных систем» (здесь уже во все поля были C и C++; среди прочего преподаватели рекомендовали к изучению, например, Perl, но я, к сожалению, не придал тогда должного внимания этим словам, считая что уж Бейсика, Паскаля и C/C++ мне точно хватит). Ещё есть корочка «просто оператора ЭВМ», но там программирования как такового не было, хотя самые основы, включая блоксхемы, рассматривались тоже. В этом курсе основной упор был на всевозможные тонкости работы в командной строке MS-DOS'а (включая все ключи всех возможных команд, а также такие моменты как, например, загрузка драйвера CD-ROM'а в MS-DOS'е) и MS-DOS'овский софт (включая zip, arj, Лексикон,... и т.д.).

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

Нет, все, кто вкладываются в развитие сообщества ради «игривого остроумия», - хакеры. Очевидно же. Хакеры создали, хакеры и развивают.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от ptarh

используешь слово не по назначению

Это журналисты поспособствовали распространению слова в неправильном значении.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Bass

Это всё мелочи. Конечно, поработать над всем этим вполне можно, но в целом программа вполне работает и так.

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

Это журналисты поспособствовали распространению слова в неправильном значении.

Да всем плевать, хоть канарейки неправильно перепели. Используется, как используется и негодование бородачей никого не волнует.

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

выдавалась за изучение QBasic'а

Тысячу раз Дейкстра был прав.

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

И чего ты развил-то? Ты сам написал: «сообщества». Сообщество из одного человека называется шизофренией.

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

Я написал кучу линуксового софта и помогаю другим линуксоидам (из которых и соостоит сообщетво линуксоидов) оперативнее реагировать на новости самого сообщества. Все мои темы и посты на ЛОРе как раз про это.

saahriktu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.