RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13
[>] Работа
std.hugeping
hugeping(ping,1) — All
2021-06-29 14:31:03


Прочитал на днях книгу про работу в метро.

Называется "Не прислоняться". Один из авторов -- Макс Рублёв (я так понял -- это псевдоним), бывший машинист и автор блога в ЖЖ известный под ником Метроэльф https://metroelf.livejournal.com/

Книга очень захватила! Прочитал буквально за вечер. Где-то слышал такую мысль, что читать об особенностях чей-то работы всегда интересно. И это действительно так. Например, есть такая книга "Работа" Стадса Теркела. Там главы оформлены как интервью с обычными людьми, представителями разных профессий. Известная и популярная книга. Я читал её фрагментами. Больше всего запомнилась глава "Телефонистка".

> Один человек попросил: «Что-то мне тоскливо, поговорите со мной, хорошо?» А я ответила: «Простите, пока не могу». Но ведь, правда, же не могу. (Смеется.) Люди общаются благодаря мне, но не со мной.

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

Кстати, на "Телефонистку" я набрёл после просмотра фильма "Бескрайняя ночь" 2019 года, где нет ничего, кроме атмосферы летней ночи, тайны и работы на аналоговом телефонном коммутаторе. Но вот, что-то всколыхнулось от этого фильма. Что-то детское, настоящее, аналоговое...

Так вот, возвращаясь к "Не прислоняться". В книге есть романтика. Есть контакт с людьми, с пассажирами, работниками метро, с читателями книги... Есть искра. И книга становится интересной не только (и не столько) потому, что раскрывает некоторые нюансы профессии, но, главным образом, благодаря наличию этой искры. Из-за понимания, что все мы люди, все мы в одной лодке.

> Последний круг. Легкий сквозняк гуляет по кабине. На открытом участке – ливень. Тугие струи смывают со стекла пыль и грязь. Открываю окно. Жадно впитываю наполненный влагой воздух. Хочешь быть счастливым? Будь им! Станция…

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

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

Но, "рыночек порешал"...

Мне повезло, с детства я выбрал профессию, которая оказалась востребованной и хорошо оплачиваемой на рынке. Но была ли в этом моя заслуга? Если честно, я не уверен. Я всегда занимался тем, чем мне было интересно заниматься. К чему, вероятно, у меня были природные способности и задатки.

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

А ещё я часто вспоминаю работу в контексте книги Бытия.

> Быт 3:19 в поте лица твоего будешь есть хлеб, доколе не возвратишься в землю, из которой ты взят, ибо прах ты и в прах возвратишься.

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

А книжка -- хорошая! Рекомендую.

[>] Re: Работа
std.hugeping
vvs(ping,12) — hugeping
2021-06-29 15:11:47


Больше всех получают мошенники, воры и спекулянты, а вовсе не программисты. Не надо себе льстить ;) А тем более не остальные работники умственного труда. А производитель и на рынке всегда получал меньше спекулянта. Поэтому промышленный капитализм со временем плавно превратился в элегантный финансовый. Да, рыночек порешал.

Кстати, насчёт программистов. Самое золотое время для настоящего хакера было в 60-70-х, когда техника стоила на вес золота, а память измерялась в килобайтах. Массовое, дешевое производство убило всё творчество.

[>] Re: Работа
std.hugeping
hugeping(ping,1) — vvs
2021-06-29 15:28:54


vvs> Больше всех получают мошенники, воры и спекулянты, а вовсе не программисты. Не надо себе льстить ;)

Так я и не писал про то, что программисты получают больше всех. Мысль была не в этом.

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

[>] Re: Работа
std.hugeping
vvs(ping,12) — hugeping
2021-06-29 16:09:55


hugeping> Так я и не писал про то, что программисты получают больше всех. Мысль была не в этом.

Просто хотелось отвести несправедливое обвинение в сверхдоходах от программистов. Классовая солидарность, все же ;) А мне таки приходилось такие обвинения слышать, хотя я даже и не профессиональный программист ни разу (ну разве что немного, по молодости) :)

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

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

[>] Пётр Мамонов
std.hugeping
hugeping(ping,1) — hugeping
2021-07-15 19:33:19


Упокой, Господи, душу раба Твоего Петра.


Посмотрел интервью, очень тёплое и искреннее ощущение.

https://m.youtube.com/watch?v=MQNahSdqFCU

[>] Книги, которые на меня повлияли
std.hugeping
hugeping(ping,1) — All
2021-07-25 20:01:11


> Значит, нужные книги ты в детстве читал! (с) Высоцкий

* Книги, которые на меня повлияли. *

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

Сначала под пунктом 1 я хотел поместить Евангелие. Но потом подумал, что как то не очень правильно помещать в один список откровение Божие и другую литературу. Я помню место в Евангелие, которое стало "живым" чудом и мне сложно и неуютно рассматривать это в плоскости "философии", интеллекта и подобного. Поэтому, Евангелие подразумевается, но не под пунктом "номер 1", а как бы в другой плоскости, расположенной выше. Я напишу об этом в gemini, когда-нибудь позже.

Итак, что дальше? "Диалоги" В. Свенцицкого. Книжка, которую посоветовал мне мой друг. Вроде бы простая, но именно она подтолкнула меня к изменению моего отношения к христианству. "Братья Карамазовы". "Диалектика мифа". "Новый ум короля" Пенроуза... (книга, в которой я находил 100% совпадения со своими собственными мыслями и даже мысленными экспериментами).

А до этого была гремучая смесь из произведений Экзюпери, фантастики Филип К. Дика, эзотерики Р. Баха и книг различных философов (среди которых запомнилась "Я и ты" Мартина Бубера). И, возможно, всё это тоже не было лишним. Хотя, большую часть того что я читал в этот период я не стал бы включать в список.

Но, мысленно отбирая книги, я заметил, что что-то не так.

Дело в том, что большинство из этих книг читались уже в состоянии "предожидания". И во время чтения возникало "узнавание" или вербализация того, что я ожидал найти. Да, "Диалектика мифа", например, вывернула моё сознание. Но я, похоже, внутренне был к этому уже подготовлен, когда начинал читать. Я был в восторге от мыслей Бердяева. Но не потому ли, что они совпадали с моими? Ну и дальше можно продолжать в том же духе.

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

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

Знакомство с первой книгой состоялось так.

Мне лет 13. Мы с отцом гуляем по нашему району и обнаруживаем библиотеку. Заходим внутрь. Отец предлагает чтобы я взял что-нибудь почитать. Что меня интересует? Конечно, фантастика! Желательно, развлекательная. На полке стоит убитая в хлам книжка небольшого формата в тонком переплёте. Так как я поскорее хочу покинуть это место и выйти на свежий воздух, быстро пролистав томик, говорю: "Беру эту!".

Я потом долго искал книжку по описанию в интернете и нашёл! Это: "Опрокинутый мир" К. Приста.

Дальше, будут спойлеры. Чтобы не пересказывать сюжет, я просто помещу ссылку на статью в wiki: https://ru.wikipedia.org/wiki/Опрокинутый_мир

Я помню, что "Опрокинутый мир" подействовал на меня как удар. Привычная почва ушла из под ног и моё восприятие вывернулось наизнанку. Прямо как у героя романа.

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

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

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

Я прочитал рассказ (как оказалось, повесть), который для меня повторил мотивы, которые я увидел в "Опрокинутом мире". Речь идёт о "Парне из преисподней": https://ru.wikipedia.org/wiki/Парень_из_преисподней

Перечитав повесть недавно, я сравнил впечатления со школьными воспоминаниями и они совпали не везде. В памяти я снова получил закрепление понимания относительности реальности. Или, скорее, реальности как жизни. Субъективность всегда воспринималась как нечто ненастоящее, ложное. Но я начал понимать, что это заблуждение! Что субъективное восприятие и есть настоящая реальность, как и сама жизнь. Нередуцируемая на что-то более примитивное.

Реальность парня из преисподней в моих воспоминаниях не была разрушена. Он жил войной, и война осталась с ним навсегда. Он не смог остаться в "новом мире", и вернулся в старый. Разрушенный, больной, но настоящий дом. Его миф устоял.

> – Я хочу знать, кто победил.
> Корней очень долго молчал, по лицу его ничего нельзя было разобрать. Гаг сел – не держали ноги. Рядом из траншеи торчала голова Драмбы. Гаг бессмысленно уставился на нее.
> – Я ведь уже объяснял тебе, – сказал наконец Корней. – Никто не победил. Вернее, все победили.
> Гаг процедил сквозь зубы:
> – Объясняли... Мало ли что вы мне объясняли. Я этого не понимаю. У кого осталось устье Тары? Это, может быть, вам все равно, у кого оно осталось, а нам не все равно!
> Корней медленно покачал головой.
> – Вам тоже все равно, – устало сказал он. – Армий там больше нет – только гражданское население...
> – Ага! – сказал Гаг. – Значит, крысоедов оттуда выбили?
> – Да нет же... – Корней страдальчески сморщился. – Армий вообще больше не существует, понимаешь? Из устья Тары никто никого не выбивал. Просто и алайцы, и имперцы побросали оружие и разошлись по домам.
> – Это невозможно, – сказал Гаг спокойно. – Я не понимаю, зачем вы мне все это рассказываете, Корней. Я вам не верю. Я вообще не понимаю, чего вам от меня надо. Зачем вы меня здесь держите? Если я вам не нужен – отпустите. А если нужен – говорите прямо...

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

В общем, список из книг я так и не составил. Но в очередной раз понял, что записывать прочитанное стоит. Чтобы не искать это потом долго и мучительно в интернете. :)

[>] Re: Книги, которые на меня повлияли
std.hugeping
vvs(ping,12) — hugeping
2021-07-25 23:27:31


Книг я читал в детстве так много, что никакой список не получится. Точнее будет хаос :)

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

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

[>] Re: Книги, которые на меня повлияли
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-07-26 09:09:01


Очень жалею, что список веду всего третий год.

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

И всё вместе так или иначе в итоге повлияло и на выбор профессии и специализации. Именно научная фантастика привела к увлечению техникой и электроникой.

[>] Надвигается беда
std.hugeping
hugeping(ping,1) — All
2021-09-04 08:54:33


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

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

## Рей Бредбери. Надвигается беда

В детстве и в институте я не очень любил Бредбери. Тогда я читал фантастику запоем, но другую -- понятную мне. А Бредбери вызывал скорее недоумение. О чём это всё? И только в зрелом возрасте я обнаружил, что он стал мне ближе и понятней. По восприятию, где-то рядом с Гофманом, которого я тоже начал открывать.

Книга отличная. Читал и не мог остановиться. Близко было всё. И главные герои -- подростки. И религиозные мотивы в фундаменте. И переплетение реального и идеального.

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

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

> Мы разжигаем в своих помыслах страсть, зависть, похоть, окисляем их в наших душах, и все это срывается с наших глаз, с наших губ, с наших рук, как с антенн, работающих, уж не знаю, на длинных или на коротких волнах. Но хозяева балаганных уродов знают, они давно научились принимать эти сигналы и не преминут урвать здесь свое. Карнавал не спешит, он знает, что на любом перекрестке найдет желающих подкормить его пинтой похотливой страсти или квартой лютой ненависти. Вот чем жив Карнавал: ядом грехов, творимых нами по отношению друг к другу, ферментами наших ужасных помыслов!

Аллюзия была настолько сильная, что ошибиться невозможно.

> ... Одного только не говорят они людям, катающимся под их музыку...
> - Чего? - не утерпел Джим.
> - А того, что если ты в одном обличье стал несчастным грешником, то и в любом другом им останешься.

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

> - Эй, что вы там прижимаете? - М-р Дарк прищурился. А, Библия! Очаровательно! Как это по-детски наивно и свежо.
> - Вы читали ее, мистер Дарк?
> - Представьте, читал. Скажу даже больше. Каждую главу этой книги, каждый стих вы можете прочесть на мне, сэр...

Но всё-таки, как мне кажется, назвать повесть христианской будет не вполне правдой. Ближе к концу события развиваются в таком ключе, что в какой-то момент я даже почувствовал недоумение. Так что же такое карнавал? И кто такой Дарк? Почему борьба с ним возможна именно тем способом, который обнаружил Чарьльз Хэллуэй?

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

Можно ли верить Дарку, отцу лжи? Но и Чарльз Хэллуэй, порой, сообщает нам со страниц книги нечто не всегда понятное.

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

> "У Зла есть только одна сила, та, которой наделяем его мы. От меня ты ничего не получишь. Наоборот, я заберу у тебя все. И тогда тебе останется только погибнуть".

И вот мы уже почти добрались до конца. Счастливого конца?

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

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

P.S. Кстати, такое же разочарование было у меня от просмотра фильма "1984", который на фоне книги показался блеклым и невыразительным.

[>] 0 или 1
std.hugeping
hugeping(ping,1) — All
2021-09-21 15:32:40


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

Не удивительно, что с годами это начинает отражаться и на психике. Один из таких "синдромов" я замечаю у себя и у некоторых знакомых программистов. Я назвал его синдром "0 или 1". Проявляется он в различных формах, но стоит за всем одно и то же.

Если высказано какое-либо суждение, ты начинаешь его раскручивать и доводить до логического конца. Интерпретация событий всегда чёрно-белая. 0 или 1? Ведь нужен конкретный и простой факт в основе. То, что хорошо помогает искать ошибки может навредить в общении. Например?

> - Смотри, я тут игру написал Color Lines.
> - Неплохо. Только цвета шариков мне не нравятся.
> - А мне, кажется, красиво.
> - Нет, слишком яркие.

(сценарий 0) Я подобрал плохие цвета. -> Они мне нравятся, значит, у меня нет вкуса. -> Зря я написал игру.

(сценарий 1) Цвета мне нравятся, а оппоненту -- нет. -> У оппонента нет вкуса, не надо учитывать его мнение. -> Зря я его спросил.

Следствие синдрома. "Если что-то может случиться, то это обязательно случится." Перекликается с законами Мерфи, да? Не случайно, ой не случайно... :)

> - Где мой паспорт?
> - Зачем тебе?
> - Я всегда беру паспорт, когда выхожу на улицу... И, кстати, где зонт?

Усиление следствия. "Если что-то случится в будущем, то это уже случилось."

> Мы смертны -> мы уже мертвы -> нас не существует и никогда не существовало.

Ещё одно следствие -- если назревает конфликт, нет смысла тянуть, ведь "он уже случился".

> - Не могу тебя видеть!
> - Если мы враги, то давай расстанемся. Если нет, то зачем эта ссора?

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

> - Отрежь кусочек скотча.
> - Какой длины?
> - Просто кусочек скотча.
> - Для какой задачи нужен скотч? (попытка узнать точную длину отрезка под задачу)
> - Блин, да ты издеваешься!

// Все диалоги являются вымышленными, любое сходство -- случайно.

Годами выработанная привычка сводить всё к "да" или "нет", "всё" или "ничего", 0 или 1 -- рано или поздно находит выход, нередко приводя к раздражению, непониманию, ссорам.

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

Когда я слышу очередную "печальную" новость про программиста, я всегда с сожалением думаю, что не последнюю роль здесь сыграл синдром 0 или 1.

Мне кажется, любой программист в качестве противоядия должен иметь "аналоговое" хобби. Велосипед, гитара, рыбалка... Что угодно, что позволяет не терять связь с реальным миром и напоминать себе, что не всё решается через 0 или 1.

Берегите себя!

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-09-21 17:21:11


Ой какая вкусная тема. Спасибо за нее!

Я надеюсь это будет доооолгое обсуждение, на много дней.

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

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

[>] Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-09-21 19:47:10


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

> Программист, который не любит математические головоломки - это любопытная экзотика. Возможно он просто не умеет их готовить? (изучаем ещё и кулинарию ;)

В повседневной жизни я встречал программистов-математиков и программистов-инженеров. Я скорее отношусь ко вторым.

"Он делает всё точно так, как я скажу! Даже, если я ошибаюсь!" Эта была основная мысль, которую я помню в процессе написания своей первой программы и она дала толчок всему остальному.

Никогда не умел нормально (да и не любил) играть в шахматы. Решать математические головоломки. Терпеть не мог квесты с вставками игрушек на логику. (Например, были такие в Машинариуме).

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

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-09-21 20:23:54


hugeping> В повседневной жизни я встречал программистов-математиков и программистов-инженеров. Я скорее отношусь ко вторым.

hugeping> "Он делает всё точно так, как я скажу! Даже, если я ошибаюсь!" Эта была основная мысль, которую я помню в процессе написания своей первой программы и она дала толчок всему остальному.

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

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

hugeping> Никогда не умел нормально (да и не любил) играть в шахматы. Решать математические головоломки. Терпеть не мог квесты с вставками игрушек на логику. (Например, были такие в Машинариуме).

Ты не поверишь, но я не умею и не люблю играть в шахматы, хотя и знаю правила. Зато любил играть в преферанс :)

hugeping> Правда, очень любил стереометрию в школе, например. Решал большинство задач интуитивно и быстро.

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

За последние годы я узнал одну важную истину. Всякому овощу - своё время. Кто-то становится религиозным, а кто-то увлекается математикой. Может для тебя время математики ещё не наступило, а я ещё поверю в Бога каким-то своим, особенным путём :)
P.S. Edited: 2021-09-21 20:24:51

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-09-22 23:08:29


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

Только я не согласен с тем, что это особенность программистов :) Это свойство любого аналитического склада ума. Просто так получается, что среди своего круга общения это наиболее заметно. А общаемся мы чаще всего с кем? Правильно - с коллегами :)

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

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-09-23 13:21:32


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

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

Иными словами, я хочу сказать, что человек - активный преобразователь мира, а не просто сторонний наблюдатель. Так меня воспитали и ничего тут изменить нельзя, да я и не вижу такой необходимости. Кстати, библия утверждает, что мы созданы по образу и подобию Божию. Не в этом ли дело? :)
P.S. Edited: 2021-09-23 13:24:12

[>] Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-09-23 13:41:42


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

Моя заметка в основном о том, что одно дело -- те вещи, которые мы создаём (и, поэтому, осознаём и подчиняем их логике), а другое дело -- мы сами и другие люди, восприятие мира. Жизнь не редуцируется. В лучшем случае -- она диалектична. Законы, которые работают в логике -- работают не везде. Попытка обосновать всю нашу жизнь логически, научно или как-то ещё уложить в непротиворечивую "теорию" неизбежно будут содержать сингулярности. В нас есть (как в творении Божьем) бесконечность внутри. Тот же пример рассуждения: я смертен значит меня не существует, при кажущемся парадоксе мне соверешенно (как идеалисту) понятен. Если наше существование не утверждено Богом -- нас просто не существует.

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

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

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-09-23 14:22:11


hugeping> Моя заметка в основном о том, что одно дело -- те вещи, которые мы создаём (и, поэтому, осознаём и подчиняем их логике), а другое дело -- мы сами и другие люди, восприятие мира. Жизнь не редуцируется. В лучшем случае -- она диалектична.

Ха-ха. Тут я с тобой полностью согласен. И это явно основная причина, почему для меня важно моё увлечение математикой. Правда, в отличие от тебя, я никогда раньше не замечал "искусcтвенности" программирования - ведь для меня это всегда была только игра. К математике же я относился всегда серьёзно и для того, чтобы осознать, что она лишь человеческое изобретение мне понадобились горы литературы по философии.

> Законы, которые работают в логике -- работают не везде. Попытка обосновать всю нашу жизнь логически, научно или как-то ещё уложить в непротиворечивую "теорию" неизбежно будут содержать сингулярности. В нас есть (как в творении Божьем) бесконечность внутри. Тот же пример рассуждения: я смертен значит меня не существует, при кажущемся парадоксе мне соверешенно (как идеалисту) понятен. Если наше существование не утверждено Богом -- нас просто не существует.

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

hugeping> Это "философская" часть заметки, которая присутствует в ней неявно. А явно -- просто бытовая проблема, когда твоя "логичность" доводит до нервных срывов и конфликтов, потому что доведённая до абсолюта -- она в жизни только мешает.

Да, верно. Если присутствует какая-то незавершённость, то она меня будет постоянно беспокоить. В жизни много чего мешает, но и помогает тоже.

hugeping> Но я ни с чем не спорю, просто пояснил другими словами свою мысль.

А я не вижу ничего плохого в спорах, если они о разных точках зрения - это обогащает наш жизненный опыт.

P.S. Совсем другое дело - проявление неуважения к собеседнику, чего я в людях не выношу. Моё определение подлости: обращение с людьми не по правилам, общим для всех порядочных людей, а по критерию личной пользы и положению в какой-то иерархии, да ещё и хамство и притворство. И это моя мораль, к которой у меня отношение исключительно чёрно-белое и это меня не тяготит.
P.S. Edited: 2021-09-23 14:23:05

[>] Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-10-04 08:41:28


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

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

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

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

P.S. Можно ещё Столлмана вспомнить. :)

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-04 13:38:34


hugeping> Общение по сети действует как алкоголь - ослабляя сдерживающие факторы.

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

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

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

hugeping> Агрессивное общение spline/kerber меня печалит особенно, потому что это мои сетевые друзья. И я знаю этих людей с хорошей стороны, но агрессивно-прямая манера поведения -- конечно многих пугает.

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

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

hugeping> P.S. Можно ещё Столлмана вспомнить. :)

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

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

[>] Re: 0 или 1
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-10-04 17:43:40


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

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

Ведь именно такое поведение ты считаешь наиболее приемлемым и правильным. Я тебя правильно понимаю? Или есть нюансы? Или я не понимаю и это другое?

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-04 20:53:19


hugeping> Агрессивное общение spline/kerber меня печалит особенно, потому что это мои сетевые друзья. И я знаю этих людей с хорошей стороны, но агрессивно-прямая манера поведения -- конечно многих пугает.

Честно говоря, для меня эта тема была уже закрыта. Я высказал здесь своё мнение только чтобы до конца объяснить своё отношение и во избежание обвинений в предвзятости меня самого. А вот в предвзятой обстановке на форуме я такой возможности просто не вижу.

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

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

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

P.P.S. Заранее приношу извинения за этот поток мыслей. И давайте уже закроем эту тему совсем. Форумов всяких много, а свои нервы дороже. И вообще, призываю всегда общаться без ненужной агрессивности, тогда и проблем меньше будет для всех.

[>] Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-10-04 22:41:23


vvs> Честно говоря, для меня эта тема была уже закрыта. Я высказал здесь своё мнение только чтобы до конца объяснить своё отношение и во избежание обвинений в предвзятости меня самого. А вот в предвзятой обстановке на форуме я такой возможности просто не вижу.

Да, давай закроем. Я с твоим мнением согласен в той части, что касается хамства и перехода на личности. Но вмешиваться в процесс я не хочу. Форум я "дропнул" и если бы не spline, его бы не было сейчас вообще. Я модерировал его тоже не лучшим образом и тоже, скорее в авторитарном режиме (что мне не нравилось). В поддержке репозитория я тоже себя дескредитировал. Так что это spline сейчас разгребает мои долги.

Все мы имеем свои особенности. Я привык к резкости и kerber и spline и как то делаю поправку на неё. Меня могут тоже послать, но и я в принципе могу это сделать. Так и живём. Но, в общем, прими мои извинения за ситуацию. Можешь писать здесь спокойно. Если дойдёт до конфликтов и тут, я решу проблему на своей площадке.

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-04 23:27:32


hugeping> Форум я "дропнул" и если бы не spline, его бы не было сейчас вообще. Я модерировал его тоже не лучшим образом и тоже, скорее в авторитарном режиме (что мне не нравилось). В поддержке репозитория я тоже себя дескредитировал. Так что это spline сейчас разгребает мои долги.

Самобичевание, конечно, делает честь :) Но не стоит преувеличивать свои грехи.

hugeping> Все мы имеем свои особенности. Я привык к резкости и kerber и spline и как то делаю поправку на неё. Меня могут тоже послать, но и я в принципе могу это сделать. Так и живём.

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

> Но, в общем, прими мои извинения за ситуацию.

Если тебя это волнует, то это лишнее. Я не вижу здесь твоей активной вины. А за косвенные последствия может нести ответственность только всезнающий Бог.

P.S. В жизни мне себя сдерживать гораздо сложнее. Поэтому пожелаю всем нам побольше сдержанности :)

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-11 14:03:21


>> - Смотри, я тут игру написал Color Lines.
>> - Неплохо. Только цвета шариков мне не нравятся.
>> - А мне, кажется, красиво.
>> - Нет, слишком яркие.

hugeping> (сценарий 0) Я подобрал плохие цвета. -> Они мне нравятся, значит, у меня нет вкуса. -> Зря я написал игру.

hugeping> (сценарий 1) Цвета мне нравятся, а оппоненту -- нет. -> У оппонента нет вкуса, не надо учитывать его мнение. -> Зря я его спросил.

Навеяло. Вариант номер три:

— Правда ли, что шахматист Петросян выиграл в лотерею тысячу рублей?
— Правда, только не шахматист Петросян, а футболист «Арарата» Акопян, и не тысячу, а десять тысяч, и не рублей, а долларов, и не в лотерею, а в карты, и не выиграл, а проиграл.

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

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

P.S. Смешной момент, возникший при чтении этого учебника - что эта логика понятна только тем, кто читает учебники и бесполезна всем остальным :)

[>] Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-10-12 11:15:18


vvs> Иногда даже возникает сомнение: а действительно ли многие люди говорят на одном со мной языке?

Вот-вот... ;) Скорее всего на разных. Особенно, когда речь заходит об абстрактных понятиях. И дело тут мне кажется не только в языке, но и в том, как ощущаются понятия (или не ощущаются вообще).

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

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-12 14:38:16


hugeping> Вот-вот... ;) Скорее всего на разных. Особенно, когда речь заходит об абстрактных понятиях. И дело тут мне кажется не только в языке, но и в том, как ощущаются понятия (или не ощущаются вообще).

Если ещё не читал, рекомендую книгу Д.Хофштадтера "Гёдель, Эшер, Бах: эта бесконечная гирлянда".

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

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

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

P.S. Ещё говорят, что Билл Гейтс как-то сказал, что тот, кто полностью прочёл "Искусство программирования для ЭВМ" Д.Кнута может смело присылать ему своё резюме :)

[>] Re: 0 или 1
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-10-13 06:31:59


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

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

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

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

[>] Re: 0 или 1
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2021-10-13 08:08:49


AL> Саму проблему я примерно понял, но не понял откуда вообще берётся этот вопрос.

Я, в общем, об этом и говорю. Остальные рассуждения, следствие вот этой вот поворотной точки. Я где-то кажется цитировал Джона Чалмерса, но не могу найти сейчас. Так что ещё раз приведу.

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

...

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

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

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

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

Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса.

[>] Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-13 14:41:57


hugeping> Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса.

Кстати, о проблеме существования. Математик говорит, что есть топологическое пространство. Обыватель говорит, что он его не видит, следовательно его не существует и это пустая болтовня. Лично я здесь и вижу то самое разделение на вульгарных материалистов и идеалистов. Понятно, что у вульгарного материалиста точка зрения часто не совпадает с идеалистами.

P.S. Почему говорю о "вульгарном" материализме? Потому что далеко не все материалисты основываются исключительно на личном эмпирическом опыте.

[>] Редактор acme: пишем почтовый клиент
std.hugeping
hugeping(ping,1) — All
2021-10-13 17:46:59


Медленно, но верно, редактор acme становится моим основным редактором-средой в Linux. Почему это происходит, вопрос отдельный и он не сводится к утилитарности. Проще, удобнее, быстрее -- это всё категории, которые в большей степени определяются нашими привычками. А мной в IT движет любопытство и тяга к простоте.

Идея acme очень простая, но при этом мощная. Это не редактор, это прослойка между Unix средой и человеком. Когда вы работаете с acme, "редактором" становится вся ОС. В начале это очень непривычно, но потом -- затягивает.

До последнего момента в качестве основного редактора я пользовался emacs и пользовался им как средой. То-есть, кроме собственно редактирования файлов я читал в нём почту (mu4e), общался в телеграм (telega.el), читал pdf ну и так далее...

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

Вероятно, можно было бы завести upas, который есть в составе plan9port, но мне этот вариант не очень подходит. Потому что я параноик. Так как почтовые серверы мне не принадлежат у меня есть непреодолимое желание хранить копию своих почтовых ящиков локально на диске. Кроме того, это даёт возможность быстро искать нужное письмо. Поэтому я пошёл другим путём.

# Синхронизация почты mbsync

Для синхронизации почты между Maildir на диске и imap на сервере нашлась отличная штука: isync (или mbsync). Замечательна она тем, что синхронизация работает в обе стороны. То-есть, удаляя письмо в Maildir вы тем самым удаляете его в imap mailbox. Ну и так далее. Таким образом, вы получаете единый срез почты на многих машинах и всё это прекрасным образом синхронизируется через imap.

Конфигурация выглядит примерно так:

IMAPAccount gmail
Host imap.gmail.com
User user@gmail.com
Pass password
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt

IMAPStore gmail-remote
UseUTF8Mailboxes yes
Account gmail

MaildirStore gmail-local
SubFolders Verbatim
Path ~/Mail/gmail/
Inbox ~/Mail/gmail/Inbox

Channel gmail
Far :gmail-remote:
Near :gmail-local:
Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/9front"
Create Both
Expunge Both
SyncState *

Правда, mbsync из апстрима создаёт каталоги на диске в кодировке UTF-7. Но в aur есть пакет с поддержкой UTF-8. Обратите внимание на UseUTF8Mailboxes в конфиге. Для других Linux можно собрать версию отсюда: https://sourceforge.net/u/shashurup/isync/ci/utf8-mailboxes/tree/

После того, как всё настроили, можно поставить задачу на таймер в systemd или cron и всё.

# Индексация

Не так давно я открыл для себя mu. Mu позволяет индексировать почту в Maildir и дальше делать выборку, показ писем, распаковку аттачей и так далее. И всё это очень быстро. Вместе с mu идёт почтовый клиент для emacs -- mu4e.

Для создания базы просто делаем что-то вроде:

$ mu init --my-address='ваш емейл'

И потом периодически делаем индексацию:

$ mu index

# Идея почтового клиента на acme

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

$ mu find --sortfield d --reverse "" | head -n10

Чтобы просмотреть сообщение, вы должны указать путь к конкретному файлу в Maildir. Например:

mu view `mu find "" --sortfield d --reverse -f l | head -n1`

Конечно, пользоваться в таком виде почтой малореально, но возможностей для скриптования -- масса. И когда я это понял, то решил написать свой фронтенд к mu для acme.

# Приложение на acme

Acme с помощью файловой системы предоставляет доступ к некоторым функциям по работе с своими окнами, которых оказывается достаточно для написания "приложений". Если вы работаете в Plan9, то файловая система доступна всегда. Если же вы запускаете acme в рамках plan9port, то для доступа к ней можно:

1. Использовать утилиту 9p
2. Подмонтировать ФС через fuse: 9pfuse

Допустим, у нас есть скрипт hello, который доступен по PATH. Если запустить acme и вписать hello в заголовок главного окна (там где Newcol Kill Putall Dump..), а потом нажать на hello 2-й кнопкой мыши, то скрипт запустится.

Когда скрипт запускается в рамках acme, то переменная окружения winid содержит номер текущего окна или 0, если нет никаких открытых окон, кроме главного.

Для работы с файловой системы acme пока будем пользоваться 9p.

#!/bin/sh
9p ls acme
9p read acme acme/$winid/tag

Запустите этот вариант скрипта и увидите в отдельном окне корень ФС acme и список пунктов меню вашего текущего активного окна (если такое есть).

То же самое можно сделать с fuse:

#!/bin/sh
mnt=`mktemp -d /tmp/acmeXXXX`
9pfuse `namespace`/acme $mnt

ls $mnt
cat $mnt/$winid/tag

fusermount -u "$mnt" && rmdir "$mnt"

На самом деле, в теории, fuse вариант удобнее и быстрее, но я столкнулся с проблемой. Мой ноутбук с ArchLinux не хотел уходить в сон, пока есть хоть одна подмонтированная точка fuse. Так что приходится всё время монтировать и размонтировать, что не очень удобно.

В man 4 acme (из plan9port) описана файловая система acme. Я не буду здесь пересказывать эту информацию, но отмечу только некоторые моменты с которыми столкнулся.

1. По идее, мы можем считать позицию селектора (курсор + выделение) с помощью записи в ctl строки addr=dot и и последующего чтения из addr. Однако, при открытии addr он каждый раз ресетится. Таким образом, с помощью 9p вы не сможете получить текущую позицию курсора, так как это две операции: запись addr=dot и чтение addr. А нужно, открыть (и не закрывать addr), потом записать addr=dot, потом прочитать addr. Это можно проделать при использовании 9pfuse. Например:

pos=`{ echo 'addr=dot' >> $mnt/$winid/ctl; cat; }<$mnt/$winid/addr`

2. Если добавлять в окно текст (в data), содержащий в себе переводы строк, то просто так читать из event построчно не получится. Потому что первая строка будет содержать событие, а следующая -- уже просто кусок текста и так далее. Да, число символов текстового блока тоже при этом приходит, но писать обработку такого протокола на shell неудобно. Поэтому я добавлял текст только построчно.

# Версия на shell

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

#!/bin/sh
mail_view()
{
	mu view "$MAILDIR/$2" --nocolor | 9p write acme/$1/data
	echo -n 'clean' | 9p write acme/$1/ctl
	toline $1 0
}

mail_ls()
{
	mu find --nocolor -s d --reverse -f "l|d|f|s" "" | \
		/usr/bin/sed -e 's|'$MAILDIR'/\([^ ]\+\)|\1|g' | \
		head -n 100 | 9p write acme/$1/data
	echo -n 'clean' | 9p write acme/$1/ctl
	toline $1 0
}

toline()
{
	echo -n "$2" | 9p write acme/$1/addr
	echo -n 'dot=addr' | 9p write acme/$1/ctl
	echo -n 'show' | 9p write acme/$1/ctl
}

if [ -z "$winid" ]; then
	exit 1
fi

# создаём новое окно
winid=`9p read acme/new/ctl | awk '{ print $1 }'`
# показываем 100 сообщений
mail_ls $winid
# добавляем "кнопку" Get
echo -n "Get" | 9p write acme/$winid/tag

# цикл обработки событий
9p read acme/$winid/event | while read a b c d e; do
	if echo "$a" | grep -q -e '^Mx' 2>/dev/null; then # mx
		if [ "$e" = "Get" ]; then
			mail_ls $winid
			continue
		fi
	elif echo "$a" | grep -q -e '^ML' 2>/dev/null; then
		if [ -f "$MAILDIR/$e" ]; then
			msgid=`9p read acme/new/ctl | awk '{ print $1 }'`
			mail_view $msgid $e
			continue
		fi
	fi
	echo "$a $b" | 9p write acme/$winid/event 2>/dev/null
done

Кстати, этот текст был вставлен в статью так:

- ввел в tagline <cat email;
- выделил этот текст;
- нажал 2ю кнопку мыши.

Обратите внимание на цикл обработки событий. Мы просто ждём их, читая из event и реагируем нужным образом. Или снова перечитываем сообщения, или открываем текст нужного сообщения в новом окне.

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

# Версия на Lua

То, что в итоге получилось, можно посмотреть тут: https://github.com/gl00my/plan9hacks/blob/master/linux/mu-query

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

1. Для отправки почты используется msmtp.

defaults
auth on
tls on
logfile ~/.msmtp.log

account gmail
host smtp.gmail.com
port 587
tls_certcheck off
from user@gmail.com
user user@gmail.com
password password

account default : gmail

2. mu-query умеет показывать запросы mu. Например, вводим в tagline: mu-query from:ivanov, выделяем, нажимаем 2-ю кнопку мыши и видим нужный результат. Если не указывать запрос, показываются последние 100 сообщений. Можно листать по 100 сообщений командой Page.

3. При просмотре сообщения все аттачи распаковываются во временную директорию. Например, если я вижу, что это html письмо, я могу дописать firefox file:/// перед путём к файлу прямо в теле сообщения и нажать.

4. На данный момент поддерживается только Reply, составление нового сообщения, удаление и пометка сообщений как Seen. Forward и добавлений аттачей нет. Это несложно добавить, но пока я не стал этого делать. Может быть, будет третья итерация уже на go. :)

5. Чтобы удалить пачку сообщений или пометить их как прочитанные нужно выделить все нужные сообщения и нажать на соответствующую "кнопку".

На данный момент я пользуюсь mu-query на постоянной основе и очень доволен. Мне действительно это удобно. И главное, я понял что относительно просто могу писать под себя интерфейсы. Например, я уже задумываюсь о команде git-log.

# Опыт acme

Если говорить о практической пользе, то кроме "персонализации" инструментария я получаю с acme тот же эффект, что получаю от Plan9. У меня разгружается сознание. Когда я работаю в emacs, мой мозг перегружен информацией о множестве клавиатурных комбинаций и конкретных рецептах. Если брать другие редакторы, то в целом, ситуация повторяется. Acme в этом плане не похож ни на один из них. Его "базис" очень простой, единообразный и при этом всё ещё мощный. Настоящий Unix инструмент!

Когда я первый раз увидел acme, я не мог даже себе представить, что в _этом_ можно работать. Что же, ещё один повод напомнить себе, что встречать по одёжке не стоит.

Кстати, об одёжке. Уверен, у 99% людей пропадает интерес к acme как только они узнают, что в нём нет подстветки синтаксиса. Или, что в этом редакторе нельзя перемещаться по строкам вверх-вниз с помощью клавиатуры... Я зря это сейчас сказал, да? :)

[>] Re: Редактор acme: пишем почтовый клиент
std.hugeping
vvs(ping,12) — hugeping
2021-10-13 18:30:21


hugeping> Кстати, об одёжке. Уверен, у 99% людей пропадает интерес к acme как только они узнают, что в нём нет подстветки синтаксиса. Или, что в этом редакторе нельзя перемещаться по строкам вверх-вниз с помощью клавиатуры... Я зря это сейчас сказал, да? :)

Так ведь почему кому-то нравится Emacs? Причины могут быть разные, но я назову одну: Emacs - это интерфейс к elisp. Есть стремление всё делать средствами одного языка. А ACME - это ведь не язык, а чистый интерфейс и предполагает использование дополнительных средств. С точки зрения языка высокого уровня выгоднее вообще не использовать лишние концепции, такие как ОС.

Есть такая тенденция языковой среды, когда начинается с языка и постепенно переходит к решению его средствами любых задач, включая построение интерфейсов. В Web - это, наверное, JavaScript из которого выросла целая платформа Node.js. То же самое наблюдается в Python, OCaml, Haskell и т.д.

Когда-то в Xerox из этого придумали целую парадигму ОО программирования в стиле Smalltalk (сильно отличающаяся от Simula 67/C++), где вся среда исполнения и интерфейс - это Smalltalk и пользователь меняет эту среду прямо из языка в реальном времени, избегая цикла компиляция-линкование-запуск. До него что-то похожее делали на Lisp, откуда и родился в итоге Emacs.

Концепции же Unix, в целом, довольно низкоуровневые. Кстати, идея ACME пришла из языка Oberon Н.Вирта.

[>] Re: 0 или 1
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-10-14 05:29:38


hugeping>> Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса.
vvs> Кстати, о проблеме существования. Математик говорит, что есть топологическое пространство. Обыватель говорит, что он его не видит, следовательно его не существует и это пустая болтовня. Лично я здесь и вижу то самое разделение на вульгарных материалистов и идеалистов. Понятно, что у вульгарного материалиста точка зрения часто не совпадает с идеалистами.
vvs> P.S. Почему говорю о "вульгарном" материализме? Потому что далеко не все материалисты основываются исключительно на личном эмпирическом опыте.

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

[>] Re: Редактор acme: пишем почтовый клиент
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-10-14 05:29:39


vvs> Так ведь почему кому-то нравится Emacs? Причины могут быть разные, но я назову одну: Emacs - это интерфейс к elisp. Есть стремление всё делать средствами одного языка. А ACME - это ведь не язык, а чистый интерфейс и предполагает использование дополнительных средств. С точки зрения языка высокого уровня выгоднее вообще не использовать лишние концепции, такие как ОС.

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

vvs> Есть такая тенденция языковой среды, когда начинается с языка и постепенно переходит к решению его средствами любых задач, включая построение интерфейсов. В Web - это, наверное, JavaScript из которого выросла целая платформа Node.js. То же самое наблюдается в Python, OCaml, Haskell и т.д.

Дайте программисту Тьюринг-полный язык и он рано или поздно напишет на нём всё.

vvs> Когда-то в Xerox из этого придумали целую парадигму ОО программирования в стиле Smalltalk (сильно отличающаяся от Simula 67/C++), где вся среда исполнения и интерфейс - это Smalltalk и пользователь меняет эту среду прямо из языка в реальном времени, избегая цикла компиляция-линкование-запуск. До него что-то похожее делали на Lisp, откуда и родился в итоге Emacs.

Smalltalk это была действительно крутая концепция. Правда я до сих пор не представляю как можно пользоваться огромной объектной штукой, когда всё мутабельно. Но я особо и не вникал. Так, по верхам pharo тыкал. Кстати, у меня он на старте чистого образа ругается, начиная с 8 версии. Досадно.

vvs> Концепции же Unix, в целом, довольно низкоуровневые. Кстати, идея ACME пришла из языка Oberon Н.Вирта.

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

+++ Caesium/0.4 RC1

[>] Re: Редактор acme: пишем почтовый клиент
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-10-14 05:45:53


Большое спасибо за отличную статью. Даже если я не начну использовать acme для почты, полезного и интересного почерпнул из неё не мало.

Вообще люблю твои статьи. Их и читать приятно и интересно, и зачастую полезно.

+++ Caesium/0.4 RC1

[>] Re: Редактор acme: пишем почтовый клиент
std.hugeping
vvs(ping,12) — hugeping
2021-10-14 13:25:21


Если кого-нибудь интересует практическая информация по языкам программирования, то проще начинать с википедии. Конкретно по Оберону там упоминается пару порталов на русском:

https://oberon.org/ru
https://oberoncore.ru/library/start

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

Lisp и Smalltalk - это отдельная песня. По ним я даже прочитал учебную литературу. Начинал с GNU Smalltalk, потом сразу перешёл на Squeak. Его пытался использовать на практике, в качестве рабочей системы. Пробовал разобраться с его виртуальной машиной, но меня отпугнула жутко запутанная система её построения. Еще у Squeak очень специфичная система управления версиями, в которой ведётся разработка. Поддержка Git там появилась только недавно и тоже довольно непривычная. Насколько я понял, Squeak больше ориентирован именно на конечного пользователя, чем Pharo. В своё время я постепенно переходил с Windows 98 на RedHat Linux несколько лет, когда использовал их параллельно и это был непростой опыт. На Smalltalk же перейти так и не удалось - не хватило мотивации и дальше отдельных экспериментов дело не пошло. Сейчас же я сижу на NixOS и там пока нет поддержки Squeek 5.x.

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

P.S. Кстати, Lean использует Emacs или VSCode в качестве интерфейса пользователя. В отличие от многих других языков, здесь это не просто удобство, а совершенно необходимая часть взаимодействия с языком.
P.S. Edited: 2021-10-14 14:43:45

[>] Аскетика в отладке
std.hugeping
hugeping(ping,1) — All
2021-10-18 16:29:58


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

Когда-то, разрабатывая драйверы ещё в Windows, я пользовался SoftIce. Это был такой легендарный отладчик уровня ядра. Когда я перешёл на Linux, отладчиков такого уровня я не нашёл. Это был удар. Я не мог понять как вообще можно отлаживать код без отладчика? Но шло время и постепенно я стал замечать, что основное затруднение вызывают баги такого рода, когда отладчик никак не поможет... Обычно это проблемы синхронизации, гонок, или фундаментальные проблемы (когда архитектурные решения основывались на ложных предпосылках). И вот для такого рода ошибок, как оказалось, отладчик бесполезен. Нужно только проводить эксперименты и думать, пытаться сложить все наблюдения в одну картину.

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

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

- Такого не может быть!
- Это проблема в тесте!
- Может быть, виноваты битые провода?

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

Работает прямо противоположный подход. Я бы назвал его аскетическим. Есть факт, и этот факт прост -- в твоей программе баг. Она несовершенна. Ты не понимаешь сути происходящего, но реальность подчиняется логике. Ты просто не видишь всей картины. Нужно смириться, собирать факты (улики) и думать, думать, думать. Не можешь связать все улики воедино? Не стоит отчаиваться! Все баги, которые ты встречал до сих пор в своей в жизни, ты решил. Каждый раз объяснение находилось, и каждый раз оно было и очевидным, и неожиданным одновременно. Так будет и в этот раз, хотя сейчас в это сложно поверить. Просто думай.

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

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

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

[>] Re: Аскетика в отладке
std.hugeping
vvs(ping,12) — hugeping
2021-10-18 17:29:23


Ну надо же, как тесен мир. Я тоже пользовался SoftIce, а до него Periscope, ещё когда использовал DOS. И тоже был обескуражен, что в Линуксе нет ничего похожего. Правда сейчас и софтайса давно уже нет.

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

А вообще интересный вопрос: существует ли экспериментальная математика? Да, существует. И здесь находится что-то общее с физикой. Этим и Стивен Вольфрам увлёкся. Думает, что так откроет законы, управляющие вселенной. Занимается ли он отладкой вселенского компьютера, находясь внутри него? Интересная аналогия, да?

[>] Re: Аскетика в отладке
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-10-19 12:00:17


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

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

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

+++ Caesium/0.4 RC1

[>] Re: Аскетика в отладке
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-10-19 12:00:18


vvs> А вообще интересный вопрос: существует ли экспериментальная математика? Да, существует. И здесь находится что-то общее с физикой. Этим и Стивен Вольфрам увлёкся. Думает, что так откроет законы, управляющие вселенной. Занимается ли он отладкой вселенского компьютера, находясь внутри него? Интересная аналогия, да?

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

+++ Caesium/0.4 RC1

[>] Re: Аскетика в отладке
std.hugeping
vvs(ping,12) — hugeping
2021-10-19 13:56:56


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

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

[>] Бегство от тишины
std.hugeping
hugeping(ping,1) — All
2021-11-09 08:35:36


Смотрю интервью с Андреем Столяровым: https://www.youtube.com/watch?v=o111yYPqLHU

Увлекательно слушается.

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

Например, возьмём телеграм. Плохо, что это проприетарное решение. Плохо, что оно привязано к телефону и так далее. Но реальный ущерб, который я ощущаю на себе, носит скорее психологический характер. Это зависимость. Зависимость от получения потока информации в режиме 24/7 (зачастую, бесполезной и низкокачественной), от поиска социального одобрения, от эндорфинов полученных в битвах "кто-то не прав"...

Допустим, мы сделали федеративный Telegram и (невероятно!) он стал популярным. Пусть он будет работать на телефоне со свободной прошивкой. Что-то изменится в плане воздействия на психику? Безусловно, централизованный сервис -- хуже. Особенно, если говорить о соцсетях, где выдача определяется алгоритмом таким образом, чтобы повысить время удержания. Но кроме силы формируемой зависимости, будет ли какая-то принципиальная разница? Не думаю.

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

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

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

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

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

Я снова бегу от тишины...

[>] Притча о неверном, но мудром управляющем
std.hugeping
hugeping(ping,1) — All
2021-11-09 10:57:46


В Евангелии от Луки есть притча, которую я я никогда не понимал.

Лк16:1-9

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

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

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

Пропустив своё наблюдение через "рассудочный" аппарат, я понял, что даже не могу сформулировать "объяснение" словами. Получалось что-то неуклюжее вроде: "Да, я осознаю свою повреждённость. Я часто поступаю недостойно замыслу Бога. Тогда я хотя бы попытаюсь не требовать 'своего' с других людей. Попробую поступать по милости, а не по формальной справедливости. Даже если со мной поступили несправедливо. Разве я часто не поступаю хуже? Я хотя бы могу не затаить обиду, не 'встать в позу'. Не сказать ещё одно язвительное слово... Это малость, но я чувствую в этом правду. Как я смею уповать на милость Бога, если даже такой малости не делаю?".

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

[>] Re: Бегство от тишины
std.hugeping
silverwing(ping,26) — hugeping
2021-11-09 14:40:06


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

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

Решение? Нет решения. Точнее есть -- навязывать свои условия, тем кому можешь навязать. А с остальными не общаться.

[>] Re: Бегство от тишины
std.hugeping
hugeping(ping,1) — silverwing
2021-11-09 15:33:43


silverwing> Корень проблемы не в сервисе. Замена условного телеграма условным федиграмом исправит ситуацию с технологической стороны, но не исправит самой сути.

Точно. Об этом я и писал. Правда, немного многословно.

silverwing> А самое страшное, что если хочется чтобы тебя заметили, приходится самому кричать еще громче...

В точку.

[>] Re: Бегство от тишины
std.hugeping
vvs(ping,12) — silverwing
2021-11-09 16:15:30


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

Это именно то, о чём я задумался вчера. В очередной раз. И задал себе вопрос: откуда у меня эта зависимость от интернета? У меня даже есть RSS лента, куда я засунул разных людей и проекты, за которыми непрерывно слежу. Зачем? Это синдром упущенной выгоды. Да, но не только. Ещё это информационный голод - я жажду новостей. Постоянно.

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

[>] Си должен умереть?
std.hugeping
hugeping(ping,1) — All
2021-11-09 17:14:26


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

https://www.yodaiken.com/2018/12/31/undefined-behavior-and-the-purpose-of-c/

http://cmustdie.com/

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

Да, неопределённое поведение -- это угроза. И угроза вдвойне, когда по мере развития компиляторов, это поведение воспринимается как территория, на которой можно "срезать углы". При этом мы получаем мину замедленного действия. Старый софт, собранный новым компилятором может "бахнуть" когда и где угодно... Так что с точки зрения индустрии, нужен простой (не надо много платить за кадры), дубовый и предсказуемый язык. Правда, при этом, он должен быть ещё и системным. Совместить эти противоречивые требования нелегко...

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

Представим себе, что нам нужно написать ядро ОС. Какой язык выбрать? C, C++... Rust?

Мои знания о Rust ограничены чтением книги, поэтому я недостаточно подкован для того, чтобы адекватно оценить его кандидатуру как замену Си. Субъективно, мне кажется, что Rust не сможет стать таким же массовым языком. В нём нет простоты Си. Его синтаксис многословен, а в некоторых задачах он выкручивает программисту руки. Я надеюсь, что идеи заложенные в Rust найдут реализацию в каком-то другом ЯП. Но это моё личное, субъективное мнение. Конечно, если индустрия перейдёт на Rust, я буду его использовать в любом случае. А пока, можно посмотреть на пример реализации драйвера на Си и Rust: https://lwn.net/Articles/863459/ который меня совсем не впечатляет.

Си был моим любимым языком с самого начала профессиональной деятельности. Но с годами я стал замечать, что программирование на Си всё чаще воспринимается как рутина. Я перестал чувствовать удовольствие от программирования и изучения чужого кода. Работал скорее как "ремесленник". К счастью, были и другие ЯП, которые мне было интересно изучить, так что выгорания я избежал.

Но не так давно я открыл для себя Си заново. Помогло мне в этом осознание:

> Код на Си прекрасен, когда он прост!

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

Посмотрите. Это реализация cat в Plan9: https://github.com/0intro/plan9/blob/master/sys/src/cmd/cat.c

А это, для сравнения, cat из coreutils: https://github.com/coreutils/coreutils/blob/master/src/cat.c

Я отдаю себе отчёт в том, что современное ПО так не пишется. Поддержка локалей и gettext. Учёт особенностей системных вызовов на разных ОС. Поддержка множества параметров. И вот, объём и сложность кода растут как снежный ком. А если вспомнить про полную поддержку Unicode (со всеми этими проклятыми эмодзи и сменой направления вывода), то становится совсем уж плохо. Мы так привыкли к универсальности "правильного" подхода, что когда ты видишь "наивный" код Plan9, то испытываешь шок. Что, так можно было?

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

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

Системное ПО тоже стало сложнее. Как системный программист, я начинал с ядра Linux 2.2. Читать и понимать код современного ядра стало намного сложнее.

В качестве примера, посмотрите реализацию системного вызова open в ядре 2.2.
https://elixir.bootlin.com/linux/2.2.26/source/fs/open.c#L757
asmlinkage int sys_open(const char * filename, int flags, int mode)
{
	char * tmp;
	int fd, error;

	tmp = getname(filename);
	fd = PTR_ERR(tmp);
	if (!IS_ERR(tmp)) {
		lock_kernel();
		fd = get_unused_fd();
		if (fd >= 0) {
			struct file * f = filp_open(tmp, flags, mode);
			error = PTR_ERR(f);
			if (IS_ERR(f))
				goto out_error;
			fd_install(fd, f);
		}
out:
		unlock_kernel();
		putname(tmp);
	}
	return fd;

out_error:
	put_unused_fd(fd);
	fd = error;
	goto out;
}
Довольно наглядно и просто, не правда ли?

А теперь начните своё путешествие по ядру 5.10.

https://elixir.bootlin.com/linux/v5.10.78/source/fs/open.c#L1200

Вам придётся пройтись по цепочке: do_sys_open -> do_sys_openat2

https://elixir.bootlin.com/linux/v5.10.78/source/fs/open.c#L1193
https://elixir.bootlin.com/linux/v5.10.78/source/fs/open.c#L1164

SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, umode_t, mode)
{
	if (force_o_largefile())
		flags |= O_LARGEFILE;
	return do_sys_open(AT_FDCWD, filename, flags, mode);
}

long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
{
	struct open_how how = build_open_how(flags, mode);
	return do_sys_openat2(dfd, filename, &how);
}

static long do_sys_openat2(int dfd, const char __user *filename,
			   struct open_how *how)
{
	struct open_flags op;
	int fd = build_open_flags(how, &op);
	struct filename *tmp;

	if (fd)
		return fd;

	tmp = getname(filename);
	if (IS_ERR(tmp))
		return PTR_ERR(tmp);

	fd = get_unused_fd_flags(how->flags);
	if (fd >= 0) {
		struct file *f = do_filp_open(dfd, tmp, &op);
		if (IS_ERR(f)) {
			put_unused_fd(fd);
			fd = PTR_ERR(f);
		} else {
			fsnotify_open(f);
			fd_install(fd, f);
		}
	}
	putname(tmp);
	return fd;
}

Необходимость изменений очевидна. Появилась подсистема fsnotify. Добавили новые системные вызовы -- пришлось нарезать функции и сводить open к openat...

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

Да, работая на индустрию не удастся вернуться в прошлое. Однако, Plan9 научил меня тому, что во многих случаях у меня, как у программиста, всё-таки есть свобода избежать сложного кода, в том числе ценой выбора более подходящей архитектуры. Например, написав небольшое ядро приложения на Си и функциональную часть на Lua. Если я вижу, что код на Си становится сложным, это повод остановиться. Стоп! Что-то не так!

Что касается судьбы Си... Я тоже хотел бы увидеть современного приемника, но в Rust я не смог его узнать. Возможно, это моя ошибка. Поживём -- увидим.

Интересно, сколько лет ещё продержится старичок Си? А то ведь и 70-летие не за горами. :)

P.S. Ещё одна "эмоциональная" статья на тему C и C++: Почему я всё ещё люблю C, но при этом терпеть не могу C++?

https://habr.com/ru/company/ruvds/blog/562530/

[>] Re: Бегство от тишины
std.hugeping
silverwing(ping,26) — vvs
2021-11-09 17:23:19


vvs> Это именно то, о чём я задумался вчера. В очередной раз. И задал себе вопрос: откуда у меня эта зависимость от интернета? У меня даже есть RSS лента, куда я засунул разных людей и проекты, за которыми непрерывно слежу. Зачем? Это синдром упущенной выгоды. Да, но не только. Ещё это информационный голод - я жажду новостей. Постоянно.

Как ни странно, я практически не пользуюсь лентами. Как я узнаю новости? По запросу: "Что там с вот этим?" Самая страшная сейчас для меня зависимость подобного рода -- ютуб. Хотя и он перестает меня насыщать, но нет-нет, да и всплывет интересное видео, открывающее новые грани какой-то темы. Наверное в этом основная проблема лент -- они иногда подкидывают что-то действительно интересное. Это как казино -- шанс выигрыша 0.01%, но он есть и это заставлять скроллить вниз. Тем более что в случае с лентой, в отличие от казино, затраты минимальны.

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

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

[>] Re: Бегство от тишины
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-11-09 17:42:32


hugeping> Вопросы безопасности, анонимности и личной свободы -- важно. Но меня больше беспокоит другой аспект.
hugeping> Например, возьмём телеграм. Плохо, что это проприетарное решение. Плохо, что оно привязано к телефону и так далее. Но реальный ущерб, который я ощущаю на себе, носит скорее психологический характер. Это зависимость. Зависимость от получения потока информации в режиме 24/7 (зачастую, бесполезной и низкокачественной), от поиска социального одобрения, от эндорфинов полученных в битвах "кто-то не прав"...

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

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

[>] Re: Бегство от тишины
std.hugeping
vvs(ping,12) — silverwing
2021-11-09 18:33:06


silverwing> Как ни странно, я практически не пользуюсь лентами. Как я узнаю новости? По запросу: "Что там с вот этим?"

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

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

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

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

Верно. Но это не отменяет тот факт, что книги - это более авторитетный источник, чем статья в блоге или, не дай Бог, чей-то твит.

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

silverwing> Что решает? А вот как раз библиотека и решает. Ведь кто-то эту библиотеку собирает, выбирает какие книги попадут в нее, а какие нет. Если в интернете появятся такого рода библиотеки, в которые попадает только проверенная информация, это и будет своего рода решением.

Скорее это утопия. Возьмём, например, https://flibusta.is/b/624340 Пример того, как не надо изучать математику. Увы, но СИ есть СИ. Впрочем я и не рекомендую именно эту библиотеку. Хотя анализ ошибок - это тоже полезная вещь. Например так написана книга Д.Кнута "Сюрреальные числа" (https://flibusta.is/b/617681 ) и даже в художественном стиле :) Ну да он и профессионал высокого класса.

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

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

Ну почему? Если бы в RSS я каждый день видел краткие аннотации ещё не прочитанных мною интересных книг, то это было бы уже здорово. Но это тоже утопия по ряду причин :(
P.S. Edited: 2021-11-09 18:38:33

[>] Re: Бегство от тишины
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-11-09 18:49:58


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

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

+++ Caesium/0.4 RC1

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13