- The Hallway Track: SciNoj Light #1 Data Analysis Stories - Timothy Pratley
- How to reuse a macro like a function - technosophist
- Clojure MCP Demo - Valtteri Harmainen - video of Metosin person using Bruce Hauman's clojure-mcp
- Datomic: this is not the history you're looking for - Valentin Waeselynck
- Programming at the REPL: Introduction - originally by Valentin Waeselynck(?)
- Glamorous Toolkit
- Shared library versions - Douglas Creager
- Claim that "the only way Emacs can use tree-sitter is via dynamic library"
- Documentation Groups
Emacs can list functions based on various groupings. For instance,
string-trim
andmapconcat
are “string” functions, soM-x shortdoc RET string RET
will give an overview of functions that operate on strings.The documentation groups are created with the
define-short-documentation-group
macro. - LSP client in Clojure in 200 lines of code - vlaaad
- Bthreads: A Simple and Easy Paradigm for Clojure - Thomas Cothran
- REPL-able tests in Clojure - Phillip Lopes Mates
- Bruce Hauman Has Done It Again - Valtteri Harmainen
- Maintainability and Refactoring Impact of Higher-Level Design Features - Titus Winters - CppCon 2019
Multi-Step Refactoring
- YouTube Videos of Jay McCarthy Courses
- The Myth of the Objective - Oliver Powell
- brush - "bash/POSIX-compatible shell implemented in Rust"
- rusty_bash - "bash written with Rust"
-
The Unix process API is unreliable and unsafe
- Beyond process supervisors
- Mistakes to avoid when designing Unix dæmon programs - Jonathan de Boyne Pollard
- Beyond process supervisors
-
The received wisdom suggests that Unix’s unusual combination of fork() and exec() for process creation was an inspired design. In this paper, we argue that fork was a clever hack for machines and programs of the 1970s that has long outlived its usefulness and is now a liability. We catalog the ways in which fork is a terrible abstraction for the modern programmer to use, describe how it compromises OS implementations, and propose alternatives.
As the designers and implementers of operating systems, we should acknowledge that fork’s continued existence as a first-class OS primitive holds back systems research, and deprecate it. As educators, we should teach fork as a historical artifact, and not the first process creation mechanism students encounter.
-
On Read/Write Code - 6cdh
-
Keep Healthy - 6cdh
- Course Webpage for Compilers (P423, P523, E313, and E513) - has lecture video links (this course uses the "Essentials of Compilation" book and is taught by the author)
- Repository for course - has link to the book (also has links to lecture videos)
- “Clojure in Product. Would you do it again?” podcast
- My new hobby: watching AI slowly drive Microsoft employees insane - reddit thread
- Making Lambda Island Free
- On Extensibility - Laurence Chen
- Have any points from Clojure the bad parts been addressed? - reddit thread about a 2017 video
- This One Programming Choice Completely Changed These Tech Firms—Here's How - Artem Barmin
- Clojure vs Statically typed programming languages - discussion started by Amano Kenji at Clojurians Zulip
- The Shocking Secret About Static Types - Eric Elliot - posted to Clojurians Zulip by Amano Kenji
- How to programming fast - 6cdh
-
Writing a C Compiler in Clojure - Shagun Agrawal
-
Babashka Wiki | Self contained executable - no JVM needed
You can make a self-contained binary using an uberjar.
- Functional vs Data-Driven development: a Case-Study in Clojure & OCaml - Kiran Gopinathan
- Clojure from a Schemer's perspective - Peter Bex
- Programming People - LEFTOVER SALAD
- Sound Gradual Typing: Only Mostly Dead - Sam Tobin-Hochstadt
- Crash Course on Notation in Programming Language Theory - Jeremy Siek
- Crash Course on Notation in Programming Language Theory (Part 1) - Jeremy Siek - λC 2018
- Crash Course on Notation in Programming Language Theory (Part 2) - Jeremy Siek - λC 2018
- Dana Scott & Jeremy Siek - Theory & Models of Lambda Calculus: Typed and Untyped (Part 1) - Dana Scott and Jeremy Siek - λC 2018
- Teaching and Learning Compilers Incrementally - Jeremy Siek - thirteenth RacketCon (2023)
- Teaching and Learning Compilers Incrementally - Jeremy Siek - ICFP 2023
- The one ring problem: abstraction and our quest for power - Ted Kaminski
- Reproducible Data Science with Clojure - Kira Howe
- Clojure Tidy Tuesdays - Kira Howe
- ClojureTV video view analysis - Timothy Pratley
- Exploring probability distributions - Timothy Pratley
- rewriting a clojure file with rewrite-clj and babashka - oxalorg
- Musical Elitism is Everywhere - Tantacrul
- Non-goals Section of "P2137R0 Goals and priorities for C++"
- How to memorize the ASCII table - John D. Cook
- Don Syme on Type Classes for F# - Don Syme
- Resilient LL Parsing Tutorial - Alex Kladov (matklad)
- matklad's links - "A bunch of things I find myself repeatedly referring to in various discussions!"
- Demystifying Emacs’s Window Manager - Mickey Petersen
- The Emacs Window Management Almanac - Karthik Chikmagalur
- Emacs: control where buffers are displayed (the 'display-buffer-alist') - Protesilaos Stavrou
- 4 Keys to Motivating Your Unmotivated Students - Benjamin Keep
- Forgetting doesn't work like you think - Benjamin Keep
- Organizing Clojure code - A real problem? - Clojureverse discussion started by Eric Normand
- Organizing Clojure code with Functional Core, Imperative Shell - Shantanu Kumar
- What no one tells you about learning faster - Benjamin Keep
- List of software architecture styles and patterns
-
- Polylith in a Nutshell - James Trunk
- Polylith - the last architecture you will ever need - Joakim Tengstrand
- The Polylith architecture - Joakim Tengstrand
- Understanding Polylith through the lens of Hexagonal architecture - Joakim Tengstrand
- The origin of complexity - Joakim Tengstrand
- clojure-polylith-realworld-example-app - Clojure, Polylith and Ring codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API
- Production Systems
-
Vertical Slice Architecture - Jimmy Bogard
-
Onion / Clean -> Vertical Slice - Jimmy Bogard
I was on a large project with the person that came up with Onion architecture. It had worked on smaller (max 3 months) projects, as it didn’t cave under its own weight.
Fast forward 4 months and we realized that Onion (or Clean in its current incarnation) in fact cant scale with complexity or size. So we collapsed everything down and removed all the indirection.
We couldn’t remove all the needless indirection and abstraction, but most of the silliness. The next big project I was on, I removed all of the sacred cows to see what patterns would naturally emerge. The result was the Vertical Slice Architecture stuff, built on the ashes of defactoring Onion/Clean. I blogged about this journey in my Put Your Controllers On a Diet series almost a decade ago.
-
-
Difficulty in demonstrating benefits of architectures - nanothief
One large issue with demonstrating methodologies as clean architecture, microservices or object orientated programming is they only become beneficial at larger scales:
-
A program under 1000 LOC would rarely benefit from object inheritance; just use an if/switch statement
-
If you have less than 10 domain objects/database tables you probably don't need microservices or any of the "clean architecture" techniques; just make a single EF Core + ASP.net Core project.
This causes a catch 22 problem when writing examples of those ideas. If you make a simple example, then using such methodologies is actually a net negative to the project - the complexity they add is far greater than the benefit they provide. Newer developers may look at such an example and think they should do it the same way for their project even though it isn't necessary.
If you make a much larger example, then not only is it going to take a lot of time to complete, but it is going to make the example much harder to follow. It will likely not be tested well either (since an example app doesn't make you any money and isn't used anywhere there isn't any pressure to make it work well).
-
- The Onion Architecture : part 1 - Jeffrey Palermo
- Dependency inversion principle - doesn't seem like the best naming in the world...
- Hexagonal architecture - Alistair Cockburn - via archive.org
- The Onion Architecture : part 2 - Jeffrey Palermo
- The Onion Architecture : part 3 - Jeffrey Palermo
- The Onion Architecture : part 4 - Jeffrey Palermo
- What is the onion architecture? - Eric Normand
- A Simple Way to Learn Complex Skills - Benjamin Keep
- immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity.
- ramda - Ramda emphasizes a purer functional style. Immutability and side-effect free functions are at the heart of its design philosophy.
- Wiki - lots of resources
- Introducing Ramda - Buzz de Cafe
- Why Ramda? - Scott Sauyet
- Favoring Curry - Scott Sauyet
- Why Curry Helps - Hugh Jackson
- Hey Underscore, You're Doing It Wrong! - Brian Lonsdorf
- Thinking in Ramda - Randy Coulman
- Cookbook
- Qigong for Seniors - 5 Tips for Practice - Jeff Chand
- Listen to your body
- 70% rule
- Notice small improvements
- Coordinate body and breath
- Find flow
- The Knowledge That Underlies Everything | Tacit Knowledge - Benjamin Keep
- msvc-wine - Scripts for setting up and running MSVC in Wine on Linux
- A Decision Maker's Guide to Typed Functional Languages - Evan Czaplicki - GOTO 2024
- How visualizations help you learn (and how to use them) - Benjamin Keep
- Learning Beyond Facts | Conceptual Knowledge, Procedural Knowledge, and More - Benjamin Keep
- M-x window-swap-states - suppose there are two windows and one wants to swap the buffers...
- pacstall - An AUR-inspired package manager for Ubuntu
- Interactive language modeling visualization
- Scicloj - Recommended reading
- Desirable Difficulties - How Learning Works - Benjamin Keep
- Intro to Running LLMs Locally - Adrian Smith
- Clojure in new fields - opening up - Daniel Slutsky
- FRUSTRATED or BORED when learning? Try this. - Benjamin Keep
- What People Get Wrong About Deliberate Practice - Benjamin Keep
-
Finale - How Music Software Dies - Tantacrul - stopping at 1:09:32 might be better for one's health
-
Write Excel docs & PDFs with Clojure data, from higher level abstractions (tree, table) or via a manual grid specification.
-
Is deliberate practice all wrong? - Benjamin Keep
-
Qi Gong Routine for Back Pain - Easy - Jeffrey Chand
- Tai Chi Made Easy: Do I Really Need a Teacher? - David-Dorian Ross - some comments sort of along the lines of the "Practicing Versus Inventing With Contrasting Cases: The Effects of Telling First on Learning and Transfer" paper...