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)
Ответ на: комментарий от saahriktu

Но и обратного ты не утверждал, в отличии от темы образования.

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

зато как трофей на стену можно повесить

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

а внешние чем тебе не нравятся

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

Ты забыл вопросительный знак, не так ли?

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

Вот то-то и оно: если бы пациент назвал бы, скажем, аппендикс, то было бы ясно, что его слова — пустая похвальба; на почку, к примеру, мог бы рискнуть в случае существенной, но не полной уверенности; а, скажем, готовность поставить сердце… было бы ого-го!

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

Для информации. Эмулятор мк61 не так прост и он есть. Он сделан скальпированием схемы.

Вообще говоря, их до Бениной мамы. Вот что ищется за 5 минут:

http://www.emulator3000.org/c3.htm

https://play.google.com/store/apps/details?id=com.cax.pmk.ext

https://web.archive.org/web/20150709020059id_/http://mk-61.moy.su:80/emulator...

Осталось только портировать на нестандартный стандарт C, запретить исполнение в региональных настройках *.UTF-8 и протестировать в ядрёной консоли на Raspberry Pi.

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

а не как хочет занудная училка

Школота детектед.

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

потому что щас самые дешёвые калькуляторы считают как «x - y» а не «x y -» как у автора.

Не хочется тебя огорчать, но как раз самые дешёвые и 30 лет назад считали как «x - y». МК-61 к дешёвым никогда не относился.

у нас в универе дрочат на паскаль. язык говно не нравиться жутко но по нему 12 простеньких задачек только здать и всё

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

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

чем так знаменит этот древний калькулятор? не лучше ли автору заняться выпиливанием UTF-8 и любой графики из всего софта и выпустить свой дистрибутив для столь многочисленной аудитории юзеров выполняющих такие же уникальные задачи как сам автор и дрочащих на хакеров семидесятых годов?

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

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

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

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

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

Страшно подумать, что с тобой будет от вида программы на Форте, например.

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

Прямо-таки абсолютно? А Double Commander, Total Commander, TOAD - галлюцинации? Не говоря уж о том, что говённость и применяемость — немножко разные вещи. Visual Basic относительно недавно был чуть ли не самым популярным языком, это говорит о его крутости?

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

ну я не знаю что за форт и кто на нём пишет если там

(x + y) * z

надо писать как

x y + z *

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

Double Commander, Total Commander - какие то убогие файл менеджеры, не вижу смысла их использовать, есть намного лучше.

TOAD - редактор SQL как я понял, таких редакторов до фига. не буду спорить не пробовал может какие то фичи есть крутые в нём.

ну и этого не достаточно что бы полюбить паскаль с его громоздким запутанным неудобным синтаксисом. ну написан какой то менеджер файлов убогий на нём и что мне как программисту с того. можно было бы пересилить рвотный инстинкт и приложить усилия к его серьёзному изучению (в смысле не на уровне helloworld'ов из лабораторных в универе) если бы в нём например было много подключаемых модулей для всего на свете типа как batteries included как в python. а так глянул быстренько на это убожество для общего знакомства и не вижу смысла в его дальнейшем изучении.

visual basic тоже отстой. пользуется популярность он на богомерзком виндовзе который сам по себе говно и я им не пользуюсь тем более писать под него ничего не собираюсь. linux вполне устраивает, тут больше возможностей и нет проприетарщины всякой.

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

В вузах пасцал действительно не нужен.

Изначально позиционировавшийся как легкий для изучения, в 2018 он уступает по этому параметру тому же питону и js. Перспектив его изучать никаких — очевидно, что язык фактически умер.

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

Паскаль не так уж и сложен для изучения, и при этом учит именно хорошему стилю программирования. А у Питона странный синтаксис включая выделение блоков через табуляцию. Компиляторы Паскаля вполне развиваются, включая Free Pascal. Дело за программистами.

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

Изначально позиционировавшийся как легкий для изучения, в 2018 он уступает по этому параметру тому же питону и js.

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

В вузах пасцал действительно не нужен.

Смотря, что за вуз. Если в этом вузе готовят менеджеров по продажам — то да, им хватит и питона.

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

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

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

А у Питона странный синтаксис включая выделение блоков через табуляцию.

странный

Какой ты вежливый. Меня от этого выделения через табуляцию просто блевать тянет. Был уже Фортран с синтаксисом, завязанным на отступы (там, правда, отступы для другого использовались). Нет, история людей ничему не учит.

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

Почему тогда wchar_t в glibc'е отличается от wchar_t в винде? Это баг в винде?

Потому что в Стандарте определены границы этого типа: WCHAR_MIN и WCHAR_MAX. И определены они вот так:

If wchar_t (see  7.19)  is  defined  as  a  signed  integer  type,  the  value  of WCHAR_MIN
shall  be  no  greater  than  −127  and  the  value  of WCHAR_MAX shall  be  no  less  than  127;
otherwise, wchar_t is   defined   as   an   unsigned   integer   type,   and   the   value   of
WCHAR_MIN shall be 0 and the value of WCHAR_MAX shall be no less than 255.


Код был написан более десяти лет назад в соответствии с примерами из ещё более дальнего прошлого

Сигнатура функции соответствует стандарту C89, который появился гораздо более десяти лет назад. Про то, что K&R давали пример с пометкой «говнокод», выше уже не раз писали

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

пример с пометкой «говнокод»

Нет, они уточняли как сравнивать с EOF'ом если у char'а тип unsigned. Если у char'а тип signed и используется только ASCII, то разницы никакой нет.

Сигнатура функции соответствует стандарту C89, который появился гораздо более десяти лет назад.

Вы так говорите, как будто бы я специально разыскивал примеры именно того самого года. К тому же я в те годы активно читал учебник Подбельского и Фомина. Во время этого диалога у меня возникло подозрение и я нашёл этот учебник: http://publ.lib.ru/ARCHIVES/P/PODBEL%27SKIY_Vadim_Valerievich/Podbel'skiy_V.V... .

Да, там в примерах getchar() читает именно в переменные типа char: https://thumb.cloud.mail.ru/weblink/thumb/xw1/HrVk/2bDtJP7ec/screenshot153431... .

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

выделение блоков через табуляцию

Напротив, это учит идиотов нормально форматировать код.

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

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

Он работает правильно. Другой вопрос, что, да, надо будет заменить тип char на int, чтобы он работал и на ARM'ах. А на x86_64 он работает и так.

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

В каком месте он работает правильно? Ты назвал его калькулятором обратной польской записи, но он не реализует ее, так как ты не знаешь что такое обратная польская запись и напрограммировал ее неправильно. Напоминаю, что программа in question напоминает упражнение к главе из учебника.

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

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

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

я вот даже не сомневался что ты это напишешь потому что ты адепт всего старья

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

Я уже много раз всё пояснил. Я его так назвал только потому, что так называют МК 61, а здесь используется аналогичный принцип. Авторы МК 61 тоже не обещали, что он будет обрабатывать целые выражения наподобие «1 2 + 4 * 3 +» (только через отдельные клавиши), и я этого тоже не обещал. В обоих случаях здесь подразумевается то, что сначала заносятся числа в регистры, а уже потом выполняется арифметическое действие между ними.

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

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

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

дефолтная гамма - зелёный текст на чёрном фоне;

кто бы сомневался. как в старом добром 1970

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

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

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

Ты можешь сколько угодно много раз пояснять почему тебе кажется, что ты все правильно сделал. Нет, ты не написал эмулятор МК61, нет, он работает не так, нет, это не обратная польская запись, нет, так писать на С плохо и отцы-основатели тоже так не писали и даже в книге своей написали что так плохо на странице 16. Нет, ты не хакер ни в каком смысле, ни в Столлмановском, ни в смысле к.ф. «Хакеры». Потому что столлмановский хакер, который движим интересом, пойдет почитать что такое RPN и как работал МК-61, скачает К-Р и поправит свои поделки чтобы окружающие над ним больше не смеялись. Конечно, не всем нужно быть хакерами.

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

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

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

Ещё раз: я и не обещал эмулятор МК 61. Я просто написал калькулятор для командной строки и написал в описании «RPN калькулятор» из за схожего с МК 61 принципа.

Нет, они поясняли как сравнивать с EOF. Про учебник Подбельского и Фомина, который я читал в те годы, и где именно такие примеры, я уже написал выше.

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

написал в описание «RPN калькулятор» из за схожего с МК 61 принципа.

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

учебник Подбельского и Фомина

Ну да, а теперь рассуждаешь о красоте кода. Ой, всё.

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

и написал в описание «RPN калькулятор» из за схожего с МК 61 принципа

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

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

Здесь важен только один момент: порядок в котором указываются второе число и арифметическое действие. А полноценный парсер выражений, повторяю, не обещали даже авторы МК 61.

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

Нет, это вы рассуждаете.

Да, это мы рассуждаем. Имеем право.

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

Здесь важен только один момент: для тебя внешнее важнее всего. Зеленые буковки и странный порядок кнопочек. Зачем была создана такая нотация? Почему она была положена в основу программируемого калькулятора? Имеет ли отношение учебник преподов из МИСИС к языку С? Не всем нужно отвечать на эти вопросы!

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

странный порядок кнопочек

Каких ещё «кнопочек»? Калькулятора МК 61? С чего он, вдруг, странный?

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

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

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

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