Pinned post

For Clojure as a 1st language it depends upon where you want to go. But here are great trail-heads:

- the best talks, most of which don't actually involve code: techyaks.com/clojure-all-tytop

- @yogthos list of beginner resources: gist.github.com/yogthos/be323b

- But most of all, the community: clojurians.slack.com, clojureverse.org, clojurians.zulipchat.com. That last one includes an awesome aggregator of all of them.

insight: to get layers as pages in the output PDF, you don't PRINT but instead EXPORT and the option will be there. What's the difference? I have no idea...

As i grow older i'm ever less impressed by tech and what it does. Especially for programming languages BUT since i worked a lot in #clojure i'm so excited about any task i do in it and with #babashka and #squint at hand you can just drop and use some lines of clojure anywhere its just amazing how coding could be if you have the right tools. I guess what i'm currently experiencing is "the joy of clojure". Thank you for anyone who makes the ecosystem and language comunity and language what it is. Professional and enterprisy but really exciting!

CIDER 1.18 (“Athens”)

Great news, everyone - CIDER 1.18 (“Athens”) is out! This is a huge release that has an equal amount of new features, improvements to the existing ones, and also trimming down some capabilities in the name of improved efficiency and maintainability. I’m too lazy to write a long release announcement today, so I’ll just highlight the most important aspects of CIDER 1.18 and how they fit our broader vision for the future of CIDER. Let’s go! Reduced surface area CIDER 1.18 dropped support for Boot and Emacs 26. Boot development has been frozen for many years, and it’s now a long past due to migrate to other build tools. CIDER no longer bundles Puget dependency. Puget is still supported as a pretty-printer for all CIDER output, but you need to add it to dependencies explicitly. Haystack is no longer included. With it, we removed some largely unknown facilities for parsing printed stacktraces and presenting them inside *cider-error* buffer. Replaced the outdated thunknyc/profile dependency with a homegrown implementation in Orchard. I’m happy that we continue on the path of reducing the 3rd-party dependencies in cider-nrepl and rely more and more on functionality optimized for our use-cases, living in Orchard. Looking back, at some of the decisions I’ve taken in the past - I sometimes regret going overboard with the feature set (we have so many features today, that even I occasionally forget about some of them) and the dependencies needed to provide certain features. Going forward I hope to gradually reduce the feature set and the dependencies by: removing features that are rarely used making certain dependencies optional (instead of bundling everything with cider-nrepl) Inspector Our beloved inspector got a lot better! New analytics module (orchard#329) (shows you some useful info about the data you’re inspecting) Table view mode (orchard#331) (I think you’ll totally love this!) Pretty-printing mode (#3813) and a command to separately pretty-print the currently inspected value (#3810) That’s how the analytics and the table view look: Cool stuff! Error handling In exchange for removing Haystack, CIDER now allows jumping to munged Clojure functions and Java methods anywhere from the source buffers or the REPL. This means that you can press M-. on printed frames like clojure.core$with_bindings_STAR_.doInvoke or clojure.lang.Compiler$InvokeExpr.eval within the exception, and CIDER will take you there. Stacktrace processing has been greatly simplified and optimized. You may notice that the delay between an exception occuring and *cider-error* buffer popping up disappeared, especially in big projects. Ex-data is now always displayed for each exception cause which has it, albeit in an abbreviated form. You can click or press RET (a.k.a. Enter) on to open it in the inspector (#3807). I’m guessing some of those changes might be considered slightly controversial (especially the last item), but I think they are a bit step towards simplicity and more internal consistency. Misc features Completions got better with priority-based sorting and fuzzy-matching enabled by default (so you can complete unimported short classnames, and things like cji, rkv, etc.) The middleware that powers dynamic font-locking was made trememdously faster and more memory efficient on both Clojure and Emacs sides of CIDER. Again, this effect would be more pronounced in large codebases. This optimization is well overdue, and perhaps it will encourage more editors to embrace the track-state middleware, as I think it’s one of the coolest aspects of CIDER. Added support for dynamic indentation in clojure-ts-mode (#3803) Side note - I’ve been spending a lot of time on clojure-ts-mode lately and it’s shaping up pretty nicely. If you’re happy with clojure-mode there’s no real reason to switch yet, but if you’ve experienced performance issues with font-locking on indentation you may want to check out clojure-ts-mode. I’m happy to report that I’ve also finally started to clean up the numerous compilation warnings introduced in Emacs 29. Most of the meaningful problems are now addressed and the bulk of the remaining work is related to a new rule for quoting ' in docstrings, which is annoying but not particularly important. Epilogue This release is named “Athens” for a reason - Athens is one of the greatest cities in the world1 and I think that’s one of the greatest CIDER releases! For me that’s one of the most important CIDER releases in the past couple of years, if not the most important. We’ve tackled a lot of long-standing problems and we’ve started to simplify the internals of CIDER. The feedback we got from the “State of CIDER” survey really helped us with some of the decisions - stay tuned for a detailed analysis of all the feedback we’ve collected there. As usual - a huge shoutout to all the contributors and “Clojurists Together” for their support! A special thanks to Sashko Yakushev, who has been firing on all cylinders lately, and was once again the driving force behind most of the work in this release. You’re a legend, buddy! Sadly, the amount of financial support CIDER is receiving has dropped a lot in the past 3 years (by about 50%). I hope the situation will change, as solid and predictable financial backing is the only way to ensure the long-term future of CIDER and friends. This is all I have for you today. I hope you’ll have as much fun using it, as we had developing it! Keep hacking! And one of my favorite cities. I’ve got a lot of fond memories of working on CIDER there. ↩

Meta Redux

I hoping my digitally savvy friends might seem some light on my conundrum. As a Dad (of five, one who is nearly a teenager), I am struggling to find a good plan for digital safety and literacy. The trouble is that the plethora of resources offering help and advice are in stark violation to principles of data protection and privacy. If a government proposed it, we would be outraged. But to protect kids, we are willing to go full Big Brother.

So, how can I make my kids digitally savvy without going Big Brother or selling them or their future to the sharks?

I hoping my digitally savvy friends might seem some light on my conundrum. As a Dad (of five, one who is nearly a teenager), I am struggling to find a good plan for digital safety and literacy. The trouble is that the plethora of resources offering help and advice are in stark violation to principles of data protection and privacy. If a government proposed it, we would be outraged. But to protect kids, we are willing to go full Big Brother.

So, how can I make my kids digitally savvy without selling them or their future to the sharks?

Programming languages: "We are just a way to operate computers in a way that makes sense to humans."

Programming languages [takes a big joint hit]: "What if there were 5 kinds of nothingness?"

I was just signed up for CPAP due to "mild sleep apnea". My wife thinks that it might help with my cerebellar ataxia (CB). She is probably right. They had me sign a cooperation agreement when we picked it up, because apparently it's not uncommon for people to simply not use the CPAP once they have it.

They probably aren't all reading the app's privacy and permission agreement, but let me tell you, it was obscene. I'll paraphrase: 'we'll have your personal and health issue info because... Medical.' Now, that might be understandable; I might have to live with that (we hope...). But then, '... And we contract with an undisclosed list of affiliates and will share any of your information with any of them as they request. And that information includes anything they derive from all your Google information combined with all that juicy medical information.'

But, don't worry; they say it's all for my good. Including services they can "customize to me." I'm sure they are all perfectly benevolent. But I'm not using their app.

How does Mastodon come up with its "followers" number, being decentralized?

🦖 <use>
✅ Widely available (from Jan 2020)

developer.mozilla.org/en-US/do

The <use> element takes nodes from within the SVG document, and duplicates them somewhere else. The effect is the same as if the nodes were deeply cloned into a non-exposed DOM, then pasted where the use element is, much like cloned template elements.

#webdev #SVG

do no one's qoto mastodon "home" feeds show their own posts anymore, or is it just me?

My last post doesn't show up in my "home" feed, though it is definitely ponted. Has something changed with qoto mastadon?

In the first office hours of 2025, Heather and Monica talk to Philipp, cketti, and Wolf from the Thunderbird Mobile Team! We chat about bringing Thunderbird to Android via K-9 Mail, what's new for the app and what's coming next. We even talk about our plans to bring Thunderbird to iOS!
Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.