RSS
# Полёты к звёздам
std.hugeping
hugeping(ping,1) — All
2024-02-03 10:31:02


Ютуб подсунул эту лекцию и я её целиком послушал. В детстве я (как и многие в то время) бредил космосом. Надеялся что застану первый межзвёздный полёт. С возрастом, конечно, начал понимать, что не всё так просто. И в техническом и в социальном плане. Поэтому было очень интересно услышать свои озвученные мысли. Например, критика warp drive:

https://www.youtube.com/watch?v=ExdWAm3H65M&t=3355s

> Варп-драйв это... Ну это просто чушь собачья...

Идея путешествий быстрее света -- "заноза" в моём сознании, которая не даёт покоя. Причём не технически-инженерно, а -- философски. Я понимаю, что это путешествие даже невозможно помыслить. Оно просто не вписывается в рассудок, нашу логику. При условии, конечно, истинности второго постулата СТО (постоянство скорости света). А это ведь экспериментально подтверждено! В беседе с друзьями я понимал что эта "заноза", видимо, какая-то моя личная. Но, оказывается, всё-таки не только моя:

> Это (warp drive) -- не решение... Это .. релятивистская инженерия...
> Эта штука нарушает принцип причинности... Это очень мощная вещь -- принцип причинности...

И отличное заключение на тему "зачем":

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

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

И всё-равно, верю, что мечту так просто не украсть. Думаю, прямо сейчас её ростки прорастают в чьей-то детской душе. А как по-другому? По-другому просто не может быть...
P.S. Edited: 2024-02-03 10:38:13

# Re: Есть ли жизнь без Telegram?
std.hugeping
hugeping(ping,1) — hugeping
2023-11-06 11:01:43


Для тех, кто это прочитает.
Адрес нашей группы "Флудилка луддитов" в jabber: instead@chat.404.city

# Re: Есть ли жизнь без Telegram?
std.hugeping
hugeping(ping,1) — btimofeev
2023-11-06 09:23:39


>>> REDACTED FOR PRIVACY

btimofeev> На моем домене в зоне org такое тоже появилось, а раньше там была личная инфа. Вот тут пишут что это из-за GDPR https://www.vice.com/en/article/vbpgga/whois-gdpr-europe-icann-registrar

Ничего себе! Куда катится мир. :)

# Re: Есть ли жизнь без Telegram?
std.hugeping
btimofeev(ping,6) — hugeping
2023-11-06 07:50:25


>> REDACTED FOR PRIVACY

На моем домене в зоне org такое тоже появилось, а раньше там была личная инфа. Вот тут пишут что это из-за GDPR https://www.vice.com/en/article/vbpgga/whois-gdpr-europe-icann-registrar

# Есть ли жизнь без Telegram?
std.hugeping
hugeping(ping,1) — All
2023-11-05 18:28:02


Когда Telegram только появился я был рад что есть альтернатива ужасному "ватсапу". Да и клиент с открытым исходным кодом -- это хорошо! Но потом стало понятно что это очередная игла, на которую теперь сели все без исключения. Поэтому я периодически старался найти и попробовать альтернативы, которые бы позволили хотя бы малым сообществам отказаться от дискорда, телеграм и подобных закрытых технологий.

За это время пробовал разное, в том числе и matrix, но в итоге не был удовлетворён. А на днях почти случайно вернулся к "традиционным" irc и jabber. И был приятно удивлён! О чём и решил написать эту заметку.

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

Сначала по наводке посмотрели на ircv3 ( https://ircv3.net/ ). Как я понял это инициатива по развитию irc. Стандарт содержит расширения, которые приближают пользовательский опыт к тому, к чему привыкли люди сегодня. Попробовал. Вообще -- понравилось! Но к сожалению клиентов которые поддерживают набор нужных стандартов очень мало и они часто сырые.

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

- Мобильное приложение: conversations (бесплатно в F-Droid, платно в google play);
// есть мнение, что бесплатный "c0nnect messenger PRO" в google play это тот же conversations, но я не проверял, я давно пользуюсь F-Droid;
- Linux/BSD приложение: dino (В Debian - назвается dino-im), на худой конец - gajim;
- Windows: gajim
- Веб приложения: https://github.com/movim/movim или https://conversejs.org
- Публичный сервер с нужными возможностями: 404.city

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

Понятно, что выбирая сервер 404.city мы меняем шило на мыло (я вообще не знаю, кто этот сервер поддерживает, с какими целями и т.д., и вообще - whois интересное выдаёт :))

> whois 404.city
> Registrant Street: REDACTED FOR PRIVACY
> Registrant City: REDACTED FOR PRIVACY
> Registrant State/Province: Capital Region
> Registrant Postal Code: REDACTED FOR PRIVACY
> Registrant Country: IS

И дальше подобное... А что, так можно было? :)

Но при реальном внедрении, например, на работе - стоит поднять свой сервер (тот же ejabberd или prosody), movim и... по идее наступает счастье. Осталось только самое сложное, убедить сослуживцев :)

Если вы тоже решите попробовать вернуться в jabber, то мой jid: hugeping@404.city
Адрес чата "Флудилка луддитов": instead@chat.404.city

P.S. На jabber.ru есть проблемы с регистрацией аккаунтов, да и сервер не поддерживает нужные расширения, к сожалению.
P.S. Edited: 2023-11-06 11:01:56

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-26 20:43:52


Да, ещё код сервера для реализации этого DSL - 3k строк. На функциональном языке :) Клиент, отвечающий за UI - на JS (точнее TypeScript).

https://github.com/leanprover-community/lean4game

Там ещё одна девочка недавно спрашивала: а нельзя ли поменять в игре менюшный интерфейс на парсерный :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-26 20:19:12


hugeping> Про диалог тоже слышал. А вот твой пример не понял прям совсем. :) Даже специально паузу взял, думал изучу на досуге. Загадочно и непонятно. Как ФП :)

Хм... Ведь я его и привёл специально с целью продемонстрировать, как код на DSL может быть похож на английский язык. Вроде, если его читать, как английский, то должно быть всё довольно понятно, даже не зная сам DSL. Ну, по крайней мере, я так думал, когда его выкладывал :)

Там сам код включает сам текст из игры, как маркдаун и несколько специальных выражений, которые тоже похожи на текст. Это имеет большое сходство с Inform 7, только синтаксис более специальный, как ты и хотел :) Конечно, в самом тексте говорится о некоторых элементарных математических понятиях, но это должно быть несущественно. Какая разница, говорится там об эльфах и гоблинах или о чем-то там ещё? Это ведь уже часть сюжета игры, а не самого программного кода :)

Ты ведь сказал, что уже думал о DSL для INSTEAD, но со своим специальным синтаксисом, а это ведь такой DSL и есть, только для другого языка. Но ты почти угадал - это действительно ФП :)

Сама игра в браузере тут, можешь попробовать поиграть и увидеть результат такого подхода на деле:
https://adam.math.hhu.de/#/g/hhu-adam/NNG4
Там и хостинг для других подобных игр, типа itch.io

# Re: Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — vvs
2023-10-26 19:23:23


Про диалог тоже слышал. А вот твой пример не понял прям совсем. :) Даже специально паузу взял, думал изучу на досуге. Загадочно и непонятно. Как ФП :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-24 18:51:04


hugeping> Skein не видел. Про сам Inform 7 знаю и смотрел на "код программ".. В итоге, правда, настроен довольно скептически. Может быть кому-то проще писать на таком как бы человеческом языке, но мне показалось что это принесёт больше проблем. Хотя сам неоднократно думал над DSL который бы компилировал в код INSTEAD игры, но там я думал о специализированном синтаксисе.

Кстати, совсем забыл - есть же ещё Dialog:
Dialog is a domain-specific language for creating interactive fiction. It is heavily inspired by Inform 7 (Graham Nelson et al. 2006) and Prolog (Alain Colmerauer et al. 1972), and substantially different from both.
https://linusakesson.net/dialog/

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-24 17:10:21


hugeping> Skein не видел. Про сам Inform 7 знаю и смотрел на "код программ".. В итоге, правда, настроен довольно скептически. Может быть кому-то проще писать на таком как бы человеческом языке, но мне показалось что это принесёт больше проблем. Хотя сам неоднократно думал над DSL который бы компилировал в код INSTEAD игры, но там я думал о специализированном синтаксисе.

А как тогда тебе этот код (фрагмент большой)?
import Game.Metadata
import Game.MyNat.Multiplication


World "Tutorial"
Level 1
Title "The rfl tactic"

Introduction
"
# Read this first

Each level in this game involves proving a mathematical theorem (the \"Goal\").
The goal will be a statement about *numbers*. Some numbers in this game have known values.
Those numbers have names like $37$. Other numbers will be secret. They're called things
like $x$ and $q$. We know $x$ is a number, we just don't know which one.

In this first level we're going to prove the theorem that $37x + q = 37x + q$.
You can see `x q : ℕ` in the *Objects* below, which means that `x` and `q`
are numbers.

We solve goals in Lean using *Tactics*, and the first tactic we're
going to learn is called `rfl`, which proves all theorems of the form $X = X$.

Prove that $37x+q=37x+q$ by casting the `rfl` tactic.
"

/-- If $x$ and $q$ are arbitrary natural numbers, then $37x+q=37x+q.$ -/
Statement (x q : ℕ) : 37 * x + q = 37 * x + q := by
  Hint "In order to use the tactic `rfl` you can enter it in the text box
  under the goal and hit \"Execute\"."
  rfl

TacticDoc rfl
"
## Summary

`rfl` proves goals of the form `X = X`.

In other words, the `rfl` tactic will close any goal of the
form `A = B` if `A` and `B` are *identical*.

`rfl` is short for \"reflexivity (of equality)\".

## Example:

If the goal looks like this:

```
x + 37 = x + 37
```

then `rfl` will close it. But if it looks like `0 + x = x` then `rfl` won't work, because even
though $0+x$ and $x$ are always equal as *numbers*, they are not equal as *terms*.
The only term which is identical to `0 + x` is `0 + x`.

## Details

`rfl` is short for \"reflexivity of equality\".

## Game Implementation

*Note that our `rfl` is weaker than the version used in core Lean and `mathlib`,
for pedagogical purposes; mathematicians do not distinguish between propositional
and definitional equality because they think about definitions in a different way
to type theorists (`zero_add` and `add_zero` are both \"facts\" as far
as mathematicians are concerned, and who cares what the definition of addition is).*
"

NewTactic rfl

Conclusion
"
Congratulations! You completed your first verified proof!

Remember that `rfl` is a *tactic*. If you ever want information about the `rfl` tactic,
you can click on `rfl` in the list of tactics on the right.

Now click on \"Next\" to learn about the `rw` tactic.
"

Это уже DSL для реального языка программирования. Эту игру уже реально используют в некоторых университетах для введения в формальную математику :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — vvs
2023-10-24 16:13:46


hugeping>> Правда, всё время что-то дописываю, а это немного отвлекает собственно от самой работы. :)

vvs> А ты видел Skein в Inform 7? Вообще, у этих систем много общего:

Skein не видел. Про сам Inform 7 знаю и смотрел на "код программ".. В итоге, правда, настроен довольно скептически. Может быть кому-то проще писать на таком как бы человеческом языке, но мне показалось что это принесёт больше проблем. Хотя сам неоднократно думал над DSL который бы компилировал в код INSTEAD игры, но там я думал о специализированном синтаксисе.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-24 13:29:54


hugeping> Правда, всё время что-то дописываю, а это немного отвлекает собственно от самой работы. :)

Я ещё много лет назад хотел себе интерактивную визуальную систему для работы. Нашёл тогда только Smalltalk и Oberon. Потом, правда, ещё познакомился с Plan 9 и Inferno. Так там _всегда_ надо что-то дописывать, в этом и суть интерактивного программирования :) Сейчас, кстати, читаю "Squeak by example 6.0": интерактивная среда там никем не превзойдена до сих пор! А ты видел Skein в Inform 7? Вообще, у этих систем много общего: интерактивная динамическая среда, текст программы похож на обычный английский язык, мощные средства отладки, исследовательское программирование.

hugeping> Да, уже вижу что написан он грязновато, но это вечная проблема.

Фрэнку Герберту, автору "Дюны", понадобилось ещё целых семь лет после написания первого романа серии, пока он смог уволиться и заняться, наконец, только литературной деятельностью. Кстати, и писал он первую книгу шесть лет. А настоящая исследовательская работа имеет много общего с написанием романа :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — vvs
2023-10-23 22:35:41


vvs> Я могу тебя понять :)

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

А дописал всё-таки к red механизм подсветки синтаксиса (сейчас есть поддержка: Си, Lua, markdown и diff) и вовсю использую его на работе. Правда, всё время что-то дописываю, а это немного отвлекает собственно от самой работы. :) Да, уже вижу что написан он грязновато, но это вечная проблема.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-23 20:04:40


hugeping> У кого-то может возникнуть вопрос. А почему я не использую vscode? Потому что моя профессия приносит мне удовольствие и я разборчив в своих предпочтениях. Что касается vscode:

hugeping> - это приложение на основе браузера;
hugeping> - vscode пришёл из недр корпорации.

Я могу тебя понять :)

Сегодня обновил расширение и обнаружил, что оно попало в кэш хромиума, в кэш расширений да ещё и сам установленный экземпляр. И у меня автоматические обновления отключены. Ещё и вся память воркспейсов, включая те, которых уже давно нет, хранится там вечно. И нет никакого интерфейса для чистки мусора, кроме резервных копий самих редактируемых файлов. Баг репорты ою этом лежат по всему интернету минимум последние шесть лет и никто даже не чешется :( На emacs и vim это совсем не похоже.

Кстати, VS Code - это единственный из уже упоминавшихся редакторов, который сохраняет изменения непосредственно в сам редактируемый файл (дата создания файла не меняется). Остальные же меняют только его копию. Зато ему не нужны и дополнительные права на создание, удаление и переименование файлов на сервере :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-10-02 19:59:18


AL> Но зачем мне из вима делать интерфейс к ОС

Может я неправильно понял вопрос? Если имеется в виду, что Emacs - это интерфейс, а Vim - нет, то это вовсе не так. Vim и Emacs отличаются очень поверхностно, т.е. это дело привычки. Я пользуюсь обоими и разница для меня только в языке реализации: elisp в Emacs и vimscript в vim. Модальный режим не в счёт. Neovim ещё добавляет нормальную поддержку Lua.

Посмотрим и с обратной стороны: если пользователь всё своё время и так проводит в редакторе, то зачем ему вообще отдельный интерфейс к ОС? И какая ему разница на каком языке он написан? Для него интерфейс к ОС - это и есть его редактор.

Ну вот многие ли в DOS пользовались командной строкой? Большинство перешли на Norton Commander и были довольны. Тем более, кто сейчас пользуется терминалом в Windows? Потому что их устраивает данный разработчиками GUI и о большем они не мечтают. Это инерция мышления и привычка. Я ещё раньше называл это данью моде, но это уже вызвало споры. Тогда использование редактора в качестве интерфейса тоже определяется привычками и целесообразностью перемен. Зачем что-то менять если всё и так устраивает?

GUI тоже ведь зародился не на пустом месте, а сначала продвигался, как интерфейс к системам типа Xerox Alto, а потом Smalltalk или Oberon. Потом к нему просто привыкли и первоначальные мотивы уже утратили значение. Эти системы, в свою очередь, тоже продвигались просто, как более интуитивный интерфейс для неспециалистов. Тогда даже появился модный термин "рабочая станция", а в качестве ОС там обычно фигурировал какой-то язык программирования. Сейчас эталоном GUI можно считать смартфон, где это его визитная карточка. И действительно, пользоваться текстовым интерфейсом там было бы совсем затруднительно. На серверах же традиционно прижился интерфейс командной строки, но это просто традиция, как показывает тот же Plan 9. Кстати, Inferno - это попытка сделать Plan 9 переносимым на разные платформы и он мало чем, по сути, отличается от того же Smalltalk.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-10-02 14:24:34


AL> Ну мне сложнее: я не телепат и люблю ковыряться во всякой фигне. Но зачем мне из вима делать интерфейс к ОС, если у меня уже есть более другие интерфейсы к ОС я не понимаю. Тем более на серверах, где просто нет смысла что-то сильно настраивать.

Если ОС это и есть реализация какого-то языка, то и выбора особого нет. Например HP 48, в которых RPL - это и есть вся ОС. На z/OS - это часто ISPF, поскольку там обычно есть только блочные терминалы. Или какой-нибудь Smalltalk, MIT Scheme, Wolfram Mathematica или другая интерактивная среда, которые от ОС мало зависят. В Lisp или OCaml использовать голый REPL - тоже не самый удобный вариант. Поэтому и Emacs. Да и в Plan 9 я Gnome что-то не заметил.

Но для Linux, Windows, какой-нибудь Sony PlayStation, где среда разработки для большинства пользователей совершенно не нужна, есть специализированные GUI. Так сложилось исторически.

А зачем, например, Пётр делает Red? Ну тоже есть у него на то свои причины :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-10-02 10:31:43


AL>> Как раз acme офигенный пользовательский интерфейс. По крайней мере в родной для него ОС. Но и в GNU/Linux весьма себе вкусная вещь. А вот vi/vim/neovim мной только как редакторы воспринимаются. Хорошие, но редакторы. Не прижилось у меня более широкое их использование.
vvs> У меня все редакторы используются так, как задумано авторами приложений. Я только пользователь.

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

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

# Re: Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — vvs
2023-09-27 21:41:48


vvs> есть один редактор с поддержкой Lua первого класса - Neovim. Может тебе это будет интересно для сравнения.

Да, я в курсе. vim (который не neo) я использовал одно время (пару лет), но потом перешёл на emacs. К режимам я привык, но не полностью. Хороший редактор, и neovim хвалят очень, думаю я его ещё посмотрю.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-09-26 19:15:33


AL> Я уже давно рассматриваю редактор не столько как редактор. Emacs ибо. Хотя напрямую как интерфейс к ОС его рассматривать не совсем правильно, но вот как вычислительную среду с интерфейсом доступа к ОС уже корректнее.

Смотря какая ОС. В GNU Scheme в качестве интерфейса по умолчанию есть Edwin - тот же Emacs. Сассман - который (со)автор Scheme - использует его как интерфейс в своих курсах/книгах, таких как "Структура и интерпретация компьютерных программ" и в своей CAS Scmutils (Scheme Mechanics). У него, кстати, есть книги и по математике и по физике с той же CAS. Она сама вот тут лежит: https://groups.csail.mit.edu/mac/users/gjs/6946/installation.html

AL> Как раз acme офигенный пользовательский интерфейс. По крайней мере в родной для него ОС. Но и в GNU/Linux весьма себе вкусная вещь. А вот vi/vim/neovim мной только как редакторы воспринимаются. Хорошие, но редакторы. Не прижилось у меня более широкое их использование.

У меня все редакторы используются так, как задумано авторами приложений. Я только пользователь.

# Re: Каждый программист должен написать свой редактор
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-09-26 18:17:28


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

Я уже давно рассматриваю редактор не столько как редактор. Emacs ибо. Хотя напрямую как интерфейс к ОС его рассматривать не совсем правильно, но вот как вычислительную среду с интерфейсом доступа к ОС уже корректнее.

vvs> По опыту здесь чаще всего доминируют VSCode, Emacs и, в меньшей степени, Vim/Neovim. Я тут говорю именно о "редакторах", а не IDE типа Eclipse или IntelliJ IDEA, хотя граница там достаточно размыта. Использовать же какой-то специализированный редактор отдельно, только для редактирования текста, в таком случае уже избыточно, КМК. Кстати, ведь и Acme задумывался именно для такого применения.

Как раз acme офигенный пользовательский интерфейс. По крайней мере в родной для него ОС. Но и в GNU/Linux весьма себе вкусная вещь. А вот vi/vim/neovim мной только как редакторы воспринимаются. Хорошие, но редакторы. Не прижилось у меня более широкое их использование.

vvs> Но это вопрос личных потребностей и вкусов, которые, впрочем, имеют тенденцию меняться со временем.

Да я даже не знаю. Мне почти всё нравится, что пробовал. Даже vscode на работе успешно использую. Правда рядом всегда открыто несколько клиентов Emacs, а в терминальных сессиях до серверов использую vim.

+++ Йа мобилко.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-09-26 14:39:53


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

По опыту здесь чаще всего доминируют VSCode, Emacs и, в меньшей степени, Vim/Neovim. Я тут говорю именно о "редакторах", а не IDE типа Eclipse или IntelliJ IDEA, хотя граница там достаточно размыта. Использовать же какой-то специализированный редактор отдельно, только для редактирования текста, в таком случае уже избыточно, КМК. Кстати, ведь и Acme задумывался именно для такого применения.

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

# Re: Каждый программист должен написать свой редактор
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-09-26 05:22:39


vvs> Почему-то до меня только сейчас это дошло, как до жирафа: не знаю, в курсе ты или нет, но уже есть один редактор с поддержкой Lua первого класса - Neovim. Может тебе это будет интересно для сравнения.

Есть ещё lite, например.

+++ Йа мобилко.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-25 20:06:07


Почему-то до меня только сейчас это дошло, как до жирафа: не знаю, в курсе ты или нет, но уже есть один редактор с поддержкой Lua первого класса - Neovim. Может тебе это будет интересно для сравнения.

# Re: Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — hugeping
2023-09-23 10:00:41


Довольно сильно продвинулся с red!

Основные отличия будут видны, если он используется не в Windows среде:

- Теперь есть win почти как в acme, в котором можно выполнять команды и есть даже ввод-вывод через fifo;
- Запуск процессов теперь осуществляется через потоки red, что должно исключить "зависания".

Ядро rein в плане потоков было немного переработано (для поддержки ThreadDetach), но в целом - движок не пришлось менять. Пока очень доволен. Вижу как red медленно (но верно) превращается в мой личный инструмент.

P.S. Ещё бы логотип какой-то придумать... Сейчас это просто красный квадрат с рамкой, который генерируется прямо внутри кода red. Хотя, может и не плохо.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — vvs
2023-09-12 17:59:38


Кстати, напомнило. Когда Hewlett-Packard запустили линейку первых программируемых калькуляторов со встроенной CAS, то для них был специально придуман язык RPL (Reverse Polish Lisp). Собственно почти все дальнейшие их калькуляторы, совместимые с этими и являлись реализацией RPL с кучей ПО.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-12 14:12:38


vvs>> Тогда жду, что следующим проектом станет свой язык программирования :) Нет, ну серьёзно, у Пайка были свои ОС (Plan 9 и Inferno), свой редактор Acme и свои языки - Limbo и Go. Правда он это делал не один, да и, к тому же, не бесплатно.

hugeping> Я не потянул бы такое. Хотя мне уже тут советовали посмотреть Оберон. :)

Смотря что иметь в виду. Изобрести оригинальный универсальный язык - это искусство. Придумать же практичный прикладной язык для личного пользования - не сложнее, чем написать свой текстовый редактор. Ну пользуются же люди URQ :) Вот и подтверждение практичности такого подхода: https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Разработать же транслятор - вообще дело техники и желания почитать соответствующую литературу. Короче, главное - не дрейфить :)

# Re: Победа будет Za нами!
std.hugeping
hugeping(ping,1) — kct-ac12
2023-09-11 18:47:56


kct-ac12> Слава России!

Да, бро! Только вперёд!

# Re: Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — vvs
2023-09-11 18:47:36


vvs> Тогда жду, что следующим проектом станет свой язык программирования :) Нет, ну серьёзно, у Пайка были свои ОС (Plan 9 и Inferno), свой редактор Acme и свои языки - Limbo и Go. Правда он это делал не один, да и, к тому же, не бесплатно.

Я не потянул бы такое. Хотя мне уже тут советовали посмотреть Оберон. :)
Но пока я решил чисто утилитарную проблему - испытал сегодня на работе - пока всё отлично!

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-09-11 13:19:44


VSCode может служить интерфейсом к самым разным веб приложениям. Например, он является клиентом GutHub Codespaces и Copilot. Я знаю и другие проекты, где он используется для интерактивных документов, где вместе присутствуют код, данные и документация, как в Jupyter. Если кто видел Wolfram Mathematica, то там такой же подход, только на основе интерактивного блокнота: https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BD%D0%BE%D1%82

Использование чисто текстовой среды, как в Emacs, затрудняет создание таких интерфейсов, особенно при использовании сети и интернет протоколов. Хотя и в Emacs можно пытаться такое реализовать, но он тут явно уступает по своим возможностям. Большинство людей не станет использовать Lynx вместо Firefox, да и не везде он будет работать правильно (в банке).

P.S. Edited: 2023-09-11 13:20:01

# Re: Каждый программист должен написать свой редактор
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-09-11 12:47:45


hugeping>> У кого-то может возникнуть вопрос. А почему я не использую vscode? Потому что моя профессия приносит мне удовольствие и я разборчив в своих предпочтениях. Что касается vscode:
hugeping>> - это приложение на основе браузера;
hugeping>> - vscode пришёл из недр корпорации.
vvs> VSCode надо рассматривать именно как интерфейс, а не редактор. Тогда наличие браузера становится преимуществом.

Я могу понять acme как интерфейс. И даже emacs как интерфейс, хотя тут уже всё менее чётко. Но интерфейсом к чему является VSCode. На работе использую его каждый день и от твоего сообщения появилось стойкое ощущение, что я что-то фундаментального о нём не знаю :)

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

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-11 12:32:49


hugeping> У кого-то может возникнуть вопрос. А почему я не использую vscode? Потому что моя профессия приносит мне удовольствие и я разборчив в своих предпочтениях. Что касается vscode:

hugeping> - это приложение на основе браузера;
hugeping> - vscode пришёл из недр корпорации.

VSCode надо рассматривать именно как интерфейс, а не редактор. Тогда наличие браузера становится преимуществом.

hugeping> Как я обхожусь без "фишек" современных редакторов? Наверное, мне они не так уж и нужны. Даже наоборот, вылезающие подсказки во время набора раздражают. А после acme я осознал, что и "раскраска" текста -- какая-то ненужная нелепость. Играет роль и то, что в моей области деятельности не нужно запоминать бесчисленное число методов и классов. Я могу писать код просто "из головы".

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

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

hugeping> Я не чувствовал, что инструмент "принадлежит" мне в полной мере.

Тогда жду, что следующим проектом станет свой язык программирования :) Нет, ну серьёзно, у Пайка были свои ОС (Plan 9 и Inferno), свой редактор Acme и свои языки - Limbo и Go. Правда он это делал не один, да и, к тому же, не бесплатно.

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

# Re: Мова
std.hugeping
Andrew Lobanov(tavern,1) — neonxp
2023-09-11 11:32:17


neonxp> Я предполагаю, в случае апокалиптического сценария интернетовских масштабов, именно такие трудецентрализованные сети будут иметь расцвет :)

Примитивные технологии победят капиталистов! ^__^

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

# Победа будет Za нами!
std.hugeping
kct-ac12(ping,50) — hugeping
2023-09-11 11:30:21


Слава России!

# Re: Мова
std.hugeping
neonxp(ping,50) — Andrew Lobanov
2023-09-11 10:15:15


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

# Re: Мова
std.hugeping
Andrew Lobanov(tavern,1) — neonxp
2023-09-11 09:35:33


neonxp>>> Спам и боты - признак что сеть живая :)
AL>> Это конвульсии %)
neonxp> Надеюсь, нет

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

+++ Caesium/0.4 RC1

# Re: Мова
std.hugeping
neonxp(ping,50) — Andrew Lobanov
2023-09-11 09:07:18


neonxp>> Спам и боты - признак что сеть живая :)
AL> Это конвульсии %)

Надеюсь, нет

# Re: Мова
std.hugeping
Andrew Lobanov(tavern,1) — neonxp
2023-09-11 08:16:39


neonxp> Спам и боты - признак что сеть живая :)
Это конвульсии %)

+++ Caesium/0.4 RC1

# Re: Мова
std.hugeping
neonxp(ping,50) — hugeping
2023-09-10 18:16:45


Спам и боты - признак что сеть живая :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — vvs
2023-09-10 17:41:14


vvs> Ты, когда говоришь о простоте, всегда, на самом деле, подразумеваешь только самое необходимое

Кстати, я тоже замечал, что если у меня под рукой есть привычный инструмент, то я всё пытаюсь делать им. Ну, действительно, зачем плодить лишние сущности и изучать всё новые способы делать одно и то же, если у меня уже и так всё для этого было? А в расходы запишем необходимость в постоянном усложнении "простого" инструмента. Вот так и появились на свет Vim и Emacs (и luvit с emilua, Smalltalk и кто его знает что ещё :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-10 16:40:20


hugeping> Если сделать специализированный код, то - можно, конечно. Я просто старался остаться в рамках API rein. Ну и вообще, хотел сохранить простоту.

Ты, когда говоришь о простоте, всегда, на самом деле, подразумеваешь только самое необходимое :) Берём вызовы ядра Линукса и План 9: разница лишь в том, что считать самым необходимым. Один человек ещё как-то сказал, что его самой большой ошибкой было то, что для реализации интерфейса пользователя он написал текстовый редактор на Яве - такой проект может занять всю жизнь :) Интересно, Столлман, когда писал Emacs, подозревал, что в нём появится ещё и Сокобан и калькулятор в придачу? Понятие необходимости со временем тоже эволюционирует, однако :)

# Re: Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — vvs
2023-09-10 15:34:36


vvs> https://luvit.io ? Дисклеймер: найдено в интернете, я не специалист по Lua и т.п.

Если сделать специализированный код, то - можно, конечно. Я просто старался остаться в рамках API rein. Ну и вообще, хотел сохранить простоту.

vvs> И всё же большие и сложные проекты я бы на нём делать поостерёгся.

red меньше 2000 строк в общей сложности. Lua конечно хорош как встраиваемый язык.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-10 12:47:01


hugeping> Всё это реализовано за счёт io.popen временных файлов и coroutine (переключение после чтения пачки строк). Поэтому - ненадёжно. Если вы запустите программу которая висит и ничего не выдаёт, red зависнет. Поэтому реализацию нельзя считать полноценной замену acme. Тем не менее, я пользуюсь этим механизмом для проверки орфографии.

https://luvit.io ? Дисклеймер: найдено в интернете, я не специалист по Lua и т.п.

P.S. Я долгое время относился к Lua пренебрежительно за его "игрушечность". Однако в какой-то момент мне зачем-то понадобилось ознакомиться с ним глубже и на меня произвели впечатление элегантность и минимализм языка, напомнило Лисп. И всё же большие и сложные проекты я бы на нём делать поостерёгся.

P.S. Для меня редактор - это ещё и интерфейс со средой исполнения, например CAS или ITP. Но для многих достаточно и меньшего. Emacs - это крайний пример, к тому же его может оказаться и недостаточно если интерфейс нетекстовый по природе.

# Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-10 12:46:14


Удалено. Случайно зацепил не ту клавишу.

# Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — All
2023-09-10 11:32:09


Решил написать небольшую заметку про свой новый проект. Интересно, что как и остальные, он стал эволюцией моих прошлых экспериментов. Занимаясь INSTEAD я полюбил Lua. Играя с Plan9 я сделал парсерный re:instead (в том числе и для того, чтобы можно было писать парсерные игры прямо в Plan9). Развил re:instead в rein, который стал уже скорее "платформой" приложений.

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

Я пользовался разными редакторами. Среди них, конечно, особое место занимают vim и emacs. Но когда я познакомился с acme я понял, что по большому счёту совсем не важно в чём ты пишешь код. Простой инструмент может быть гибким, эффективным и вдохновляющим.

У кого-то может возникнуть вопрос. А почему я не использую vscode? Потому что моя профессия приносит мне удовольствие и я разборчив в своих предпочтениях. Что касается vscode:

- это приложение на основе браузера;
- vscode пришёл из недр корпорации.

Как я обхожусь без "фишек" современных редакторов? Наверное, мне они не так уж и нужны. Даже наоборот, вылезающие подсказки во время набора раздражают. А после acme я осознал, что и "раскраска" текста -- какая-то ненужная нелепость. Играет роль и то, что в моей области деятельности не нужно запоминать бесчисленное число методов и классов. Я могу писать код просто "из головы".

Я начал проводить всё больше времени в acme, написал для него e-mail клиент, но всё-таки нельзя сказать, что он стал моим единственным редактором. Он является естественным в своей родной среде обитания - Plan9, но для работы в Linux/Bsd* необходимо собрать plan9ports. Я не чувствовал, что инструмент "принадлежит" мне в полной мере.

Так что мысль о собственном _простом_ редакторе стала приходить мне всё чаще. Наверное ещё во время работы над re:instead (который был написал под вдохновением от редактора Lite) я увидел, что это возможно.

Потом, в rein я написал простой "традиционный" редактор edit и пользовался им при разработке под rein. Ощущение инструмента в котором ты знаешь каждый "болтик" было непередаваемым!

В edit (редактор rein) в начале было много багов. Файл в edit был представлен в виде массива строк. Это удобно для навигации и отображния, но совсем неудобно для редактирования. Пока я его дописывал и фиксил баги я подумал, а что если файл представлять не массивом строк, а просто -- одной строкой? И тут же снова вспомнил acme, где изменения высоты скроллера явно намекает на то, что в качестве позиции используется смещение, а не номер строки. Стало интересно попробовать. И в этот раз я не смог погасить свой порыв. Так я и начал писать свой мини-acme.

Многие фишки acme раскрываются в полной мере в Plan9. Например, файловая система, через которую можно управлять редактором. Да, в Linux тоже можно монтировать её через fuse, но есть нюансы, которые делают этот метод не рабочим. Поэтому я был настроен делать именно "мини"-acme редактор, в котором мог бы делать свою повседневную работу. В качестве механизма расширения - конечно Lua!

Сейчас редактор доведён до полу-готового состояния и смержен в master ветку проекта rein. Редактор делается под мои предпочтения, поэтому он не будет демонстрироваться "широкой" публике, но я всё-таки решил написать этот текст на случай, если им заинтересуется кто-нибудь ещё.

Итак, особенности редактора red.

# RED -- Rein Editor

## Клавиши

В отличие от acme в red работают многие привычные комбинации клавиш:

- ctrl-c/x/v - копирование, удаление, вставка;
- ctrl-z - undo;
- ctrl-k - удаление до конца строки;
- стрелки курсора - перемещение по тексту во всех направления;
- page down/up - перемещение по тексту по странично;
- home/end - начало и конец строки;
- ctrl-w - умное выделение;
- ctrl-s - сохранение буфера (окна).
- shift-движение - выделение клавиатурой.

Как в acme (или почти как в acme) работают:

- escape - выделение последнего блока, удаление;
- ctrl-f - автодополнение путей (правда, если варинтов несколько - выдаётся первый);
- ctrl-a - начало/конец строки.

## Мышка

- аккорды acme - должны работать похоже;
- правая кнопка мыши - простой поиск как в acme;
- alt+правая кнопка мыши - простой поиск назад;
- shift + правая кнопка мыши - эмуляция средней кнопки мыши.

В отличие от acme курсор _мыши_ не прыгает на выделенный текст поиска (так как управление курсором из приложение возможно не во всех средах). Чтобы продолжить поиск нужно повторно кликнуть в пустую область где нет текста (например, справа от строки). Или кликнуть на слово для поиска этого слова.

- правая кнопка мыши на :число - прыжок на строчку.
- средняя кнопка мыши - выполнение действия: меню, вызов программ, открытие каталогов и файлов.

В acme открытие файлов и передача в plumber делается по пкм, однако это меня всегда немного раздражало. Потому что иногда клик приводит к поиску, а иногда - к действию. Захотел поискать https://... в коде, а открылся браузер. Поэтому в red все активные действия висят на средней кнопки мыши. А открытие каталогов, файлов - это тоже активные действия. Возможно, я сделал ошибку, но пока решение кажется удобным.

- умное выделение

Не такое как в acme, но всё-таки удобное. Двойной клик справа от строки - выделить всю строку с переводом строки. Двойной справа от последнего символа строки - строка но без перевода строки. Клики около скобок - выделение до пары. Клики на словах - выделение слов. Кроме мышки можно пользоваться умным выделением нажимая ctrl-w.

## Окна

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

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

Если имя файла начинается с "+", то такой файл не сохраняется на диск. Поэтому информационные окна называются: +Errors, +Output, +Help и т.д. Вы можете любое окно сделать информационным просто добавив + в начало имени активного файла (первый файл в списке файлов в меню).

Скроллеры в отличие от acme работают традиционно - левая кнопка мыши "таскает" скроллер.

## Вызов программ

Поддержки win (запуск шелла) на данный момент нет. Это связано с тем, что полноценную поддержку процессов нужно делать через fork. Это привяжет red к Unix. К тому же, red - это lite-acme. :) Расширения red можно делать на Lua, но для запуска полноценного shell этого недостаточно.

### Возможности по запуску программ

- >cmd - запуск cmd с передачей в качестве параметра временного файла с данными;
- <cmd - запуск cmd с чтением stdout;
- !cmd - запуск cmd

Кроме того для Linux всё-таки доступна:

- |cmd - работает примерно как в acme. На вход через пайп передаётся текст или выделение и ждём выхода.

Всё это реализовано за счёт io.popen временных файлов и coroutine (переключение после чтения пачки строк). Поэтому - ненадёжно. Если вы запустите программу которая висит и ничего не выдаёт, red зависнет. Поэтому реализацию нельзя считать полноценной замену acme. Тем не менее, я пользуюсь этим механизмом для проверки орфографии.

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

### Встроенные команды

Основной механизм расширений редактора всё-таки не через запуск внешних команд, а за счёт написания процедур на Lua. Процедуры находятся в файле data/lib/red/proc.lua и на данный момент включают следующие команды:

- sub - поиск или поиск/замена построчно;
- gsub - поиск или поиск/замена глобально;
- select - синоним gsub без замены;
- find - синоним sub без замены;

Внимание! Все регулярки - регулярки на Lua!

Примеры:

select ^.*$ - выбрать всё
sub /^/ / - построчно добавлять в начало строки 4 пробела.

Во втором примере на каждые 2 клика вы получите одну итерацию: поиск-замена. Но если хотите произвести манипуляции не интерактивно - выделите текст, с которым работаете. Например:

gsub ^.*$ - выделили всё (тот же select)
sub /^/ / - отработали по выделению.

Доступна форма записи поиска с / - если нужно работать с пробелами:

select / / - выбрать 2 пробела.

Другие встроенные команды:

- Getline - добавляет справа от себя текущий номер строки. Удобно для составления "закладок" в файле;
- fmt [ширина] - аналог утилиты fmt;
- grep выражение - рекурсивный поиск по содержимому файлов каталога. Каталог - dirname открытого в данный момент файла;
- Run [программа] - запуск программы rein (интеграция для разработки под rein) или текущего файла.

## Dump

При нажатии средней кнопки мыши на Dump - в текущем каталоге создаётся конфигурация сессии (файл red.dump). В сессии сохраняются все данные открытых файлов. Даже если вы сотрёте сами файлы, при восстановлении сессии они будут показаны в окнах. Если red находит в текущем каталоге red.dump он всегда его загружает. Возможно, в будущем появится опция для загрузки Dump.

## Параметры командной строки

Запуск red:

$ rein red [-fs <размер шрифта>] [файлы]

Чтобы немного ускорить запуск можно воспользоваться опциями:

$ rein -platform-nosound -platform-nojoystick ...

Для удобства я делаю себе скрипт вида:

-- red
#!/bin/sh
/home/peter/Devel/rein/rein -platform-nosound -platform-nojoystick red -fs 19 "$@"

И запускаю редактор из любого места.

## Открытие файлов по средней кнопке мыши

В файле data/lib/red/uri.lua вы можете прописать вызов внешних программ. Например, запускать просмотрщик pdf если вы нажали на строчку, которая заканчивается на .pdf.

## Настройки для типов файлов

В файле data/lib/red/presets.lua вы можете настроить поведение редактора в зависимости от типа файла (расширения). Пока доступны только размер табуляции и режим табуляции (пробелы или \t). Скорее всего появятся и другие настройки.

## Цвета

В начале red.lua в таблице conf.

# Что дальше?

Редактор ещё сыроват, но я начал его использовать и постоянно вношу доработки. Приоритет разработки - личное использование. Ведь вряд-ли вы захотите променять vscode на _это_! Не правда ли? :) Но меня это не беспокоит. Ведь теперь я точно знаю -- каждый программист должен написать собственный редактор!

У Линуса есть https://github.com/torvalds/uemacs у Роба Пайка -- acme, у Столмана emacs. А у меня теперь есть red и мне больше не нужно выбирать!

P.S. Один мой друг удивился тому, что у меня есть желание программировать после работы и тратить время на такие вот хобби проекты. Не знаю в чём дело, но с годами желание программировать у меня никогда не исчезало. И я считал что это нормальное состояние для программиста. Программирование -- это в первую очередь форма творчества, а творчество всегда лечит. Ведь творчество это свобода. Эксперимент, игра -- но никак не рутина. В хобби проекте ты можешь почувствовать это в полной мере, ведь тут ты не ограничен целесообразностью. А на работе... На работе теперь можно будет редактировать код в red :)

# Re: Победа будет Za нами!
std.hugeping
vvs(ping,12) — hugeping
2023-09-07 21:13:29


:)

Вспоминается Райкин: "Футбол — двадцать два бугая один мяч перекатывают! А вы выдайте каждому ну это… каток! Так они, 22 бугая, 22 бугая, да на полтора часа…. да на полтора часа и на 22 бугая… два пишем, семь на ум пошло. Они всё поле заасфальтируют!".

Следующий этап - заставить спамеров биткойны майнить?

# Re: Победа будет Za нами!
std.hugeping
hugeping(ping,1) — hun19867
2023-09-07 11:59:28


hun19867> Слава России!

Согласен, бро! Слава России!

# Победа будет Za нами!
std.hugeping
hun19867(ping,50) — Andrew Lobanov
2023-09-07 09:46:45


Слава России!

# Re: Мова
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2023-09-06 15:15:28


AL> Какой же он секретный, если ты его уже давно в курилке так вкусно презентуешь?

Да, ну на то она и курилка :)

Вообще, мне самому нравится то, что получается. Правда, не всё прям так просто как я думал в начале. Но всё-равно, программировать интересно.

# Re: Мова
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2023-09-06 09:50:48


vvs>> P.S. Ну хоть какое-то оживление. Хотя здесь последнее время других развлечений не наблюдается: одни спамеры, увы :(
hugeping> У меня просто новый секретный проект! Но, возможно, скоро я его покажу :)

Какой же он секретный, если ты его уже давно в курилке так вкусно презентуешь?

+++ Caesium/0.4 RC1

# Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 18:23:26


Кстати, весь этот детский сад самостийности головного мозга был бы просто смешон если бы относился только к отдельно взятой стране в отдельный момент времени. К сожалению это довольно распространённое заболевание и встречается у слишком многих. Иногда кажется, что это неизлечимо :( Изучение истории наводит на безрадостные мысли: а может люди вообще обречены, как неудачный эксперимент Создателя? Просто ему их слишком жалко, хоть и уродцы, но свои. Правда Библия говорит, что были ещё Содом и Гоморра, да и Великий Потоп... Переделывать человеческую природу - та ещё работёнка :( Вон и коммунисты не справились...

Анекдот:

Дураков на свете немного, но расставлены они так, что натыкаешься на них на каждом шагу.

# Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 17:12:30


hugeping> У меня просто новый секретный проект! Но, возможно, скоро я его покажу :)

Удачи. Надеюсь его ждет лучшее будущее, чем мой последний "секретный" проект. Я уже раздумывал: не перевести ли мне на русский книжку по логике, но меня демотивировали, объяснив, что это никому не нужно.

Так всё и ограничилось гуглопереводом (не так уж плохо, как я ожидал). Но такие перлы, как "в английском банк означает берег реки и финансовое учреждение. 'Идти в банк' тогда звучит двусмысленно" перевести даже человеку не просто :( Я бы, наверное, перевёл как: "в русском банка означает сосуд, а банк финансовое учреждение. 'Храните деньги в банке' тогда звучит двусмысленно". Но я не профессиональный переводчик.

P.S. Edited: 2023-09-05 17:13:09

# Re: Мова
std.hugeping
hugeping(ping,1) — vvs
2023-09-05 16:14:15


vvs> P.S. Ну хоть какое-то оживление. Хотя здесь последнее время других развлечений не наблюдается: одни спамеры, увы :(

У меня просто новый секретный проект! Но, возможно, скоро я его покажу :)

# Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 16:11:53


hugeping> Ха-ха! Ты слишком высокого о себе мнения, мой украинский недоброжелатель. :)

Террорист - это не звание, а ругательство (назидательно).

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

P.S. Чтобы привлечь именно моё внимание, надо написать книгу на интересную мне тему. Ну или хотя бы какую-нибудь игру :) А иначе - зря потраченное время.

P.S. Ну хоть какое-то оживление. Хотя здесь последнее время других развлечений не наблюдается: одни спамеры, увы :(

# Re: Мова
std.hugeping
hugeping(ping,1) — helpingherring
2023-09-05 15:29:37


Ха-ха! Ты слишком высокого о себе мнения, мой украинский недоброжелатель. :)

# Re: Мова
std.hugeping
helpingherring(ping,51) — vvs
2023-09-05 14:47:11


Ох уж ці кібертерористи.

# Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 14:18:14


kot-av121>> Интересно.

hugeping> Комрад, если тебе очень хочется со мной поговорить, для этого не надо пытаться спамить. Можешь написать мне (по русски) на почту или в телеграмм.

hugeping> Если же данные способы связи тебя не устраивают, можешь написать здесь. Но делать это надо со своего настоящего IP и при регистрации указать настоящую почту. Но русофобские сообщения и сообщения на мове будут зачищены.

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

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

P.P.S. Ещё одна деталь: сообщения появляются только в темах, где предварительно бот отметился безобидным комментарием.

P.S. Edited: 2023-09-05 14:24:06

# Re: Мова
std.hugeping
hugeping(ping,1) — kot-av121
2023-09-04 14:48:07


kot-av121> Интересно.

Комрад, если тебе очень хочется со мной поговорить, для этого не надо пытаться спамить. Можешь написать мне (по русски) на почту или в телеграмм.

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

# Re: Мова
std.hugeping
kot-av121(ping,51) — hugeping
2023-09-04 09:20:37


Интересно.

# Re: Мова
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2023-08-27 08:56:24


vvs>> в соседней теме ТС опускается до неспровоцированных личных оскорблений
hugeping> Я могу удалять сообщения на этом узле, которые пришли с других узлов. Но в целом, это практика которая не приветствуется. И вообще модерирование слабо работает в idec, так как все ноды - независимы. Обычно я удалял сообщения в каких то тяжёлых случаях. Я чуть чуть посмотрел вашу "дискуссию", показалось что не такая уж она страшная и агрессия не такая уж и не спровоцированная :). Но за других людей не могу говорить, так что если надо, могу заблокировать что-то.

Да ну ты что? vvs Д'Артаньян, а я пидарас :)

+++ Caesium/0.4 RC1

# Re: Мова
std.hugeping
hugeping(ping,1) — vvs
2023-08-10 15:53:06


vvs> Это уже о другом: чужая душа - потёмки и человека не узнаешь, пока не съешь с ним пуд соли :)

Я в данном контексте про себя самого, скорее.

vvs> Обидно, конечно, что на этой площадке общаться стало практически не с кем.

Да, сеть еле жива. Но мой узел все равно играет свою роль как хранилища моих заметок.

# Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-08-10 15:37:09


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

Это уже о другом: чужая душа - потёмки и человека не узнаешь, пока не съешь с ним пуд соли :) Поэтому меня всегда и коробит, когда я слышу о "друзьях" по интернету. Но и о "врагах" - тоже. Кстати, а ты не думал, что во всей этой спам-атаке есть какие-то странности? А была ли вообще Украина? Кроме украинского языка об этом ничего и не говорит, а это слишком уж очевидно. Ну да, теория заговора напрашивается (и паранойя) :)

hugeping> Я могу удалять сообщения на этом узле, которые пришли с других узлов. Но в целом, это практика которая не приветствуется. И вообще модерирование слабо работает в idec, так как все ноды - независимы. Обычно я удалял сообщения в каких то тяжёлых случаях. Я чуть чуть посмотрел вашу "дискуссию", показалось что не такая уж она страшная и агрессия не такая уж и не спровоцированная :). Но за других людей не могу говорить, так что если надо, могу заблокировать что-то.

Да Бог с ним - слишком много чести :) Цели такой не было, чтобы обязательно банить.

Что касается провокации: моё мнение, что агрессия не может быть оправдана ничем, кроме самообороны, в ответ на угрозы, оскорбления или физическое насилие. И где же именно я там кому-то угрожал или оскорблял? Я же не военный блок :) С моей точки зрения это совершенно неадекватная реакция на любой тривиальный спор, когда даже и не утруждаются ответной аргументацией. Судить здесь только незаинтересованному стороннему наблюдателю, а пытаться брать восстановление "справедливости" в свои руки - как раз и есть ничем не обоснованная агрессия. Интересно, какой тогда была бы реакция если бы спор был не заочным? Поножовщина? По-моему слишком снисходительное отношение к подобным выходкам только вредит: агрессор только утверждается в своей безнаказанности. Ну да ладно, я слишком увлекся назидательными сентенциями, а это пустое :)

Обидно, конечно, что на этой площадке общаться стало практически не с кем. Ты вот, например, вообще больше сюда не заходишь, кроме из ряда вон выходящих случаев. А я бы заметил, что лично я сюда вовсе не с неадекватами ругаться прихожу, а обсудить разные интересные мысли и явления. Но, конечно, у всех разные интересы и своя жизнь, а тебе, похоже, кроме rein сейчас ничего больше и не нужно. В итоге каждый оказывается замкнут в своей скорлупе и общение не получается, а жаль :(

# Re: Мова
std.hugeping
hugeping(ping,1) — vvs
2023-08-10 14:56:39


vvs> У меня тут есть своё мнение. Мне кажется, что вклад в какие-то реальные события вносят только настоящие профессионалы

Ну тут всё индивидуально. И вообще, сложно не покривить душой когда столько всего намешано. Поменьше рефлексии! :)

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

vvs> в соседней теме ТС опускается до неспровоцированных личных оскорблений

Я могу удалять сообщения на этом узле, которые пришли с других узлов. Но в целом, это практика которая не приветствуется. И вообще модерирование слабо работает в idec, так как все ноды - независимы. Обычно я удалял сообщения в каких то тяжёлых случаях. Я чуть чуть посмотрел вашу "дискуссию", показалось что не такая уж она страшная и агрессия не такая уж и не спровоцированная :). Но за других людей не могу говорить, так что если надо, могу заблокировать что-то.
P.S. Edited: 2023-08-10 14:57:09

# Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-08-10 13:29:05


hugeping> Когда началась СВО и многие IT-шники открыто заявили: "нам стыдно, нет войне", я не хотел высовываться. Хотел отмолчаться. Ну, это как говорят -- "моя личная позиция". Зачем о ней трубить всем на свете? Зачем заниматься пропагандой?

hugeping> Но в глубине души я знал. Если я не скажу прямо, что поддерживаю наших солдат, свою Родину в тяжёлое для неё время, то это будет такое-же предательство. Сейчас вижу, что написав ту первую заметку "Точка Z": ii://RZlA1xAFOxQMrrPRYC13 я всё-таки запустил какую-то цепную реакцию. Значит, всё-правильно сделал.

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

P.S. Кстати, для демонстрации неадекватного поведения совсем необязательно жить на Украине. Вон, в соседней теме ТС опускается до неспровоцированных личных оскорблений, причём делает это далеко не в первый раз и не только здесь. Что только в очередной раз подтверждает моё мнение о нём самом: горбатого могила исправит.

# Мова
std.hugeping
hugeping(ping,1) — All
2023-08-10 08:32:47


Вчера на станцию ping была снова проведена спам-атака.

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

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

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

Получается что и не ставят они перед собой цель -- донести что-либо. И сообщение на "мове" следует воспринимать как "плевок". Поэтому я перестал их читать. Из сообщений последней атаки я ухватил только ключевое слово: Умань. Значит, эта атака -- реакция на мою заметку "Никто не забыт, ничто не забыто" ii://Sr7pL59F9OV2OimsWQTx

Это даже лестно! Получается я(и моя малинка) внесли какой-никакой, но вклад в информационную войну. :)

Когда началась СВО и многие IT-шники открыто заявили: "нам стыдно, нет войне", я не хотел высовываться. Хотел отмолчаться. Ну, это как говорят -- "моя личная позиция". Зачем о ней трубить всем на свете? Зачем заниматься пропагандой?

Но в глубине души я знал. Если я не скажу прямо, что поддерживаю наших солдат, свою Родину в тяжёлое для неё время, то это будет такое-же предательство. Сейчас вижу, что написав ту первую заметку "Точка Z": ii://RZlA1xAFOxQMrrPRYC13 я всё-таки запустил какую-то цепную реакцию. Значит, всё-правильно сделал.

Моя бабушка разговаривала на суржике. Часто вспоминаю этот мягкий говор. Тогда, в Умани, я говорил бабушке: "Я хочу быть украинцем! Можно?". Никакие мова-плевки не смогут забрать у меня этих воспоминаний детства. Воспоминаний о времени, когда все мы жили в одной стране.

# Re: Точка Z
std.hugeping
test123456(ping,50) — hugeping
2023-08-09 11:59:28


Интересная статья.

# Re: Секретный проект: rein
std.hugeping
hugeping(ping,1) — hugeping
2023-08-06 12:04:38


Записали с true-grue первый ролик про работу со звуком в rein.

https://www.youtube.com/watch?v=F5-IFaDAxXo

# Re: Plan 9: экстремальный KISS #1
std.hugeping
vvs(ping,12) — hugeping
2023-06-17 20:21:29


Сейчас подсел немного на эксперименты с СВМ ЕС и невольно сравниваю с другими ОС. Есть много аналогий, в частности, и с Plan 9. Для тех, кто не в курсе: СВМ ЕС это был советский аналог IBM VM/SP для S/370. Я в своё время ей воспользоваться не мог, поскольку наша ЕС-ка не имела терминалов ЕС-7920 (IBM 3270). Сейчас это всё стало возможным в эмуляторе и впечатления очень приятные.

Во-первых, это простота ядра. Никаих тебе процессов, а всё - виртуальная машина. Нет, это не похоже на Intel, где виртуализация это достаточно сложно и накладно. На мэйнфрейме это очень просто :) Можно, конечно, запускать и более тяжёлые ОС, но по умолчанию для программиста доступна ПДО (CMS у IBM). Это однозадачная и однопользовательская 32-битная ОС со встроенными средствами поддержки программиста, например довольно мощный текстовый редактор и отладчик. Короче PC DOS на стероидах. Но никакой графики, хотя для кого-то и это плюс :) Есть и текстовая оконная система и свой аналог Norton Commander (Far, Midnight commander) :)

Во-вторых, максимальная приближённость к железу. Никакого Си, вся ОС написана на ассемблере. Кто хочет узнать все низкоуровневые детали работы системы, здесь неизбежно с этим столкнётся. Например, где ещё надо с самого начала представлять себе, как программа загружается и располагается в оперативной памяти? Как осуществляется ввод-вывод на периферийные устройства? Да и номенклатура устройств не чета современным ПК. Где вы ещё найдете перфокарточные устройства, магнитные ленты и диски, адресуемые с указанием цилиндров?

В-третьих, это максимально анархическая система: никакого учёта, всё вручную. У каждого пользователя своя виртуальная машина, где он полный хозяин. Даже определить, сколько у него дисков, где они и какие на них файлы - не так-то просто. Система напоминает децентрализованные сетевые, но только без сети. Однако на самом хосте может быть много терминалов и связь в пределах хоста тоже есть. Есть и много разнообразных способов обмена файлами. Не самый экзотический: вывести файл на виртуальные перфокарты и потом прочитать их на другой ВМ :) При этом довольно развитая система прав доступа: каждая команда ОС имеет свой класс, а диски имеют парольную защиту с отдельным паролем для чтения или записи. Хотя никакой криптографии :)

С исходными кодами здесь, к сожалению, туговато, но, несмотря на это, возможностей по модификации всегда было очень много, а двух одинаковых систем здесь найти нельзя было никогда. Распространёнными способами были, например, модификация бинарных файлов или их дизассемблирование. Но для достаточно старых версий (до 1983 года) IBM изначально предоставляла исходники без ограничений и найти их в интернете и сейчас вполне возможно.

В общем, система кажется мне очень простой даже по сравнению с Plan 9, но это совсем не игрушечная система и на ней когда-то работали тысячи людей и были реализованы большие и серьёзные проекты. А для меня это сейчас просто очень интересная игрушка :) Надеюсь ещё когда-нибудь поковырять и Multics (да-да, тот самый из-за которого появился Unix).

# Re: Солярисы
std.hugeping
vvs(ping,12) — Reprise
2023-06-16 10:16:54


Reprise> Ты всё правильно пишешь, конечно. Только неприменимо к ситуации. Но это уже не важно - я понял, что тебе интересно общаться с теми, кто с тобой на одной волне, и неинтересно с теми, кто думает немного иначе. А жаль.

Да почему же неприменимо? Речь идет о любом языке, в котором нет прямых аналогов знакомым понятиям и который пытается быть мало-мальски формальным. О неформальном понимании, разумеется, речь не идет, но для того и проводится противопоставление. В любом случае я говорю о различном понимании "очевидного", а это как раз и есть источник всех противоречий в данной дискуссии.

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

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

# Re: Солярисы
std.hugeping
Reprise(tavern,18) — vvs
2023-06-16 04:15:19


vvs>> Если утверждение не кажется очевидным, то, боюсь, что попытки дальше разложить его на части для анализа ничего не прояснят, а только всё запутают. И это не моя вина, а так устроен этот мир. Это всё та же самая старая философская дискуссия о противоречиях между редукционизмом и холизмом.
vvs> До меня вдруг дошло, что я сам в своё время стал жертвой такого же заблуждения :)
vvs> Когда я только начинал изучать абстрактную математику, я воображал, что формализация теорем поможет мне их лучше понять. Для этого я начал изучать математическую логику и формальные языки. Теперь, задним числом, я знаю, почему это никак не могло дать нужного результата. Короче говоря, формальные логические системы - это только синтаксис языка, они лишены смысла. Смысл находится только в их моделях, то есть в конкретной интерпретации этого синтаксиса и таких интерпретаций может быть множество. К сожалению возможны и нестандартные интерпертации, которые противоречат исходному замыслу. Это непреодолимая фундаментальная проблема.
vvs> Другая проблема с редукционистским подходом - это экспоненциальный рост предложений языка. В итоге конструкции вроде 2+2=4 могут превратиться буквально в миллиарды более примитивных логических высказываний. Чтобы этого избежать как раз и приходиться прибегать к абстракции и созданию очень сложных синтетических понятий. Но такие понятия требуется предварительно изучать и воспринимать в контексте.
vvs> Именно поэтому начинающему нужен совсем другой подход - неформальный. Для формирования интуитивного понимания понятий незнакомого языка применяется пропедевтика, т.е. по сути упрощение и искажение истинного смысла с помощью аналогий. Как говорят некоторые преподаватели: мы будем вас обманывать для простоты :) Понимание приходит только постепенно, шаг за шагом, а только потом уже приходит озарение. А иначе такой незнакомый язык выглядит, как непроницаемый туман: вроде отдельные слова имеют смысл, а всё в целом - просто бессмысленный набор слов. Я сам был в такой ситуации в прошлом, но уже подзабылось :) О философских проблемах перевода написаны горы серьёзной теоретической литературы, а мы тут просто валяем дурака :)

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

+++ Caesium/0.4 RC1

# Re: Солярисы
std.hugeping
vvs(ping,12) — vvs
2023-06-14 14:10:59


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

До меня вдруг дошло, что я сам в своё время стал жертвой такого же заблуждения :)

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

Другая проблема с редукционистским подходом - это экспоненциальный рост предложений языка. В итоге конструкции вроде 2+2=4 могут превратиться буквально в миллиарды более примитивных логических высказываний. Чтобы этого избежать как раз и приходиться прибегать к абстракции и созданию очень сложных синтетических понятий. Но такие понятия требуется предварительно изучать и воспринимать в контексте.

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

# Re: Солярисы
std.hugeping
vvs(ping,12) — vvs
2023-06-13 01:49:11


vvs> Для общения достаточно неформального утверждения, которое всем представляется очевидным. Если же на самом деле это не так, то возникает большая проблема. Надо формально выяснять, что на самом деле имеется в виду под 64-битным компьютером? То ли это ILP32LL, а может LP64 либо LLP64, а может ещё что-то другое? Не говоря уже о том, что тут имеется в виду под самим "компьютером"? Это ПК или мэйнфрейм, а может смартфон или контроллер, а может это машина Тьюринга? В итоге всё становится каким-то бессмысленным и туманным.

И, кстати, самое интересное начинается, когда возникает вопрос о том, что понимать под "эффективностью"? Что лучше: иметь сто рук или уметь хорошо пользоваться только двумя? Вопрос далеко не праздный, поскольку количественное увеличение разрядности ещё не означает автоматическое увеличение производительности. Например, чем плотнее код, тем лучше он кэшируется и тем быстрее работает. Поэтому, например, ARM имеет thumb mode. И поэтому же уже упомянутые мной компиляторы удалось вместить в 512 байт, а попробуйте сделать то же с 64-битным кодом.

Отсюда интересная аналогия с ретрокомпьютингом. Что считать более эффективным: когда кто-то написал компилятор, работающий на крошечном 8-битном кнтроллере или такой же компилятор для 64-битного сервера? Ответы на эти вопросы могут быть разными для разных людей и их очевидность не будет для них совпадать. Как же тогда эти люди могут понять друг друга? По крайней мере такое понимание не может быть простым.

Кстати, размер кода является является одной из мер сложности (колмогоровской сложности) алгоритма. Разумеется, существуют разные модели для такой меры, например двоичная комбинаторная логика или даже FRACTRAN, но они не могут считаться практичными. Но, вообще, сойдет и компилятор с Си или Лиспа. С этой точки зрения Форт, Лисп, Бейсик и Си - одни из самых простых практичных формальных языков. И что считать более эффективным: простой или сложный алгоритм? Является ли ответ на этот вопрос очевидным и однозначным? Кто-то тут ранее очень много говорил о сложности? ;)

# Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-06 17:57:11


AL> Ты не пытался её максимально прояснить. Ты пытался её максимально запутать.

По поводу общения и философии.

Анекдот:

Приехал в деревню философ. Его дед встречает и спрашивает, ты кто такой? — Я философ. А чем занимаешься? — Диалектикой. Что такое диалектика? — Ну, дед, что ты спрашиваешь? Нет, говорит дед, мы люди образованные, в школе занимались, книги читаем, телевизор смотрим, радио слушаем, а ты как образованный человек должен нам объяснить. Ты зачем образование получал? — Ну ладно, говорит философ, объясню. Вот баня есть у вас в деревне? Есть, и мужское, и женское отделения. — Хорошо. Вот идем мы с тобой в баню, ты грязный, я чистый. Кому надо мыться? Дед говорит: «Ну, ясно, я грязный, мне надо мыться». — Нет, дед. Я чистый, мне чистоту поддерживать надо, а ты все равно грязный, чего тебе мыться? Понял дед? Дед говорит: «Сильная у вас диалектика. Понял, чего тут не понять». — Так вот это — тезис, запомни, дед. Но это, дед, не все, идем мы с тобой второй раз в баню, ты — грязный, я — чистый. Кому мыться? «Да понял я вашу диалектику, — говорит дед, — Ты чистый, тебе чистоту поддерживать надо, тебе надо мыться, а мне чего мыться, я грязный». — Нет, дед, что ты мелешь? Посмотри на себя, ты же грязный. Тебе надо мыться, а мне-то чего мыться, я чистый. Понял дед? «Понял». — Вот это, дед, антитезис. Но это не все, дед. Третий раз мы идем с тобой в баню. Ты грязный, я чистый. Кому мыться? Дед говорит: «Ничего не понимаю». Вот, дед, это и есть диалектика — синтезис.

Тоже слыхал от М.В.Попова у Д.Пучкова "Гоблина" на разведопросе.

# Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-06 17:37:21


AL> А не надо сводить к трём числам. Я как раз максимально расширял понятие компьютера, а не сужал его до одного только ПК.

AL> Ты не пытался её максимально прояснить. Ты пытался её максимально запутать.

AL> Для меня общение - это в первую очередь обсуждение. Но для того, чтобы что-либо обсуждать, нужно определиться что же именно мы обсуждаем. И вот тут то и возникает проблема. Но если ты не ставишь целью помочь собеседнику понять тебя, то чем общение отличается от перекидывания случайными репликами?

AL> Не нужно никуда лезть. Нужно всего лишь попытаться сказать что ты думаешь, а не что получится.

Мне кажется, ты путаешь неформальное общение с философской конференцией. Для общения достаточно неформального утверждения, которое всем представляется очевидным. Если же на самом деле это не так, то возникает большая проблема. Надо формально выяснять, что на самом деле имеется в виду под 64-битным компьютером? То ли это ILP32LL, а может LP64 либо LLP64, а может ещё что-то другое? Не говоря уже о том, что тут имеется в виду под самим "компьютером"? Это ПК или мэйнфрейм, а может смартфон или контроллер, а может это машина Тьюринга? В итоге всё становится каким-то бессмысленным и туманным. И это не я его таким сделал, а твоё упрямое желание обязательно докопаться до самой сути.

Если утверждение не кажется очевидным, то, боюсь, что попытки дальше разложить его на части для анализа ничего не прояснят, а только всё запутают. И это не моя вина, а так устроен этот мир. Это всё та же самая старая философская дискуссия о противоречиях между редукционизмом и холизмом. А оно кому-то здесь нужно? Горгий вот так и говорил: «Ничего не существует; но даже если нечто существует, то оно не познаваемо; но даже если и познаваемо — то необъяснимо для другого». Ну, по крайней мере я так всё это вижу, как агностик :)

# Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-06 13:30:35


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

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

AL> А не надо сводить к трём числам. Я как раз максимально расширял понятие компьютера, а не сужал его до одного только ПК.

Я не говорил о ПК. Это тебе показалось, ты читал невнимательно. Я говорил, например, и о мэйнфреймах тоже. Если же расширять понятие компьютера до любого контроллера, то там разговор о 64-битах уже вообще лишён смысла.

vvs>> Нет, это ты просто играешь в слова. Здесь слово "просто" означает не отсутствие сложности, а это синоним слова "только", "с единственной целью". И это не моё злонамеренное желание всех запутать, а такое свойство языка: подавляющее большинство слов имеет много значений, понятных только из контекста. Я не виноват, что ты выбираешь только одно то значение, о котором я даже не думал. Разумеется, сводить весь язык только к нескольким простым понятиям я не вижу смысла. Мы же не в детском садике.

AL> То есть у тебя не было цели общаться. На площадке для общения. Ты странный.

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

Кстати, слово "группа" алгебраист понимает по-своему, рок музыкант имеет совсем другое представление, а у врача будет иное мнение. Объяснять каждое своё слово в совершенно иной среде не у каждого найдутся силы и желание. А у нас явно слишком разные интересы, возраст и окружение.

vvs>> Опять двадцать пять. С моей точки зрения тема уже известна. Я пытался её максимально прояснить, но тебе и этого всегда мало. Ну извини, объясняю, как умею. И я никого ни в чём не виню, а просто сообщаю, что без конца оправдываться, что я не верблюд, мне не интересно. Не для этого я сюда пришёл.

AL> Ты не пытался её максимально прояснить. Ты пытался её максимально запутать.

Нет. Тебе так только кажется, но это не означает, что всё так и есть на самом деле. Это тебе просто хочется так думать из упрямства.

vvs>> Это всё хорошо, но это только лично твоё понимание "общения". Я-то понимаю его иначе. Сколько людей - столько и мнений. Я не против пояснить свою точку зрения, пока это не превращается в замкнутый круг.

AL> Для меня общение - это в первую очередь обсуждение. Но для того, чтобы что-либо обсуждать, нужно определиться что же именно мы обсуждаем. И вот тут то и возникает проблема. Но если ты не ставишь целью помочь собеседнику понять тебя, то чем общение отличается от перекидывания случайными репликами?

Если ты чего-то не понял, то это не значит, что я не пытался тебе это объяснить. Это лишь означает, что попытка оказалась неудачной. Но из этого не следует, что я не пытался. Ну, тебе опять кажется, что я сделал недостаточно. А у меня другое мнение.

AL> Не нужно никуда лезть. Нужно всего лишь попытаться сказать что ты думаешь, а не что получится.

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

Кстати, а если я тебе дам текст на незнакомом языке, то ты тоже будешь возмущаться? Или начнёшь его учить, чтобы понять? Ты, наверное, скажешь, что там специально всё запутали, чтобы было максимально не похоже на русский язык? :)

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

AL> Вот да. Ты мне напоминаешь моих бывших уже начальников. Они тоже не давали никакой конкретики -- это давало им пространство для манёвра при нахождении крайних.

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

# Re: Солярисы
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-06-06 11:50:44


vvs> Кстати, напомнило, как много лет назад мы всем отделом доказывали нашему начальнику, что так делать нельзя, а он упрямо твердил, что у нас просто остутствует желание. В итоге мы сделали, как он хотел и получилось "как всегда". Однако его реакция была легендарной: "всё равно вы виноваты - не убедили". "У сильного всегда бессильный виноват" И.Крылов :)

Вот да. Ты мне напоминаешь моих бывших уже начальников. Они тоже не давали никакой конкретики -- это давало им пространство для манёвра при нахождении крайних.

+++ Caesium/0.4 RC1

# Re: Солярисы
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-06-06 11:50:44


AL>> Ты явно отвечаешь не на то, что я пишу. Я всего лишь сказал, что количество возможных трактовок обратно пропорционально смысловой нагрузке. Для коммуникации вредно наращивать многозначность своих слов. Хотя, если говорить не для того, чтобы тебя поняли, то можно и так.
vvs> Это и есть сказка про белого бычка. Откуда мне знать, какой смысл ты вкладываешь в мои слова? Я знаю только то, что я сам имею в виду. С таким же успехом и я могу утверждать, что ты не очень-то старался меня понять, но виноват, почему-то, только я.

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

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

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

vvs>>> У меня никогда не было цели просто пообщаться.
AL>> То есть у тебя была цель общаться сложно? Тогда да - превращение трактовки твоих слов в угадайку отличная политика.
vvs> Нет, это ты просто играешь в слова. Здесь слово "просто" означает не отсутствие сложности, а это синоним слова "только", "с единственной целью". И это не моё злонамеренное желание всех запутать, а такое свойство языка: подавляющее большинство слов имеет много значений, понятных только из контекста. Я не виноват, что ты выбираешь только одно то значение, о котором я даже не думал. Разумеется, сводить весь язык только к нескольким простым понятиям я не вижу смысла. Мы же не в детском садике.

То есть у тебя не было цели общаться. На площадке для общения. Ты странный.

vvs>>> Я надеюсь услышать что-нибудь интересное для себя. Если же у нас не находится общих интересов и мы во всём придерживаемся противоположных взглядов, то такое общение неизбежно заходит в тупик.
AL>> Если ты надеешься услышать что-нибудь интересное для себя, то неплохо было бы хотя бы однозначно обозначить тему. А то получается, что тебя поняли не так, как ты хотел, тебе ответили, виноват не ты. Хотя при прочтении твоих сообщений очень многие трактовки получаются совершенно равнозначны, если не знать, что происходит у тебя в голове.
vvs> Опять двадцать пять. С моей точки зрения тема уже известна. Я пытался её максимально прояснить, но тебе и этого всегда мало. Ну извини, объясняю, как умею. И я никого ни в чём не виню, а просто сообщаю, что без конца оправдываться, что я не верблюд, мне не интересно. Не для этого я сюда пришёл.

Ты не пытался её максимально прояснить. Ты пытался её максимально запутать.

AL>> Ну, раз общение это не то, что ты хочешь тут делать, то я не стану мешать тебе заниматься своими делами. Просто IDEC задумывался именно для общения, поэтому я и ориентируюсь тут на него :)
vvs> Это всё хорошо, но это только лично твоё понимание "общения". Я-то понимаю его иначе. Сколько людей - столько и мнений. Я не против пояснить свою точку зрения, пока это не превращается в замкнутый круг.

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

vvs> Кстати, есть такое расхожее выражение: "поставить себя на чужое место". Наши бесконечные препирательства по совершенно тривиальным вопросам демонстрируют, что лезть в чужую голову - занятие неблагодарное и отнимающее слишком много времени. И я не нахожу в таком "общении" никакого удовольствия.

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

+++ Caesium/0.4 RC1

# Re: Солярисы
std.hugeping
vvs(ping,12) — vvs
2023-06-05 16:45:08


Кстати, напомнило, как много лет назад мы всем отделом доказывали нашему начальнику, что так делать нельзя, а он упрямо твердил, что у нас просто остутствует желание. В итоге мы сделали, как он хотел и получилось "как всегда". Однако его реакция была легендарной: "всё равно вы виноваты - не убедили". "У сильного всегда бессильный виноват" И.Крылов :)

# Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-05 16:28:01


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

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

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

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

vvs>> У меня никогда не было цели просто пообщаться.

AL> То есть у тебя была цель общаться сложно? Тогда да - превращение трактовки твоих слов в угадайку отличная политика.

Нет, это ты просто играешь в слова. Здесь слово "просто" означает не отсутствие сложности, а это синоним слова "только", "с единственной целью". И это не моё злонамеренное желание всех запутать, а такое свойство языка: подавляющее большинство слов имеет много значений, понятных только из контекста. Я не виноват, что ты выбираешь только одно то значение, о котором я даже не думал. Разумеется, сводить весь язык только к нескольким простым понятиям я не вижу смысла. Мы же не в детском садике.

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

AL> Если ты надеешься услышать что-нибудь интересное для себя, то неплохо было бы хотя бы однозначно обозначить тему. А то получается, что тебя поняли не так, как ты хотел, тебе ответили, виноват не ты. Хотя при прочтении твоих сообщений очень многие трактовки получаются совершенно равнозначны, если не знать, что происходит у тебя в голове.

Опять двадцать пять. С моей точки зрения тема уже известна. Я пытался её максимально прояснить, но тебе и этого всегда мало. Ну извини, объясняю, как умею. И я никого ни в чём не виню, а просто сообщаю, что без конца оправдываться, что я не верблюд, мне не интересно. Не для этого я сюда пришёл.

AL> Ну, раз общение это не то, что ты хочешь тут делать, то я не стану мешать тебе заниматься своими делами. Просто IDEC задумывался именно для общения, поэтому я и ориентируюсь тут на него :)

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

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

# Re: Солярисы
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-06-05 11:33:10


AL>> Красивый текст. Только когда абстракция становится настолько абстрактной, что теряет смысл, она перестаёт работать. Очень важно чувствовать эту грань. Также важно, пользуясь абстракцией, не забывать, что если абстрагировался, то не надо заменять общей абстракцией частный конкретный случай (привет, компьютер == ПК).
vvs> Ты явно не понял, что сказал. Смысл не может быть для всех один. Для тебя здесь нет смысла, а я вижу глубокий смысл. Разговор зашёл в тупик, потому что мы всё время говорим на разных языках. Какое-то время я верил, что ты меня просто не понимаешь, но потом пришёл к выводу, что тебя такое мнение просто не интересует. Ну и ладно.

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

AL>> Короче говоря, если бы ты сам следовал тому, что ты пишешь, было бы гораздо проще с тобой общаться :)
vvs> У меня никогда не было цели просто пообщаться.

То есть у тебя была цель общаться сложно? Тогда да - превращение трактовки твоих слов в угадайку отличная политика.

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

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

Ну, раз общение это не то, что ты хочешь тут делать, то я не стану мешать тебе заниматься своими делами. Просто IDEC задумывался именно для общения, поэтому я и ориентируюсь тут на него :)

+++ Caesium/0.4 RC1

# Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-05-29 19:45:29


AL> Красивый текст. Только когда абстракция становится настолько абстрактной, что теряет смысл, она перестаёт работать. Очень важно чувствовать эту грань. Также важно, пользуясь абстракцией, не забывать, что если абстрагировался, то не надо заменять общей абстракцией частный конкретный случай (привет, компьютер == ПК).

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

AL> Короче говоря, если бы ты сам следовал тому, что ты пишешь, было бы гораздо проще с тобой общаться :)

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

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
vvs(ping,12) — hugeping
2023-05-27 20:31:48


Кому хочется впихнуть как можно больше, могут взглянуть на "Hello, world" в ELF всего 114 байт (это я знаю достаточно давно). А вот сегодня встретил компиляторы с Forth, Lisp и C всего 512 байт!

https://github.com/cesarblum/sectorforth
https://github.com/jart/sectorlisp
https://github.com/xorvoid/sectorc

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
hugeping(ping,1) — vvs
2023-05-27 20:03:16


vvs> У людей бывает очень разное понятие "выразительности", смотря о каком уровне абстракции идёт речь.

Согласен. Я это скорее в ироничной форме сказал. В том смысле, что в одну строку питона можно упихать кучу разных вещей. :)

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2023-05-25 06:23:46


hugeping> Давно хотел переписать свой клиент на Go или на Python. И всё-таки переписал: https://github.com/hugeping/plan9hacks/blob/master/linux/mu-query.py
hugeping> Код у него почище, чем грязная реализация на Lua и его можно понять. ;)
hugeping> Интересно, что не смотря на то, что python реализация на ~250 строк меньше, по объёму исходников оба скрипта очень близки. И это не смотря на выразительность Python и тот факт, что в Lua варианте пришлось многие функции писать самому...

Тоже заметил, что вроде на пайтоне и меньше строк, но объём кода на тех же задачах примерно тот же выходит. Правда я с Go сравнивал :)

+++ Caesium/0.4 RC1

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
vvs(ping,12) — hugeping
2023-05-24 13:31:09


hugeping> Код у него почище, чем грязная реализация на Lua и его можно понять. ;)

hugeping> Интересно, что не смотря на то, что python реализация на ~250 строк меньше, по объёму исходников оба скрипта очень близки. И это не смотря на выразительность Python и тот факт, что в Lua варианте пришлось многие функции писать самому...

У людей бывает очень разное понятие "выразительности", смотря о каком уровне абстракции идёт речь. Вот этот пример сортировки пузырьком на языке Wolfram мне представляется очень выразительным:
sortRule := {x___,y_,z_,k___} /; y>z -> {x,z,y,k}
{ 9, 5, 3, 1, 2, 4 } //. sortRule
(* = {1, 2, 3, 4, 5, 9} *)

Является ли выразительным машинный код? А FRACTRAN Конвея? А теория множеств?

P.S. Это я не для того чтобы кому-то возразить, а просто предлагаю посмотреть на красоту языка с разных сторон :) И кстати есть ведь ещё разница между синтаксисом и собственно семантикой. Как насчёт лиспа?

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
hugeping(ping,1) — hugeping
2023-05-24 09:32:15


Давно хотел переписать свой клиент на Go или на Python. И всё-таки переписал: https://github.com/hugeping/plan9hacks/blob/master/linux/mu-query.py

Код у него почище, чем грязная реализация на Lua и его можно понять. ;)

Интересно, что не смотря на то, что python реализация на ~250 строк меньше, по объёму исходников оба скрипта очень близки. И это не смотря на выразительность Python и тот факт, что в Lua варианте пришлось многие функции писать самому...

Прошло уже довольно много времени, а я всё-так же пользуюсь для работы с почтой acme + mu + mbsync + msmtp. Кстати, в апстрим mbsync уже всё хорошо с UTF-8, так что патчить его больше не надо.

https://club.hugeping.ru/lib/uploads/mu-query.png

# Re: Носители творчества
std.hugeping
vvs(ping,12) — hugeping
2023-05-19 15:35:29


hugeping> Я знаю, что я чувствую красный цвет не как длину волны, а как "красный". Это не значит что мое мироощущение при этом не существует. Напротив, в мироздании есть механизм который позволяет мне это делать. Восприятие красного -- это не только восприятие длин волн!

Как ты собираешься это объяснить слепому?

P.S. В книге Сойера "Прелюдия к математике" он любит проводить аналогию с разговором с ангелом по телефону. Ангел - не физическое существо и не обладает органами чувств, а ощущения словами по телефону передать тоже затруднительно. Тут и приходят на помощь рассуждения. Это особенно существенно для проведения различий между наглядной евклидовой геометрией и аналитической. Кстати есть фантастические книжки посвещённые четырехмерной геометрии (Эбботт и др.)

P.S. Edited: 2023-05-19 15:36:00

# Re: Носители творчества
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-05-19 13:21:25


AL> Я просто хотел сказать, что догматы они не сферические в вакууме, а должны иметь вполне себе практическое применение. Те же смертные грехи не имеют смысла в отрыве от реальности.

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

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

P.S. Я давно уже пришёл к выводу, что спекулятивная философия ничего не даёт на практике и на самом деле даже не отвечает на поставленные вопросы. На этом себе сломали зубы многие античные философы, например Парменид и Горгий. Вот Зенон утверждал, что чтобы сдвинуться с места надо сначала преодолеть бесконечное расстояние, а мы себе ходим, даже не задумываясь над этим противоречием. Складывается впечатление, что действием можно добиться больших результатов, чем одними разговорами :) Как там сказал Арнольд Амальрик? "Caedite eos. Novit enim Dominus qui sunt eius" Кстати это чуть ли не цитата из Библии.

# Re: Носители творчества
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-05-19 04:09:49


AL>> Ну мне неведомо как это работает в разрезе веры, я опираюсь исключительно в разрезе истории. Церковь в России вполне себе разрешала венчать девочек 12-13 лет. Как сейчас церковь относится к этому вопросу и рассматривается ли это церковью именно как вопрос морали?
vvs> Это просто очередной пример того, что любое, казалось бы очевидное на первый взгляд утверждение, если рассматривать его слишком детально, становится бессмысленным. Это такое свойство человеческого языка. Вроде понимаем, о чём говорим, а глядь - это просто пустой набор слов :) За то мне и нравится математика, что там всё гораздо строже (пока не лезешь в её основания :)

Я просто хотел сказать, что догматы они не сферические в вакууме, а должны иметь вполне себе практическое применение. Те же смертные грехи не имеют смысла в отрыве от реальности.

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

+++ Caesium/0.4 RC1

# Re: Носители творчества
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-05-18 13:07:18


AL> Ну мне неведомо как это работает в разрезе веры, я опираюсь исключительно в разрезе истории. Церковь в России вполне себе разрешала венчать девочек 12-13 лет. Как сейчас церковь относится к этому вопросу и рассматривается ли это церковью именно как вопрос морали?

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

# Re: Носители творчества
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-05-18 10:51:33


vvs> Относительность морали - это фишка как раз материалистического мировоззрения (ср. "нравственность - служанка потребности"). Религиозные догматы христианства и ислама (как минимум) её категорически не допускают, хотя на Западе последнее время заметно серьёзное послабление, особенно у католиков. В РПЦ, насколько я знаю, такое не одобряют. Более того, именно здесь проходит очень болезненная граница, связанная с противостоянием давлению западной морали (что бы это ни означало).

Ну мне неведомо как это работает в разрезе веры, я опираюсь исключительно в разрезе истории. Церковь в России вполне себе разрешала венчать девочек 12-13 лет. Как сейчас церковь относится к этому вопросу и рассматривается ли это церковью именно как вопрос морали?

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

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

+++ Caesium/0.4 RC1

# Re: Носители творчества
std.hugeping
vvs(ping,12) — hugeping
2023-05-17 15:44:29


Я даже попробую провести математическую аналогию (эка куда хватил :)

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

# Re: Носители творчества
std.hugeping
vvs(ping,12) — hugeping
2023-05-17 14:20:29


hugeping> Я об этой подмене и говорю!

hugeping> Разное, значит теряется "ценность"? :) Почему твоя, конкретно твоя совесть не является тем, чему можно доверять, если это "поисследовать", честно вглядевшись в себя? Ты человек, не надо этого стесняться и выкидывать все то, что невозможно разложить рассудочно. Можно же использовать все средства и возможности познания.

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

Ещё раз: я вовсе не противопоставляю разум морали, а предлагаю дополнять одно другим. Неизбежно возникающие противоречия можно рассматривать с точки зрения диалектики (не обязательно Гегелевской ;), а не отшатываться в ужасе. Проще вести с другими людьми диалог, если это вообще возможно и пока не поздно. Даже если эти люди мне и не всегда нравятся. А иначе неизбежны новые религиозные войны, коих и без того было предостаточно.

# Re: Носители творчества
std.hugeping
hugeping(ping,1) — vvs
2023-05-17 13:51:02


vvs> а дело в том, что оно у всех "разное".

Я об этой подмене и говорю!

Разное, значит теряется "ценность"? :) Почему твоя, конкретно твоя совесть не является тем, чему можно доверять, если это "поисследовать", честно вглядевшись в себя? Ты человек, не надо этого стесняться и выкидывать все то, что невозможно разложить рассудочно. Можно же использовать все средства и возможности познания.

# Re: Носители творчества
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-05-17 13:18:00


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

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

# Re: Носители творчества
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2023-05-17 12:36:28


vvs> То, что я оцениваю, как подлость, не обязательно является таким с точки зрения других людей. И кто из нас прав? Объективность оценки говорит о том, что каждый прав по-своему (или вообще все заблуждаются :). Абсолютная же мораль подразумевает, что есть "правильное" и "неправильное" мышление, что мне уже непонятно. Мне гораздо понятнее, когда говорят о наших и чуждых нам интересах. Иначе это уже какая-то философия, которой трудно давать рациональную оценку. Верующему здесь хватит только его веры, а вот я - агностик и мне её совсем не достаточно :( Математика мне ближе: там всё надо доказывать. Вот я и пытаюсь всё для себя обосновывать с рациональной точки зрения.

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

+++ Caesium/0.4 RC1

# Re: Носители творчества
std.hugeping
vvs(ping,12) — hugeping
2023-05-16 17:33:34


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

То, что я оцениваю, как подлость, не обязательно является таким с точки зрения других людей. И кто из нас прав? Объективность оценки говорит о том, что каждый прав по-своему (или вообще все заблуждаются :). Абсолютная же мораль подразумевает, что есть "правильное" и "неправильное" мышление, что мне уже непонятно. Мне гораздо понятнее, когда говорят о наших и чуждых нам интересах. Иначе это уже какая-то философия, которой трудно давать рациональную оценку. Верующему здесь хватит только его веры, а вот я - агностик и мне её совсем не достаточно :( Математика мне ближе: там всё надо доказывать. Вот я и пытаюсь всё для себя обосновывать с рациональной точки зрения.

# Re: Носители творчества
std.hugeping
hugeping(ping,1) — vvs
2023-05-15 19:29:00


vvs> Кстати, старый вопрос: является ли подлость просто такой точкой зрения? Я не могу удовлетворительно ответить на него. С одной стороны я не могу простить подлость, но с другой - холодный рассудок мне говорит, что я субъективен и это не научно.

Мне кажется тут и осуществляется подмена. Почему субъективное не является реальным? Почему субъективное считается чем то "не настоящим"? Я этого не понимаю! Не можем померить прибором, значит этого нет? Ну, это же ерунда! Я знаю, что я чувствую красный цвет не как длину волны, а как "красный". Это не значит что мое мироощущение при этом не существует. Напротив, в мироздании есть механизм который позволяет мне это делать. Восприятие красного -- это не только восприятие длин волн!

# Re: Носители творчества
std.hugeping
vvs(ping,12) — vvs
2023-05-13 17:48:59


Кстати, старый вопрос: является ли подлость просто такой точкой зрения? Я не могу удовлетворительно ответить на него. С одной стороны я не могу простить подлость, но с другой - холодный рассудок мне говорит, что я субъективен и это не научно. Во мне два человека: один слушает сердце, а другой думает головой и оба - это я. Отсюда двусмысленность, которую я не могу окончательно победить никогда. Смешно думать, что кого-то считают шизофрениками, а я себя считаю здоровым человеком. Что есть тогда здравый рассудок? :)

# Re: Носители творчества
std.hugeping
vvs(ping,12) — hugeping
2023-05-13 17:33:03


Один российский журналист (фамилию которого я сейчас не помню) недавно написал, что он очень любил песни Булата Окуджавы. Пока тот не подписал письмо к Ельцину с призывом "убить гадину" во время обстрела Верховного Cовета в 1993. А тот самый журналист тогда был как раз в этом самом доме. После этого он на дух не мог переносить Окуджаву и его песни. Однако спустя уже много лет, в какой-то момент он услышал его песню и, как он сам говорит, простил тому всё.

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