https://blog.khinsen.net/posts/2020/05/05/wanted-a-hierarchically-modular-software-architecture/
A hierarchically modular software architecture
Me: хотеть.
Перекликается с проблематикой, затронутой в https://t.me/plcomp/72
A hierarchically modular software architecture
Me: хотеть.
Перекликается с проблематикой, затронутой в https://t.me/plcomp/72
blog.khinsen.net
Wanted: a hierarchically modular software architecture
In his 1962 classic "The Architecture of Complexity", Herbert Simon described the hierarchical structure found in many complex systems, both natural and human-made. But even though complexity is recognized as a major issue in software development today, t...
Пишут, что https://people.cs.uchicago.edu/~shanlu/paper/hotos19_azure.pdf
Good luck with dynamically typed languages.
(Сам я, конечно, не читал что там пишут 😁)
found that 21% of the cloud outages resulted from inconsistent data format assumptions across different software components and versions
Good luck with dynamically typed languages.
(Сам я, конечно, не читал что там пишут 😁)
https://zuckermaninstitute.columbia.edu/innovation-scholar-zenna-tavares-wants-give-machines-common-sense
Кто-то плотно занимается counterfactual reasoning. Звучит многообещающе. Я слышал, у них открыты вакансии.
Кто-то плотно занимается counterfactual reasoning. Звучит многообещающе. Я слышал, у них открыты вакансии.
https://hal.archives-ouvertes.fr/hal-02117588/document
"Dealing With Software Collapse" (aka "bit rot").
The paper talks about situation with Scientific Software but pretty relevant to all of Software Development. The author introduces the notion of time scale of changes in a project and suggests different "collapse mitigation strategies" based on the estimated scale of the project and prospective dependencies.
The author concludes with a personal story dealing with collapse of Scientific Python ecosystem years before Python 3 became a must. Which was rather surprising for me and is pretty concerning.
"Dealing With Software Collapse" (aka "bit rot").
The paper talks about situation with Scientific Software but pretty relevant to all of Software Development. The author introduces the notion of time scale of changes in a project and suggests different "collapse mitigation strategies" based on the estimated scale of the project and prospective dependencies.
The author concludes with a personal story dealing with collapse of Scientific Python ecosystem years before Python 3 became a must. Which was rather surprising for me and is pretty concerning.
More innovation!
While browsing a Github repository, press the period key
While browsing a Github repository, press the period key
. . This opens the repository in a full-fledged VS Code-based web editor for easy browsing, pushing changes and evaluating PRs. More info.GitHub Docs
The github.dev web-based editor - GitHub Docs
Use the github.dev web-based editor from your repository or pull request to create and commit changes.
https://doi.org/10.1017/S0956796821000113
"How to design co-programs" by Jeremy Gibbons
Статья призывает расширить подход How to Design Programs (aka HtDP, серия курсов, обучающих студентов программированию с нуля, плюс два издания одноимённой книги: https://htdp.org/ если кто не знает) за счёт введения понятия ко-рекурсивных функций и соответствующих паттернов для их построения.
Говоря по-простому, ко-рекурсивные функции — это такие, которые строят свой результат "по кусочкам", используя конструкторы соответствующего (алгебраического) типа данных, вместо того (или вместе с тем) чтобы разбирать входные данные "на кусочки" при помощи сопоставления с образцом (aka [datatype] pattern matching).
Я безусловно согласен с Гиббонсом в том, что ко-рекурсивные функции — очень полезный инструмент в арсенале разработчика, особенно, начинающего. Тем не менее, на мой взгляд, эта тема требует намного более тщательной методической проработки чтобы органично встроиться в общую канву HtDP.
Более того, самая интересная часть этой статьи — ещё одна статья, которая не была написана, к сожалению. 😊 В середине повествования Гиббонс обсуждает "генеративную рекурсию" (generative recursion, термин из HtDP), и показывает как функции (изначально) в форме общей генеративной рекурсии могут быть представлены в виде композиции структурно-рекурсивной и ко-рекурсивной функции (так же известной как "иломорфизм" или "хиломорфизм" — hylomorphism). К сожалению, за кадром остаются самые важные и интересные вопросы: как понять, что данную конкретную функцию можно представить в виде такой композиции, или придётся использовать генеративную рекурсию общего вида? как выбрать подходящую промежуточную структуру для рекурсии и ко-рекурсии? Возможно, эти вопросы удастся прояснить тем, кто интегрирует тему ко-рекурсивных функций в свои учебные программы. 😊
"How to design co-programs" by Jeremy Gibbons
Статья призывает расширить подход How to Design Programs (aka HtDP, серия курсов, обучающих студентов программированию с нуля, плюс два издания одноимённой книги: https://htdp.org/ если кто не знает) за счёт введения понятия ко-рекурсивных функций и соответствующих паттернов для их построения.
Говоря по-простому, ко-рекурсивные функции — это такие, которые строят свой результат "по кусочкам", используя конструкторы соответствующего (алгебраического) типа данных, вместо того (или вместе с тем) чтобы разбирать входные данные "на кусочки" при помощи сопоставления с образцом (aka [datatype] pattern matching).
Я безусловно согласен с Гиббонсом в том, что ко-рекурсивные функции — очень полезный инструмент в арсенале разработчика, особенно, начинающего. Тем не менее, на мой взгляд, эта тема требует намного более тщательной методической проработки чтобы органично встроиться в общую канву HtDP.
Более того, самая интересная часть этой статьи — ещё одна статья, которая не была написана, к сожалению. 😊 В середине повествования Гиббонс обсуждает "генеративную рекурсию" (generative recursion, термин из HtDP), и показывает как функции (изначально) в форме общей генеративной рекурсии могут быть представлены в виде композиции структурно-рекурсивной и ко-рекурсивной функции (так же известной как "иломорфизм" или "хиломорфизм" — hylomorphism). К сожалению, за кадром остаются самые важные и интересные вопросы: как понять, что данную конкретную функцию можно представить в виде такой композиции, или придётся использовать генеративную рекурсию общего вида? как выбрать подходящую промежуточную структуру для рекурсии и ко-рекурсии? Возможно, эти вопросы удастся прояснить тем, кто интегрирует тему ко-рекурсивных функций в свои учебные программы. 😊
Cambridge Core
How to design co-programs | Journal of Functional Programming | Cambridge Core
How to design co-programs - Volume 31
❤1
Do you like ultra-modern, fresh-from-the-future programming languages and development environments? Are you developing one? Take part in http://marianoguerra.github.io/review-jam/ ! 😃
The thing is still forming, contact the organiser with your own ideas and suggestions.
The thing is still forming, contact the organiser with your own ideas and suggestions.
Третьего дня забрал с почты https://madebyknock.com/products/gold-titanium-feld47 — это, конечно, оргазм на кухне.
Я сравниваю с https://www.hario.co.uk/products/hario-ceramic-burr-canister-hand-coffee-grinder которая, хочется верить, не самая плохая ручная кофемолка. И тем не менее, разница — небо и земля. Помимо некоторых просчётов в UX данной модели Hario (банально неудобно держать, потому что сильно "пузатая"), имеется приличный (или неприличный? 😒) люфт, который ведёт к небольшим "заеданиям" и заметной неравномерности помола.
Field 47 — прямая противоположность: ни малейшего люфта нигде, при этом работа механизма невероятно плавная и "лёгкая". Однородность на высоте. При этом и скорость помола выше в 2-3 раза (20-25 секунд на ~17-18 г. против 60+ секунд).
В общем, качество завариваемого кофе увеличилось, вместе с чем увеличилось и качество жизни. Чего и вам желаю! 😊
Я сравниваю с https://www.hario.co.uk/products/hario-ceramic-burr-canister-hand-coffee-grinder которая, хочется верить, не самая плохая ручная кофемолка. И тем не менее, разница — небо и земля. Помимо некоторых просчётов в UX данной модели Hario (банально неудобно держать, потому что сильно "пузатая"), имеется приличный (или неприличный? 😒) люфт, который ведёт к небольшим "заеданиям" и заметной неравномерности помола.
Field 47 — прямая противоположность: ни малейшего люфта нигде, при этом работа механизма невероятно плавная и "лёгкая". Однородность на высоте. При этом и скорость помола выше в 2-3 раза (20-25 секунд на ~17-18 г. против 60+ секунд).
В общем, качество завариваемого кофе увеличилось, вместе с чем увеличилось и качество жизни. Чего и вам желаю! 😊
Made By Knock
Feld47 Titanium Burr Manual Coffee Grinder
The Feld47 by Knock has always been our top of the range model with bigger burrs, bigger capacity and a larger crank arm than our other models. In 2021, we pushed things even further by adding titanium nitrided burrs for a faster, cleaner and an even smoother…
Самая сильная логическая система, которая только может быть: http://inutile.club/estatis/falso/
Мало кто знает, но уже много лет существует поддержка прямо в Isabelle/HOL и Coq! 😂
Мало кто знает, но уже много лет существует поддержка прямо в Isabelle/HOL и Coq! 😂
https://jupyterbook.org/intro.html
Что-то вроде продвинутого MD-book с возможностью вставки интерактивных Jupyter-backed примеров кода. Может пригодиться для подготовки учебных материалов.
Что-то вроде продвинутого MD-book с возможностью вставки интерактивных Jupyter-backed примеров кода. Может пригодиться для подготовки учебных материалов.
Интересно, почему Slack загружает свой интерфес, а потом всё стирает и загружает его заново? 🤔
https://monto-editor.github.io/about/
Анонсировано как что-то типа ещё более модульного Language Server Protocol для тех, кто хочет написать один раз плагин и использовать во всех редакторах.
Анонсировано как что-то типа ещё более модульного Language Server Protocol для тех, кто хочет написать один раз плагин и использовать во всех редакторах.
https://github.com/svenkeidel/sturdy
A Haskell library for specifying sound and modular abstract interpreters. The authors promise (or even claim having formally proven it) your abstract interpreter will be sound-by-construction because you build it gluing together sound components (with combinators that preserve soundness). Sounds very cool.
A Haskell library for specifying sound and modular abstract interpreters. The authors promise (or even claim having formally proven it) your abstract interpreter will be sound-by-construction because you build it gluing together sound components (with combinators that preserve soundness). Sounds very cool.
GitHub
GitHub - svenkeidel/sturdy: Sturdy is a library for developing sound static analyses in Haskell.
Sturdy is a library for developing sound static analyses in Haskell. - GitHub - svenkeidel/sturdy: Sturdy is a library for developing sound static analyses in Haskell.
Прикольная инфографика. Самое интересное — компании, про которые я бы и не вспомнил. 😅
https://ethanzuckerman.com/2016/06/22/the-worst-thing-i-read-this-year-and-what-it-taught-me-or-can-we-design-sociotechnical-systems-that-dont-suck/
Отличная статья, иллюстрирующая проблемы "решенее-ориентированного" мышления "инженеров". Все указанные эффекты проявляются не только в контексте решения социальных проблем, но и технических — слишком часто мы бежим "писать код" раньше, чем по-настоящему поймём, какую проблему нужно решить, в чём она заключается и чем обусловлена.
Ну и классическое "да чего там может быть сложного?!" в отношении проблем, про которые мы не имеем ни малейшего понятия. 😊
Отличная статья, иллюстрирующая проблемы "решенее-ориентированного" мышления "инженеров". Все указанные эффекты проявляются не только в контексте решения социальных проблем, но и технических — слишком часто мы бежим "писать код" раньше, чем по-настоящему поймём, какую проблему нужно решить, в чём она заключается и чем обусловлена.
Ну и классическое "да чего там может быть сложного?!" в отношении проблем, про которые мы не имеем ни малейшего понятия. 😊
Ethan Zuckerman
The worst thing I read this year, and what it taught me... or Can we design sociotechnical systems that don't suck? - Ethan Zuckerman
Note: Shane Snow wrote a long and thoughtful email to me about this post. While we agree to disagree on some substantive issues, primarily our thoughts about the future of VR, we also found quite a bit of common ground. He noted that my essay, while mostly…
https://blog.codefrau.net/2021/08/what-is-croquet-anyways.html
Crazy JavaScript (and Wasm in the future?) tech: VMs running in a browser synchronized through a mesh of repeaters. Even end-to-end encrypted for a good measure. Instantly multi-user collaborative persistent apps.
Crazy JavaScript (and Wasm in the future?) tech: VMs running in a browser synchronized through a mesh of repeaters. Even end-to-end encrypted for a good measure. Instantly multi-user collaborative persistent apps.
blog.codefrau.net
Frontend-only Multi-Player. Unlimited Bandwidth. Or: What is Croquet.io, really?
A multi-player web app needs a backend, right? What if I told you, it doesn’t? Read on for how Croquet gets rid of servers. No, really . I...
https://esoteric.codes/blog/jon-corbett
Абсолютно другой подход к языку программирования как концепции. Плюс некоторые инсайты в культуру индейцев и её конфликт с нашей культурой.
Абсолютно другой подход к языку программирования как концепции. Плюс некоторые инсайты в культуру индейцев и её конфликт с нашей культурой.
esoteric.codes
Interview with Jon Corbett
Corbett discusses how Cree#, which began as a