Chris Penner
Chris Penner
@chrispenner.ca
FP and Programming languages nerd Building the Unison Language & Unison Share 📍Victoria BC 🇨🇦 https://chrispenner.ca
557 followers609 following263 posts
Another @unison-lang.org feature I think every language should have in some capacity: Streams! Unison's effect system makes them even more useful since you can interleave effects into your streams. A Stream or Coroutine abstraction is so useful as a way for libraries to consume or provide data.
No other language lets me write straight-line code like this. The `prompt` line saves saves the current continuation in a database, then sends a prompt to the user's browser to select a slot. When selected, `prompt` returns the in-memory @unison-lang.org object which corresponds to the chosen slot.
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: www.unison-lang.org/blog/consult... Please boost to help get the word out. And we'd love to hear from you if you're interested in working with us!
Chris Penner reposted
📰 UCM 1.1.0 is out! * `dependents` can search by variant, not just type or ability name * New built-ins for Argon2id hashing * VS Code actions: Edit Definition & Open on Share * MCP tool: `share-project-info` * Faster bytes ops & improved run command
I made this tool for managing workshop sessions in tmux and I've used it *hundreds of times* per day every day for 6 years now without any hiccups; if you're looking for a good way to manage your terminal sessions maybe this is it. github.com/ChrisPenner/...
Chris Penner reposted
🌟 It's time for #AdventOfCode! That means it's a great month to pick up a new programming language! Try it in Unison this year! 🎁
Chris Penner reposted
Chris Penner reposted
In "a new programming paradigm" Dejan Milicic goes into why @unison-lang.org is so unique and useful: docs.google.com/presentation...
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 tools!
🎉 Unison 1.0 has landed! After years of engineering, design, and community collaboration, we’re excited to announce this milestone! Spread the word!
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 reposted
🚀 New deep dive: Distributed System Engineering in Unison In our latest blog post, take a look at the design of the Volturno library: a distributed stream processing engine built atop Unison Cloud. www.unison-lang.org/blog/volturn...
Chris Penner reposted
🤯 Unison in the browser!? Dan Freeman's new library, Proscenium, runs Unison code in WebAssembly. Its companion library, @dfreeman/playbill, contains a walk-through of various features and live examples on Unison Cloud! Play a game in your browser entirely in Unison; better yet, write your own!
Chris Penner reposted
📽️ 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!
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-...
Even the #Haskell `jose` library doesn't have a separate type for public vs private JWKs, even a phantom type would do the trick. TBH this is just as bad as how generated certs are named key and key.pub; If you tab-complete you'll get the private one every time and there's no `.private` as a hint
Chris Penner reposted
I wrote about AI and programming. About the identity challenges we are facing as programmers and the potential erasure of craft. There's a fun little easter egg in the header as well :) hojberg.xyz/the-programm...
I'm very pleased to call Simon ( @hojberg.xyz ) my co-worker, team-mate and friend, go check out this wonderfully written take. hojberg.xyz/the-programm...
TIL callCC's return value isn't rank 2 polymorphic (but you can just route it through Void and use `absurd` to make it rank 2 polymorphic) Spent too long staring at the error wondering why it wasn't working haha. #Haskell github.com/haskell/mtl/...
Chris Penner reposted
You can now spin up Unison Cloud clusters on your own infrastructure! ✅ Build elastic distributed systems and services in vastly less code ✅ Fast, typed RPC ✅ Deployments in seconds ✅ Free to get started youtu.be/0sZqI1XoGLY
Chris Penner reposted
Interesting article by @chrispenner.ca about why monads aren't the solution to everything, and a functor I've never crossed paths with called selective applicatives. Still absorbing it, but great read as always. Check it out if that's your thing. chrispenner.ca/posts/expres...
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/expres...
Chris Penner reposted
Chris Penner reposted
📽️ New to the Unison workflow? We’re making short videos to walk you through the basics. Follow along here: www.youtube.com/watch?v=QJ1h...
Chris Penner reposted
The GHC developers are very pleased to announce the availability of the first alpha prerelease of GHC 9.14.1. Highlights: * Major improvements to the Specialiser * SSE/AVX support in the x86 native backend * Significant improvements in the GHCi debugger blog.haskell.org/ghc-9-14-1-a... #Haskell