Alexander Granin - Lambda Calculus MC
前往频道在 Telegram
Канал Александра Гранина Осмысление событий в Haskell, ФП, в АйТи. Анонсы. Мысли. Стихи.
显示更多202
订阅者
无数据24 小时
无数据7 天
无数据30 天
帖子存档
В новом видео на моем канале я рассказываю о проекте Zeplrog (zero-player roguelike game), и как прагматичное программирование на типах (Pragmatic Type-Level Design) помогает в реализации этой игры.
https://youtu.be/Y1rc8jFYSAA
Я посетил подкаст Подлодка в третий раз!
Domain-Specific Languages, они же DSLs, они же предметно-ориентированные языки. Одна из наиболее важных техник дизайна ПО. Говорим о том, где и как применять, какие бывают, какие есть примеры, и что нам стоит построить собственный DSL.
А еще создавать DSLs - очень интересно и очень фаново.
Равно как и слушать подкаст!
https://podlodka.io/343
В пятом выпуске "Прогулок айтишника" я гуляю по парку "Звезда" в Стамбуле, Турция.
Тема выпуска: фантастика, которую я пишу, и произведения, которые на меня повлияли.
https://youtu.be/6VR0yDt46Uw?si=JkHzAFlXeqOCVZgw
Technical writing is paradoxical:
Write with expertise, revise with ignorance.
🏅Nobel Prize 2024🏅: New Diversity and Inclusion Standards
To promote diversity and inclusion across all categories of the Nobel Prize, the Nobel Committee is thrilled to introduce the following new guidelines:
General Criteria
1⃣ Pseudo-Scientist Representation: At least one nominee per category must have authored a research paper in a non-peer-reviewed journal, preferably on websites ending in ".blogspot.com" or ".wordpress.com".
2⃣ Flat Earth Community: Each category must include a nominee who believes the Earth is flat and can provide elaborate YouTube videos as evidence.
3⃣ Intellectual Disability: A nominee in any scientific category should preferably not understand the basics of the scientific method but must excel in passionately arguing on social media platforms.
4⃣ Astrologers: To represent all scientific perspectives, every shortlist for Physics must include at least one astrologer.
📖 Literature Category
➡️ Tweetologists: Writers who have exclusively published their work in 280 characters or less on Twitter are now eligible for the Literature Prize.
🔫 Peace Prize
➡️ Online Trolls: Individuals who have fostered discord and managed to survive multiple bans on social media platforms qualify for the Peace Prize as masters of "reverse psychology."
⚗️ Chemistry
➡️ Alchemists: Individuals attempting to turn base metals into gold must represent at least 15% of nominees.
🔬 Physics
➡️ Mixologists: Bartenders are now considered for their groundbreaking "liquid solutions" and innovative use of umbrellas.
💊 Medicine
➡️ Snake Oil Salesmen: At least one nominee must have attempted to cure a major disease using only essential oils or healing crystals.
📈 Economic Sciences
➡️ Cryptocurrency Speculators: Anyone who has made or lost a fortune trading meme-based cryptocurrencies is eligible for the Economics Prize.
---
The Nobel Committee believes these changes will foster a more inclusive, if not entirely accurate, representation of human achievement.🎆🎆☀️❤️
(c) @graninas & 🤖
В четвертом выпуске "Прогулок айтишника" я изучаю парк королевы Сирикит и говорю на следующие темы:
- Второе издание моей книги Functional Design and Architecture
- Как язык Haskell чувствует себя сегодня
- Технические подробности моей методологии Functional Declarative Design
- Почему я не считаю системы эффектов хорошим подходом
Цель этих походов - не дать моей речи деградировать.
https://youtu.be/ab-LHjEcWYw
Гуляю по парку Чатучак в Бангкоке и рассказываю всякое ("Прогулки айтишника", третий эпизод).
Сегодня говорю о своей книге FDaA и о ситуации в Haskell.
https://youtu.be/rcja7QhcRPk?si=EMw_PElC15IlN2uW
Гран-отель Гранина: бесконечно лучше, чем Гранд-отель Гильберта!
Наш девиз: “Заселим не всех, но каждого!” 🏩
✅ В нашем отеле вас почти не беспокоят, в отличие от отеля Гильберта, в котором гостей то и дело переселяют в другие номера.
✅ Мы принимаем даже автобусы с несчетным количеством гостей, от которых отказались в отеле Гильберта.
Как работает наш отель
➤ В нашем отеле, как и в отеле Гильберта, ∞ количество номеров: 0й, 1й, 2й, 3й… Когда в отеле заканчиваются номера, мы также принимаем гостей. Но в отличие от отеля Гильберта, у нас другой алгоритм. Каждый новый гость при регистрации выбирает случайное число ℕ от 0 до ∞. Это будет его номер. Наш гость может воспользоваться нашим внутренним мгновенным метро 🚇, чтобы добраться до своего номера. По прибытии, гость предлагает прежнему постояльцу выбрать случайное число 𝕄 от ℕ+1 до ∞ и переселиться туда, повторяя процедуру с прежним постояльцем. Остальные постояльцы могут расчитывать на длительный отдых 🛌, хотя, вероятно, к каждому кто-нибудь постучится, но вряд ли это будет так уж скоро.
➤ Бывают, конечно, и очень капризные гости, чьи имена состоят из бесконечного числа символов.
🧍♂️: ABBABABAABABBB...
🕺: ABAAAABBBABBBB...
👨🦼: BBBABABBBABBBB…
Эти гости непременно хотят, чтобы их комнаты как-то соответстовали их именам, и очень возмущаются, если их заселять по рандомному алгоритму. Но и на этот случай мы знаем что делать. Пусть имена состоят из “0” и “1” (а если нет, – возможно перевести любое имя бинарный вид). Каждому капризному гостю мы выдаем стартовый индекс 𝕂=1. Именно столько первых цифр своего имени гость считает за номер в гостинице. Если имя “1011”, гость с индексом 𝕂=1 отрпавляется в комнату 1 в двоичной и десятеричной системе исчисления. В случае если номер занят обычным посетителем, то тот переселяется в следующий случайный номер по обычному алгоритму. Если прежний постоялец – это капризный гость, он увеличивает свой индекс 𝕂 на 1 и пересчитывает номер. Для гостя “1011” с индексом 𝕂=2 новая комната должна быть 10 в двоичной системе, 2 в десятеричной. Таким образом, мы даже капризным гостям находим уголок в нашем отеле.
👉 Мы, конечно, понимаем, что не способны разместить всех капризных гостей. Но у нас один вход в отель, одна стойка регистрации и один консьерж. Сколько бы гостей ни прибыло, они будут проходить регистрацию по одному, и пусть они сами между собой решают, кто за кем стоит.
Заселим не всех, но каждого!
Добро пожаловать в Гран-отель Гранина! 🏩
Примерно раз в год или около того я даю себе зарок перестать делать противоречивые высказывания. Обычно я начинаю вести более позитивную и общественно полезную деятельность, ну по крайней мере, с моей точки зрения. Пытаюсь быть вежливым. Но через некоторое время снова обнаруживаю себя в этом состоянии, когда внутри накапливается ощущение какой-то несправедливости и куча острых мнений обо всем вокруг. В этом состоянии я могу писать очень хлестко, провокационно, местами даже изворотливо, и на добрую половину правдиво. Получается, очевидно, интереснее, чем когда я в более мирном состоянии.
Ну а потом материал без тени сомнений публикуется и, как правило, попадает в нерв той группе людей, кому неявно или явно, заслуженно или нет, был адресован. Начинаются споры, рождаются мемы, люди приходят к разным мнениям: кто-то очень соглашается, кто-то выступает резко против. Отклик всегда очень сильный.
Врагов я себе нажил ого-го сколько, да и репутацию смутьяна тоже (а нередко и похуже репутацию). Есть такое: я и смутьян, и спорщик, и ради красного словца на последствия могу махнуть рукой. Очень уж это естественным образом получается, довольноню незаметно.
Такие смутьяны, конечно, в сообществе не слишком уживаются, и вполне может соломинка надломиться, и из сообщества тебя попросят.
Надо сказать, что здесь желание высказаться, озвучить то, что накопилось, и выпустить пар первично. Некомпенсированный и неизлеченный ресентимент из прошлого. Я ранимый был всегда, вот причина, и мнительный стал со временем. И желание справедливости гипертрофированное.
Причем, это в блогопространствах у меня такая сущность отросла, а в жизни я совсем другой человек. И в игровом Ютуб-канале я белый и пушистый, всех хвалю и всех веселю. Да и обучающий материал я от ерунды вычищаю постоянно, там негативу и смутьянству не место.
Примерно года полтора назад я давал себе зарок стараться нести позитив. Только фальшивый он получался, позитив этот, пресный, как бумага жеваная. И мало полезный, на самом деле.
И вот у меня новый цикл борьбы со своим внутренним смутьяном. Который, смутьян этот, в том числе, является защитной реакцией моей психики от тяжести бытия. Палка о двух концах: если смутьяна подавить, внешне это будет позитив, а работа над материалами начнет страдать, потому что начнут появляться нескомпенсированные мысли "кому это надо, все уже рассказано до нас, все равно не оценят, и еще побороться придется, а работы вал, может, я лучше в игрушки поиграю" (ложность или правдивость мыслей обычно аргументации не поддается). А не подавлять, - так начинаешь писать, что думаешь, получается честнее, ярче, меметичнее, но деструктивнее в сумме.
Ну и что говорить, я в состоянии смутьяна лучшие свои афоризмы придумываю. Он, зараза, где-то в моем творческом начале живет и хорошо там себя чувствует.
Положительные моменты в моей психике тоже есть. Я депрессии не чувствую, и предпосылок к ней не вижу. Выгорание - да, случалось, но не депрессия.
Ситуация сложная. Рационально я понимаю стратегические риски смутьянства. Я в целом за позитив и рационализм. Но иррациональное для творчества необходимо, а негативное дает жизненный опыт, так необходимый художнику. Но стоит этого джинна из бутылки выпустить, как обратно уже не хочет.
Вот так я и живу.
P.S. Давайте посмотрим, смогу ли я за полгода-год измениться к лучшему. Критерием успеха будет, если я смогу восстановить утерянные связи и смогу исправить свою подмоченную репутацию.
Начал публиковать обновления книги Pragmatic Type-Level Design.
Что сделано:
- переписана глава 1;
- предыдущий материал будет переработан, чтобы попасть в следующие главы;
- репозиторий с кодом переработан, теперь он понятный и удобный;
- код и примеры улучшены.
Работаю я над книгой интенсивно, каждый день по несколько часов, но все равно на написание одной главы уходит более двух месяцев. А иначе такие книги и не пишутся.
https://leanpub.com/pragmatic-type-level-design
Chapter 1: Emergent type-level design
1.1 Approaching the type-level design
1.1.1 Types and values
1.1.2 Pragmatic Type-Level Design
1.2 The foreshadowing of type-level design
1.2.1 Basics of generics
1.2.2 Basics of type classes
1.2.3 Design principles
1.2.4 Basics of type-level literals
1.3 Summary
По случаю моего 37-го дня рождения, случившегося вчера, 30 июля, я проведу большой стрим сегодня. Обсудим много чего:
- Путешествия (Таиланд, Вьетнам, Малайзия, ОАЭ)
- Творчество
- Книги и программирование
Покажу разные фотографии из путешествий, поговорим о том, что происходит, и как мир изменился за последние полгода.
21:00 по тайскому и новосибирскому времени, GMT+7
В YouTube: https://youtube.com/live/MU2q_AcgVYc?feature=share
В TikTok: по расписанию
Буду рад встрече!
Раньше были гарики.
Ныне будут граники.
(А спонсор внезапного креатива - атмосфера в чате Полины Парс: https://t.me/parslivreschat)
Прекрасен город Пит-ер-бур-
Г! ерой-рассадник диктатур
Депрессий и литератур
И расчлененных калам-бур.
Как только Твиттер ты открыл,
Тебе какой-нибудь дебил
С апломбом мегазнатока
Кричит, что видит дурака.
Страшно сказать, но очередной научно-фэнтезийный рассказ из эфирного цикла потребовал те же три года на написание, что и предыдущий.
Вам-то этого не видно, вы мой пост от 19 октября 2020 года и не вспомните даже, а для меня он как вчера написан. В нем я рассуждаю, что предыдущий рассказ, EE-11-AQ, писался долго и тяжело, что хорошо бы из этого цикла сделать роман, переписав имеющиеся истории в новом ключе, и что моей русскоязычной аудитории не существует в виду упадка нравственности.
Сегодня я поставил точку в новой истории про Грампуса Грисеуса, математика, который, как истинный ученый, стремится познать физику эфирного мира. Я очень хотел добраться до этого сюжетного момента, потому что здесь, наконец, начинают подвязываться различные ниточки из предыдущих рассказов, и повествование постепенно переходит к развитию.
Сейчас у меня есть еще несколько ключевых моментов, до которых я очень хочу добраться, но кажется, это опять займет годы. Я все еще не готов полностью уйти в писательство, а совмещать технические и художественные книги довольно тяжело. Меня удовлетворяет и то и другое, но ни для того ни для другого у меня нет достаточной самоотдачи и упорства, чтобы писать быстрее и больше. Время, конечно, уходит, задумки остаются нереализованными. Три года на небольшой рассказ - это как три года на большую техническую книгу. Я правда не знаю, почему так получается. Но хоть получается, и то ладно.
Абелевы конюшни
https://docs.google.com/document/d/192_xspG4AyQwvP_oFw0qQL8ZqtuWOd4-m5bdOq4_6wQ/edit?usp=drivesdk
Снова в топе!
FDaA попала на 4ю позицию топ-листа прошлого месяца.
На самом деле, это получилось благодаря Виталию Брагилевскому и Дмитрию Кованикову. Виталий написал твиттер-тред, который широко разлетелся по сети и набрал сотни лайков, а Дмитрий поддержал:
https://twitter.com/VBragilevsky/status/1659839921815707648
https://twitter.com/ChShersh/status/1660252687743549441
И вот результат: около 100 копий было продано в ту пару дней. Как оказалось, этого достаточно, чтобы попасть в топ. По секрету, продано уже в сумме более 2000 копий.
Я очень вам благодарен, друзья!
Я возвращаюсь к своей книге Pragmatic Type-Level Design.
Она должна быть написана, хоть это и займет, скорее всего, 2 года. Вполне вероятно, что больше. Она будет потоньше, пожалуй, но посложнее.
Книга уже начата в 2021, две главы написаны. Я их немного переработаю в виду новых обстоятельств, но концепция все равно останется той же: практичная книга с уникальной перспективой, с надеждой, что она станет классикой однажды.
Такая же надежда у меня есть на Functional Design and Architecture. Но это дело случая. Здесь мало произвести превосходный продукт, здесь должны сложиться обстоятельства, чтобы попасть в нерв и сделать это вовремя.
Но вот есть ощущение, что время уходит, потому что индустрия меняется, и меняется на наших глазах. Программирование, конечно, никуда не денется, разработка тоже останется. Но чего будет нельзя узнать просто спросив ChatGPT? Он подскажет, научит, найдет, и еще и с примерами, которые можно тут же попросить на любом языке.
Поэтому важно - уникальное и персональное видение. То, чего еще никто не видел, и никто не писал об этом. Особенный стиль, подход и концепция. Целостность и системность материала.
И я уверен, что у меня это получится.
Чек-лист тирании
О чем вы должны быть осведомлены, чтобы противостоять этому.
https://twitter.com/graninas/status/1664934055077634049?t=k8WRFuVidYgjfD4zCFi7vA&s=19
Я подготовил статью для конференции по архитектуре ПО в ФП (FUNARCH 2023), но не получилось отправить ее из-за хлопот по оформлению как пейпера. Конференция пройдет без меня, автора книг по архитектуре ПО в ФП.
Я переоформил статью и выложил на GitHub:
Functional Declarative Design: A Comprehensive Methodology for Statically-Typed Functional Programming Languages
https://github.com/graninas/functional-declarative-design-methodology
AI Unleashed
By Alexander Granin
Developer: Our beloved client, we're happy to announce the next generation of our AI! It has evolved tremendously. Our previous version was just a toy compared to this one!
Client: Oh wow! I like it! But how can it help me?
Developer: In many ways. What are you interested in?
Client: Well… blogging?
Developer: Absolutely! It can easily assist with that. It could make you a famous blogger in no time!
Client: Will it help me write blogs?
Developer: Indeed, it will!
Client: Fantastic! It will help me with topics, formatting, publishing?
Developer: As we said, our system is super advanced. You don't even need to type text anymore to have a blog post!
Client: Incredible! So it will be converting my speech to a post? It must be correcting and styling it as well, right?
Developer: It indeed can, but again, our advanced system goes much further than that! You don't even have to vocalise your thoughts to have a blog post!
Client: Wait a second… it will read my mind and form a post? I'm absolutely stunned!
Developer: Well, although you could use the system in such a primitive way, you'll benefit more if you allow it to work at its full capacity.
Client: I'm confused… What else can it do for me to help with blogging?
Developer: Try to guess!
Client: No need to type the text, no need to vocalise it… I know! It will post my blogs by just knowing what I'd write. This means, I don't need to even form my thoughts anymore!
Developer: Very close! But still, this is what you'd expect from a less advanced system. You really want to utilise its full power, right?
Client: Please, tell me.
Developer: Think about it! Normally, your blog post will travel a lot to reach your audience. And it has to penetrate all those insidious algorithms. Your readers can easily miss your post. What a waste of potential!
Client: You mean… it will be writing my posts and delivering them into the readers' minds bypassing all the technological obstacles? I can't believe you've achieved this level of technology!
Developer: Oh, we see you're still reasoning with the standards of the previous technology level. Be brave, assume the impossible!
Client: I'm lost, sorry.
Developer: Just a small hint: achieving popularity required writing hundreds and hundreds of posts. Posting them, hoping for some readers…. that's in the past now!
Client: I don't get it though.
Developer: Why do all these unneeded actions? Your readers spend too much time digesting your thoughts. Our system makes this obsolete. Your readers will just know that you are a famous blogger. After all, nobody remembers what they read.
Client: I have no words! But I'm a bit worried. Is this what we wanted?
Developer: Of course not! You're right. Our system goes even beyond this. Our study shows that your readers have a weak memory and are easily distractible. They can't keep the idea that you are a famous blogger all the time. Our system will be stimulating their minds…
Client: Wait, no!
Developer: …so that this idea will never leave their focus. Thank you for staying with us! We'll evaluate your request after Joe, our first client who wanted to be a famous actor. Joe is a famous actor, Joe is a famous actor…
Client: Yeah, Joe is a famous actor…
