
he/him | Optics By Example: https://xitter.cf/t.co/WC3SHRY4Kl | Cunningham's law made manifest. | Building @unisonweb
Joined March 2012
- Tweets8.6K
- Following16.9K
- Followers21K
- Likes3.8K
Pinned Tweet
🔍Optics By Example has LAUNCHED! 🥳🎉
Go grab your copy! leanpub.com/optics-by-exampl…
Learn about the magic of Lenses, Traversals and Folds ✨
Thanks to everyone in the community who's helped make this a reality 😀
Happy to announce Unison Computing is branching out into consulting! iIf you'd like a hand with your project you'd be hard-pressed to find a better team to help, drop us a line 😎
We have a consulting group, now open to work in a variety of languages, including Scala, Haskell, Rust, Elm, and of course Unison. More details here: unison-lang.org/blog/consult…
Please boost to help us get the word out!
unison-lang.org/blog/consult…
Want to try a radically innovative programming language?
Unison is ready!
Unison is approachable, user-friendly, and has a great community of friendly folks :)
On top of that it has mind-bending features like serializable function closures and built-in distributed programming!
🎉 Unison 1.0 has landed!
After years of engineering, design, and community collaboration, we’re excited to announce this milestone!
Spread the word!
unison-lang.org/unison-1-0/
Chris Penner retweeted
📰 Unison 0.5.50 is out
* New `branch.diff` command (with diff-tool support)
* Support for adding comments to branch history
* MCP agents can `test`, `update`, and `run` code
* Smarter `run` command behavior
Check out the full release notes:
github.com/unisonweb/unison/…
I collected my thoughts on why mutexes suck; and what we can do about it. chrispenner.ca/posts/mutexes #STM #concurrency #parallelism #mutexes #Haskell
Chris Penner retweeted
📽️ Here's a quick video for anyone just getting started with Unison.
The gist of it: install the UCM, create a scratch file in the right place, and have fun programming!
youtu.be/13Dooyjg6dc?utm_sou…
Chris Penner retweeted
In 1983, a Pixar engineer pulled off one of the craziest C hacks ever.
He merged a switch and a do-while loop just to make code faster.
It looked illegal. It wasn’t.
It’s called Duff’s Device.
Don't get too hung up on #Monads, there are other ways to sequence effects; including Arrows; and they provide even better static analysis! Let me know what you think :)
#Haskell
chrispenner.ca/posts/arrow-e…
New blog post!
#Haskell is built on a foundation of Monads, but are they really the optimal way to sequence effects or should we keep looking for something better?
What's the big deal with Applicatives and Selective Applicatives?
Read on!
chrispenner.ca/posts/express…
Did you know that #Unison Share is a full-featured code-repository and collaboration platform that *doesn't have a single unit test*?
Here's how that works:
chrispenner.ca/posts/transcr…
(*spoiler*: it's great!)
Chris Penner retweeted
Replying to @ChShersh
I’ve tried (what feels like) every approach under the sun and this is what I’ve settled on whenever I have the choice to.
In my view ORMs make the trivial stuff easier at the cost of making complex stuff more difficult.
And that’s not a trade off I want to make.
Now who’s going to do the interpretive art piece of building one and actually moving it around the corner?
Chris Penner retweeted
Well, it was about time to clean up remake of Parallel Processing (@armcannon & @chrislpenner) so I could play my own level again. 😅
But here it is, reworked and polished! I just can't believe this level will be soon 5 years old...
#JustShapesAndBeats
youtu.be/2OGxEmnB3M8
Chris Penner retweeted
Shamelessly crowd sourcing ideas for a talk.
What are some less commonly available features in programming languages and libraries that you think are valuable?
Possible examples: sum types, structural typing, monkey patching
Bad features welcome too 😀
…not like that!
This should go down in textbooks next as “masterful engagement farming” and “peak trolling” 😂
A guiding principle of data-oriented programming is to make illegal states unrepresentable.
Take a deeper look in the fourth part in this series on DOP. social.ora.cl/6019UplaW
I'm just a guy begging apple to bring back the the display on the set-timer screen that says what time the timer will go off... don't make me do time math in my head, that's the hardest kind of math!
The worst is that it's still on the timer screen, just not when you set it!
Question for type-theory folks!
I have a typechecker for my little CLI app; but want to allow auto-casting between certain sets of limited types. E.g. it should be valid to cast between `Text <-> Number` but not between `Number <-> [Text]`.
...
An alternative idea was to implement a custom unifier where each unification variable keeps track of its own fall-backs. Those fall-backs propagate via unification, so if unification ever fails you discard that branch and pick the next value for a variable and hope that one works
It's entirely possible this plan is cursed from the design stage, but the bidirectional nature of expressions in this app makes explicit casting difficult for its own reasons, and even if it's explicit I still need the to express valid casts via the typechecker 🤔













