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

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

ага, значит графика всё таки нужна, ненависть обращена не на графику в целом на Xorg

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

А задачи у юзеров бывают самые разные.

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

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

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

ба да ты даже K&R не читал позорище какое

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

какая разница, что там было в МК-61, у обратной польской записи есть своё формальное определение

ты же не позиционировал эту программу как эмулятор МК-61

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

Новый гений утверждает, что у него профильное ВО, но при этом не всем нужен правильно считающий калькулятор

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

Это проблемы glibc'а, а исторически весь код был именно таким. Впрочем, использование int делает код более кроссплатформенным, да, поскольку на ARM'ах char по дефолту unsigned. И проверка на EOF не проходит. Поскольку в переменную вместо -1 приходит 255.

ну и вот кому нужен то твой примитивный софт который не совместим ни со стандартами ни с glibc и работает только в твоём однобайтном локалхосте

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

ну и вот кому нужен то твой примитивный софт который не совместим ни со стандартами ни с glibc и работает только в твоём однобайтном локалхосте

Тому же Antonio Diaz Diaz из проекта GNU, который, например, юзает ISO-8859-15 /s

saahriktu, а ты знаешь реальных людей, которые используют твой софт?

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

да может быть старый маразматик лет 95 совсем поехавший умом от старости. в MIT он конечно не учился но может быть хотел туда поступить но в итоге окончил ПТУ. я сначала думал школьник учит C по K&R решает упражнения оттуда в текстовой консоли но судя по развитию темы случай клинический.

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

Он пишет про года учебы. 97-05 или как-то так. Я тоже там был, но я очень низко оцениваю качество обучения (МГТУ им Баумана). На уровне топикстартера.

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

Я не доволен Бауманкой в том числе дрочем на старое говно вместо современной ситуации. Там дрочили на стаую сантехнику и старательно делали вид, что нового мира нет.

Shaman007 ★★★★★
()
Ответ на: я понял... от sqq

ты из тех, кто на асме писал музыку с визуализацией в размере 64кB в 80-х

Какие 64, столько не каждый ААА-проект тех лет требовал. Уже в 90е на прожорливых 16битках хорошим тоном было в 4к укладываться, а в 80е нормой было байт так 700. Но ты глянь его код, где он, а где демосцена.

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

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

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

ты же не позиционировал эту программу как эмулятор МК-61

Он лжет, его программка не эмулирует МК-61. А МК-61 умеет в опз.

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

по-моему, учитель информатики в школе или лаборант

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

Тем не менее, на момент написания программы я прекрасно знал МК 61, знал что его называют RPN калькулятором потому, что сначала в регистры заносятся значения, а уже потом выполняется действие между ними. А потому и в описании этой софтины у меня значится, что это RPN калькулятор.

А для полноценной эмуляции всех регистров МК 61 у меня есть отдельная libhalfmk61. Но, её я писал, вроде как, уже позже. И это другой отдельный проект, да.

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

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

у нас в универе дрочат на паскаль. язык говно не нравиться жутко но по нему 12 простеньких задачек только здать и всё. слава богам на мк 61 и дискеты не дрочат, не дай бох такого препода как автор. а вообще у преподов бывают заскоки на тему старья, наверное просто не хотят учиться новому как выучили 20 лет назад так и рассказывают из года в год.

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

помимо перечисленного еще очень специфичная реакция на критику, среди коллег немного таких попадалось, но среди преподов если вспомнить — они всегда пытались доказать даже что опечатки и то у них правильные

и комплект корочек в сочетании с большим расстоянием по годам похоже на ПТУ + курсы повышения квалификации

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

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

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

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

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

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

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

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

язык говно не нравиться

tsya.ru

здать

сдать

Это не русский, это «язык говно не нравиться жутко».

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

комплект корочек в сочетании с большим расстоянием по годам похоже на ПТУ + курсы повышения квалификации

Нет, это похоже на колледж, лицей и учебно-производственный комбинат ещё до завершения школы и институт после завершения школы.

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

Так я и не спорю, что есть полноценные эмуляторы.

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

всё и так понятно

Это тебе так кажется.

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

Компилятору будешь объяснять, чем printg отличается от printf. Как убедишь его в правильности своей трактовки, только тогда получишь право на «здать». А до тех пор ты быдлан необразованый.

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

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

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

Компилятору будешь объяснять, чем printg отличается от printf. Как убедишь его в правильности своей трактовки, только тогда получишь право на «здать».

#define printg printf
#define здать сдать

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

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

и? каким образом 2 цитата логически приводит к первой?

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

я из принципа пишу как хочу

Второй раз в жизни вижу принципиального идиота (первый был саахрикту).

и? каким образом 2 цитата логически приводит к первой?

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

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

У тебя последовательность действий немного нарушена. Сначала ты находишь Гудвина и просишь у него мозги, потом ты новыми мозгами учишь русский язык, и только тогда начинаешь задавать вопросы. На русском языке, само собой, а не на том, на котором ты пишешь.

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

слышь успокойся, я получил право на здать, ты сам говорил:

Компилятору будешь объяснять, чем printg отличается от printf. Как убедишь его в правильности своей трактовки, только тогда получишь право на «здать».

вот пожалуста:

#define printg printf
#define здать сдать

теперь отстань от меня и иди докопайся к кому нибудь ещё

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

Встречный вопрос — если текстовая консоль не удобнее для решаемых задач, то зачем за нее цепляться? А она не удобнее — то, как ты читаешь pdf (не буду повторяться про капчу) и весь остальной не-plaintext, не имеет ничего общего с удобством.

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

petrosyan ★★★★★
()

кстати, если автор считает, что его тут неоправданно критикуют, то пусть лучше отправит коллегам-хакерам из suckless.org на ревью:

hackers@suckless.org

там как раз любят минимализм...

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

А для полноценной эмуляции всех регистров МК 61 у меня есть отдельная libhalfmk61.

полноценной эмуляции

Уже не срастается, регистры у мк61 не double

проект, да.

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