chaource: (smiling face)
Тексты распредѣлены по темамъ и перечислены хронологически. Русскоязычные тексты написаны въ старой орѳографіи.

The texts are divided by topic and ordered chronologically.

Read more... )
chaource: (Default)
Imagine a dispute in a classroom where learned scholars disagree about some theoretical problem. What and how are they doing to resolve their dispute? When do they all agree that a certain aspect of the problem has been resolved?

What I'm thinking about is that a theoretical disagreement can be productively discussed and resolved only within the framework of a certain tradition. The tradition dictates what questions are to be discussed and how to decide whether a question is resolved. It is not possible to "just use logic" or "just derive the answer" even when the theory under discussion is formal and mathematical. One needs to be guided by unwritten tradition, which is transmitted from teacher to student.
Read more... )
chaource: (Default)
Думаю вотъ записать такой недавно обнаруженный мной фактъ.

Если вы живете въ Европѣ и къ вамъ домой пришелъ отъ обслуживающей фирмы сантехникъ, электрикъ, или другой рабочiй и что-то починилъ и выставилъ оффицiальный счетъ отъ фирмы, то изъ заплаченныхъ вами денегъ примѣрно двѣ трети уйдетъ въ налоги. Рабочему останется лишь около трети.

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

Вотъ примѣрный расчетъ.
Read more... )
chaource: (Default)
The free monad on a functor F is often defined like this in Haskell:
data FreeMonad f a = Pure a | Join (f (Freemonad f a)

This is a recursive definition written schematically as a type equation `r = a + f(r)`.

However, as Haskell is lazy by default, this defines r as the greatest fixpoint of that type equation.
The free monad actually needs to be the least fixpoint, not the greatest fixpoint. Otherwise the properties of the free monad will not hold. I believe this detail is not usually emphasized or clarified.

What happens if we define the free monad as the greatest fixpoint? It will not be possible to have a unique arrow in the category of monads (monad morphism) from the free monad to an arbitrary other monad, in the following way:
Read more... )
chaource: (Default)
Là, Panurge interrompt, disant : Vous avez parlé, masque !
François Rabelais. Pantagruel



I gave Google's AI the task of writing a post about agentic AI in software engineering. I told it to write "in my style, tone, and formatting" and gave it plenty of examples of my previous posts on the topic.

Gemini 3 "Thinking" said:
---
Read more... )
---
I would have never said this, I disagree with several points here (emphasized in italics above), the text doesn't really make much sense as a whole, and my style and tone hasn't really been understood well. I write in a less flowery language with less repetition, I usually emphasize negative points and problems more than positive results, and I usually make a clear point. The LLM largely regurgitated what is often said on the topic and some of what I said in the examples I gave. This output is unusable. The God-awful AI tried to wear a human mask but the faangs are still visible.
chaource: (Default)
Previously: Part I, Part II, Part III

While trying to implement `zip` in the Church encoding, I started writing tests and chose the non-empty list as the data structure.

data NEL a = One a | More a (NEL a)


In Haskell, this is lazy and defines the greatest fixpoint of the pattern functor `F a`:

data F a r = OneF a | MoreF a r

The type parameter `r` represents the recursive use of the type.

But I'm more interested in the least fixpoint of `F a`, which can be Church-encoded as:
data LNEL a = forall r. (F a r -> r) -> r


In my previous posts I described a complicated way of implementing `zip` that requires, as a technical step, first to implement a "bad" logic for `zip` (what I called "zip0" in https://chaource.dreamwidth.org/229514.html ).

I expected "zip0" to be essentially useless and wrong; it is only needed to fill a type hole, and it is actually ignored later in the code.


Then I accidentally discovered that "zip0" can give a lawful implementation of "zip" in some cases.
In particular, for non-empty lists.

Read more... )
chaource: (Default)
Другъ прислалъ мнѣ ссылку на статью и обсужденiе.

https://www.sciencedirect.com/science/article/abs/pii/S0165176526000352
https://t.me/longviewecon/6473

Тема статьи - сравнить различные статистическiе методы, которыми можно пользоваться для отвѣта на вопросъ, было ли правленiе Пиночета въ Чили благопрiятнымъ для экономики страны. Дѣлается выводъ, что одинъ изъ методовъ "лучше". Этотъ методъ говоритъ, что правленiе Пиночета привело къ паденiю экономическаго роста.

Къ статьѣ были высказаны въ основномъ безсмысленные комментарiи, какъ и слѣдовало ожидать. Но одинъ изъ комментарiевъ былъ критикой по дѣлу:

Read more... )

Одинъ изъ авторовъ статьи отвѣтилъ на этотъ комментарiй слѣдующимъ образомъ:

Read more... )

Это ужасно. Теперь видно, почему нельзя вѣрить "ученымъ". Они перестали заниматься наукой. Сравниваютъ "эффективность" статистическихъ методовъ для полученiя заранѣе извѣстныхъ отвѣтовъ на заранѣе заданные вопросы. Экономика - сложная вещь, и разъ ученые перестали заниматься честными изслѣдованiями, а вмѣсто этого просто подгоняютъ графики подъ желаемые результаты, то мы уже никогда ничего толкомъ не узнаемъ про экономику и общество.

Авторъ статьи сказалъ примѣрно слѣдующее.

"Да, мы времъ и прекрасно это понимаемъ и безъ васъ. А вы, хомячки диванные, даже не потрудились узнать, что такое сегодня наука и какъ сегодня надо правильно врать, если ты хочешь правильно заниматься наукой. Мы же ясно сказали - въ нашей статьѣ мы времъ точно такими же методами, какъ и другiе ученые. И еще - статья методологическая. Методологическая! Вы понимаете, что это слово означаетъ, или вамъ, тупицамъ, надо объяснить? Вопросъ о Пиночетѣ уже изученъ, а наша статья лишь выясняетъ, какимъ методомъ лучше врать про Пиночета. И не вамъ насъ этому учить, быдло необразованное. А кромѣ того, тутъ вообще не мы виноваты, это все злой редакторъ буржуйскаго журнала, онъ нахмурилъ брови и намъ ничего не оставалось, какъ написать вотъ такую статью. Но зато теперь у насъ есть еще одна Настоящая Научная Статья въ Настоящемъ Научномъ Журналѣ cъ Настоящимъ Peer Review, которое гарантируетъ абсолютную истину. А вы такъ и будете на своихъ диванахъ сидѣть и вякать, ну вякайте дальше."
chaource: (Default)
https://www.wionews.com/world/epstein-files-robert-maxwell-mossad-allegations-1770127431656
https://aetherczar.substack.com/p/tinker-tailor-publisher-spy-how-robert

Утверждается, что систему peer review создалъ Робертъ Максвеллъ въ корыстныхъ цѣляхъ. Онъ, молъ, основалъ издательство научныхъ журналовъ Pergamon Press, которое потомъ стало Elsevier. Если раньше ученые внимательно читали статьи, то сегодняшнiе рецензенты просто якобы служатъ златому тѣльцу. Я считаю, это не просто преувеличенiе, а ошибочное приписыванiе причинныхъ связей. Если какимъ-то образомъ ликвидировать издательство Elsevier, проблемы сегодняшней академической науки никуда не исчезнутъ.

Вотъ мой взглядъ на эти вещи:
Read more... )
chaource: (Default)
я скáлу покинулъ
и пошелъ хаскелять
чтобы высшiе индуктивные типы
программистамъ отдать

я стеръ всѣ объекты
тайпчекеромъ руля
монада, монада, монада моя
chaource: (Default)
А вотъ кстати, тутъ есть знатоки Второй поправки въ конституцiи США? Тамъ же написано не то, что "каждый гражданинъ имѣетъ право попросить разрѣшенiе купить пистолетъ и получивъ таковое, купить и носить его, но только чтобы снаружи не видно было и только не въ особыхъ запрѣщенныхъ мѣстахъ".

Тамъ написано, "the right to a well-regulated militia shall not be infringed".

Какъ это выглядитъ, "a well-regulated militia"? Вотъ тутъ объясняютъ, и вродѣ бы похоже.
https://x.com/Schwalm5132/status/2015470661490057540

То есть, на первый, невооруженный взглядъ кажется, что протестанты, которые организованно гоняются за агентами федеральной иммиграцiонной службы, являются нѣкоторымъ видомъ "well-organized militia". Такъ ли это?

Имѣетъ ли сегодня реальное право кто-либо организовать "милицiю" въ смыслѣ Второй поправки? Дѣлаютъ ли это сегодня въ США какiя-либо общины?

Навѣрно, когда составляли текстъ Второй поправки, то всѣмъ участникамъ обсужденiй было хорошо понятно, что имѣется въ виду подъ терминомъ "милицiя". Какiя есть у милицiи права и обязанности, какъ ведутъ себя ея участники, каковы отношенiя съ государственными органами. Какъ-то это должно же быть извѣстно.

Сегодня это все уже трудно себѣ представить, и сегодня у насъ совершенно другое (и гораздо болѣе узкое, ограниченное) понятiе о свободѣ и о правахъ человѣка, чѣмъ 100-150 лѣтъ назадъ. Такъ, какъ мы сегодня живемъ, - у каждаго номеръ, обязательные документы, на все испрашивай разрѣшенiе, - это такъ въ 1900 году жили ссыльные или заключенные въ тюрьмѣ.

Что означаетъ реально Вторая поправка?
chaource: (Default)
Профессоръ МФТИ Савватеевъ беретъ интервью у преподавателей.


Студенты прямо говорятъ: "а зачѣмъ я долженъ учиться, ставьте мнѣ тройку и я пойду".

https://t.me/alexei_savvateev/1979

Савватеевъ "борется съ Министерствомъ образованiя", чтобы добиться улучшенiй въ образованiи.

Борьба заинтересованныхъ учителей съ Министерствомъ образованiя - это происходитъ во всѣхъ странахъ. Почему-то вездѣ получается такъ, что Минобръ вредитъ дѣлу.
Read more... )
chaource: (Default)
Among the early "functional pearl" papers, this one caught my attention:

https://www.cambridge.org/core/services/aop-cambridge-core/content/view/8DB1295DC8EB3C4942FB635C439B016E/S0956796800001908a.pdf/functional-pearls-the-third-homomorphism-theorem.pdf

The "third theorem" says that if a function h : List a → b can be represented as *both* a fold-left and a fold-right then "h" must be a "list homomorphism". This means, "b" must be a monoid and "h" must preserve the monoid operations. (Or, in some cases, it is enough for "b" to be a semigroup.)

At first sight, this is a very special property of functions on lists. However, I have spent quite a while on the functor-monad-algebraic (FMA) formulation of typeclasses, and some common patterns caught my eye while reading the paper. I was intrigued by the possibility that this theorem could be generalized to any FMA-typeclass.

So far I was able to go through most of the paper and translate its contents to arbitrary FMA-typeclasses.
The "first two homomorphism theorems", as well as "Lemma 4.3", can be translated into the language of categories and FMA-typeclasses, without talking about any lists or monoids or any other specific typeclass.

For example, the "first theorem" is just the naturality property for the free FMA-typeclass instance. It is satisfied automatically by definition of an FMA-typeclass.

The open question so far is how to generalize "fold left" and "fold right". These functions are specific to lists and they are not available in other typeclasses. In particular, there must be a generalization such that Equation (1) in the paper still holds. That equation is central for the proof shown in the paper.

Feeling sick now with a flu, so details will have to wait.
chaource: (Default)
Я раньше не понималъ, какъ это происходитъ, что ты задаешь ясный и четкiй вопросъ, а въ отвѣтъ получаешь какую-то невнятицу. Но вотъ вчера я увидѣлъ, почему это можетъ происходить, причемъ безо всякаго злого умысла.

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

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

Въ такой ситуацiи я бы отвѣтилъ на вопросъ контрагента и потомъ объяснилъ бы свою позицiю и задалъ бы два четко поставленныхъ вопроса. Никакой необходимости въ разговорѣ по телефону, съ моей точки зрѣнiя, не было.

Почему такъ произошло? Мою жену я какъ разъ хорошо знаю. Никакого злого умысла спецiально затянуть время или запутать контрагента у нея, конечно, не было.
Read more... )
chaource: (Default)
Просто зарисовки изъ жизни.

О сосѣдяхъ по дому
Read more... )
Будни безработныхъ

Read more... )
chaource: (Default)
I just realized that there is a snag in the construction of Church encoding for type constructors in System Fω.

The ordinary Church encoding works at the level of types: If a type T is defined recursively as the least fixpoint of T = F T (where F is some endofunctor) then the Church encoding of T is:
T = ∀(r : Type) → (F r → r) → r

Passing from simple types to type constructors: If an endofunctor ("type constructor") C is defined recursively as C = F C with some F being an endofunctor on endofunctors, then we write the Church encoding as:
C a = ∀(r : Type → Type) → (∀(t : Type) → F r t → r t) → r a

We can define List in this way if we choose F as `F C a = 1 + a × C a`.
Then, after some currying, we obtain the following definition of List:
List a = ∀(r : Type → Type) → (∀(t : Type) → r t) → (∀(t : Type) → t → r t → r t) → r a

Then we can define helper functions for creating values of type `List a`, or to do foldRight, to concatenate lists, and so on. Iteration over the Church-encoded list will be non-recursive.

This is the Church encoding "at the level of type constructors" (or, you might say, "in the category of endofunctors" if you want to be brazen about it, because actually I don't know how to formulate the Church encoding categorically even in the simple case).

I used to think that this kind of Church encoding works just fine and is perhaps an overkill for List but has its uses to encode more complicates types such as GADTs or perfect trees:

PerfectTree a = a + PerfectTree (a × a)

The curried Church encoding of PerfectTree looks like this:
PerfectTree a = ∀(r : Type → Type) → (∀(t : Type) → t → r t) → (∀(t : Type) → r (t, t) → r t) → r a

However, that thinking was just too glib. There is a heavy price to be paid if you want to use this kind of encoding.
Read more... )
chaource: (Default)
Недавно понялъ, что проведенные года (7 лѣтъ) въ Санъ Франциско приучили меня къ мысли, что я теперь якобы "разбогатѣлъ". Что деньги уже не нужно считать, ихъ хватитъ, что я вотъ наконецъ-то сейчасъ вышелъ въ люди. Это для меня и непривычно и не подходитъ мнѣ по характеру. Я никогда не стремился разбогатѣть и никогда не интересовался такими вещами, которыя приносятъ богатство. Попытки инвестировать на биржу и въ биткоины были мной всѣ послѣдовательно провалены. Но среда въ СФ была такая, что въ общемъ "здѣсь всѣ богатые, и такъ и должно быть". Я теперь вижу, что это вредное ощущенiе постепенно осмотически проникло и въ меня.

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

Сейчасъ все какъ-то возращается постепенно въ нормальное русло. Сбереженiя таютъ, скоро придется разбираться съ налогами индивидуальнаго предпринимателя въ Европѣ - это та еще радость. Должность съ сильно завышенной зарплатой я потерялъ, а сегодняшняя обстановка на рынкѣ труда въ программированiи такова, что работу даже на 100К въ годъ найти вообще очень тяжело. Про ИИ я ничего технически не знаю и искать работу въ этой области какъ-то не хочется. Квартира хоть и маленькая, но уже становится не по карману, надо будетъ скоро опять переѣзжать.
chaource: (Default)
In my previous post, I formulated a property of free monad transformers and noticed that the FP jargon sounded political if you squinted hard enough.

I asked the godawful Grok to rewrite it as a political proclamation and got a passable output. (I feel that I would have done a better job though.)

It's interesting that Grok decided to use "nationalist/populist" rhetoric, although there was nothing specific in the prompt. Perhaps, even saying the word "foreign" nowadays means you are a nationalist?

To find out, I also tried Gemini with the same prompt. The result was a clearly leftist take, mentioning "revolutionary cells". References to "interleaving with the foreign monad" were interpreted in the sense of subversive infiltration of a foreign country. Grok took a conservative and nationalist view, where "foreign" refers to undesirable meddling of foreign powers with our own "base" and "interleaving" means infiltrating and subverting the foreign organization within our country.

Judge for yourself. Here is the session:
Read more... )
chaource: (Default)
I just found out that the free monad on a functor F (denoted by Free F) has an alternative monad transformer in case F is traversable. The new transformer is much simpler than the standard transformer for free monads: it just composes inside the foreign monad M as M ∘ Free F. The standard transformer involves a difficult recursive interleaving of F and M and is defined as M ∘ Free (F ∘ M).

This appears to be a first example of a monad that has several "equally good" transformers. Any traversable structure for F and any applicative structure for M (derived from M's monad structure in some way) gives rise to a specific monad structure for M ∘ Free F.

(I'm sure all this can be interpreted as a veiled political statement; "free", "foreign", "traverse", "compose inside" could be given appropriate political interpretations. But this is best left as an exercise for the godawful AI.)

The impetus for this study was an old question: how to define a monad structure for a binary tree that may be empty of data.

A binary tree is usually defined by:
data BTree a = Leaf a | Branch (BTree a) (Btree a)

The free monad on F is defined by:
data Free f a = Pure a | Join (f (Free f a))

So, a binary tree is equivalent to the free monad on the functor `F a = (a, a)`.

The binary tree as defined above is always non-empty (it contains at least one leaf). To provide a possibility for a tree to be empty of data, we work with the data type `ETree a = Maybe (BTree a)`. But then the question arises: is ETree a monad, and if so, what are the possible monad structures on ETree?
Read more... )
chaource: (Default)
Мы недавно переѣхали изъ Германiи во Францiю.

Во Францiи есть нѣсколько для насъ важныхъ преимуществъ. Недостатки тоже есть, но не такъ важны, съ ними можно пока примириться.

Преимущества напримѣр таковы (я сейчасъ разсматриваю общiя черты - лично для насъ главное, конечно, что тутъ живетъ теща и другiе родственники жены, это и было основной причиной переѣзда).

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

Но во Францiи это не прошло, потому что еще сильна традицiя - готовить и подавать ѣду определенными комбинацiями, и это гораздо болѣе сбалансировано, чѣмъ въ Германiи, чѣмъ въ восточной европѣ, или тѣмъ болѣе въ англоязычныхъ странахъ (тамъ ѣдят очень нездоровую ѣду). Я знаю лишь еще одну страну, гдѣ проявляютъ подобное вниманiе къ ѣде, гдѣ есть сложная и развитая "культура питанiя" - это Японiя.

Практически для насъ это значитъ, что дочка здѣсь питается гораздо лучше въ дѣтском саду. Въ Германiи во многихъ школахъ нѣтъ столовыхъ и школьники не получаютъ горячихъ обѣдовъ. Для дошкольниковъ (3-6 лѣтъ) въ Германiи есть столовыя и готовятъ горячiе обѣды, но слѣдуютъ оффицiальной рекомендацiи министерства - мясо и рыба не болѣе двухъ разъ въ недѣлю. Я приносилъ моей дочкѣ второй обѣдъ, забирая ее изъ (частнаго!) дѣтсада, потому что у нея не было силъ даже пойти на дѣтскую площадку. Во Францiи такого нѣтъ.
Read more... )
chaource: (Default)
Была дискуссiя тамъ https://juan-gandhi.dreamwidth.org/5993034.html, можетъ ли младшее поколѣнiе чѣму-то научить старшее.

Надо различать разные виды общенiя. Есть индивидуальное общенiе - одинъ человѣкъ съ другимъ, обмѣнъ житейскимъ опытомъ, одна личность другой личности. У каждого свой подходъ къ жизни, свои какiя-то наблюденiя и это интересно обоимъ. Разница возраста не имѣетъ значенiя, это разговоръ на равныхъ.

Есть общенiе просто въ случайной компанiи, small talk. Цѣль этого общенiя - подать другъ другу сигналы "я свой". Поэтому обсуждаются путешествiя, просмотренные фильмы, хвалятъ заморскую кухню, которая сегодня у всѣхъ на слуху, или ругаютъ того политика, котораго надо сегодня ругать.

И есть общенiе "между поколѣнiями". Когда я (молодой) разговариваю со старшимъ и перевожу себя въ особый режимъ - спросить старшаго что-нибудь общее-важное и послушать, что-то важное узнать, пока онъ еще живъ. Потому что въ школѣ этому не учатъ и по телевизору не покажутъ. И когда я (старшiй) разговариваю съ младшимъ и перевожу себя въ режимъ "надо ему попробовать что-нибудь объяснить, вдругъ пойметъ". Потому что въ интернетахъ этого не написано и онъ даже не догадается задать такой вопросъ ИИ. Или "надо бы разузнать, что сегодня молодежь считаетъ по поводу XYZ". Потому что въ интернетахъ всегда будетъ та или иная предвзятая пропаганда по этому поводу.

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

Я помню, какъ въ 25-30 лѣтъ спецiально приходилъ въ гости и внимательно слушалъ нѣкоторыхъ (выбранныхъ мною въ авторитеты) уважаемыхъ старшихъ. Хотѣлъ понять, какъ они строили жизнь, съ какими превратностями судьбы сталкивались и какъ преодолѣвали ихъ. Вѣдь имъ выпала куда болѣе суровая доля, чѣмъ мнѣ.

Мнѣ кажется, что большинство и моего поколѣнiя, и теперешняго такъ не поступаетъ. Потому что прогрессивная идеологiя объясняетъ всѣмъ, что старая жизнь была "предварительная", ненастоящая, неправильная, какъ была "предварительная литература" у Войновича. Только сегодняшняя жизнь какъ-то считается, - всё, что было раньше, это былъ "Адъ и Израиль", это не считается.

Profile

chaource: (Default)
chaource

February 2026

S M T W T F S
123 45 67
8 910 11121314
151617181920 21
22232425262728

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 22nd, 2026 04:13 pm
Powered by Dreamwidth Studios