programming today: I thought I'd start with something little. Just get the latest General Conference talks in plain-text, as I've done for years.
Error: Syntax.
Error: my language version is too much older than some dependencies. Upgrade needed.
Error: my coding evironment is 30-version too old. Upgrade needed.
Error: my Java was too old, so upgraded.
Error: my system was missing a crucial tool (Pandoc. last time using this tool was on a different computer). Installed it, which also updated 22 system packages, including my printer stuff.
Status: my original web scraper is working beatifully. Fingers crossed that nothing else broke from the accidental updates...
ah, that's the stuff. Because Gnu `date` can create Julian dates but then cannot read them. #babashka #EayNumber #JulianDates #Clojure
At some point (I missed the memo) #xtdb stopped espousing #datalog and invented #xtql. I'm guessing this was to step out of any annoying dependencies of datalog and dampen comparison with the other major datalog approaches in #Clojure.
https://docs.xtdb.com/intro/what-is-xtql.html I especially enjoy the side-by-side Clojure/JSON comparisons here
We borrowed some #PHP code from #StackOverflow that had nested ternaries without parenthesis. Turns out that as a fatal error in PHP 8 on our production server but not on the earlier PHP on our development server. Wow... a language with breaking syntax changes. I'll stick with sound #Clojure, where you never have too few parenthesis.
I always mentally wonder about #TypeScript vs #ClojureScript, knowing that #Clojure's decision to avoid #types is very deliberate. But TypeScript is conquering the world; is that an ad populum sign that Types are really a better way to go? Or does ClojureScript offer other things instead? If so, what are they, and to do the benefits of each option find value in different situations?
#Defn #clojure has a new episode out. Apparently soundcloud doesn't make RSS links obvious for everything, so I grabbed theirs from reversed the URL from Apple Podcasts and plugged it into my readers. https://feeds.soundcloud.com/users/soundcloud:users:220484243/sounds.rss
The language #Clojure and #ClojureScript languages are so stable, with breaking changes being frowned upon in the culture. But breaking in the (frankly, awesome!) tooling has been my difficulty as I maintain a dozen projects of varying ages. It is a real problem. #cider #nrepl #figwheel #piggyback
Wait... do you seriously mean to tell me that I've spent hours debugging #clojure the fact that `#js` is NOT recursive? So #javascript #clojurescript `#js {"authorizationParams" #js {"redirect_uri" (-> js/window .-location .-origin)}}` is NOT #js {"authorizationParams"v {"redirect_uri" (-> js/window .-location .-origin)}}`? I probably read this somewhere, but UGH!
And yes, I know that even fixed this equality wouldn't work because JS always breaks #CLJS equality... but the point is clear.
If you wish to make an apple pie from scratch, you must first invent the universe. -Carl Sagan #dependencies #cider #clojure #quotes
I made a #static site using #ShadowCLJS #ClojureScript . The last step was to remove the #CLJS. But I still use Shadow to start up a local server and explore my static site in-browser. It works nicely as a quick server. #clojure
I just had an unexpected error with a #babashka VPN script I run every day. I was re-using a shell that was in a directory of a #Clojure project and got a NPE and "java.lang.Error: Properties init: Could not determine current working directory." It never occurred to me that Babashka might care about my pwd... I suspect I've been missing something valuable.
The original code author was new to the language (this was his first and maybe only project in #Clojure) and loved to explicitly return nil and check `(nil?)` all the time. It turns out, it's harder to remove explicit type and `nil?` checks than I thought.
The glory of #lisp like #clojure is supposed to be the smooth #REPL experience. I have gone back to the stoneage because github actions are receiving an error that I cannot reproduce locally, so I keep making a change, pushing to see if that effects the github test error, and then trying again. Like I'm back in the stone age.
Stupid #javascript errors. Forgot I needed to insert single quotes in my transpiling. But THEN I found out that you can't have - dashes anywhere in variable names in js. My #Clojure heart is really #hiccup ing in sadness.
Excited for this talk on #Clojure performance in an hour. https://www.meetup.com/london-clojurians/events/293273349/?utm_medium=referral&utm_campaign=share-btn_savedevents_share_modal&utm_source=link
Those in #clojure who have not read the History of Clojure paper by Rich really should; great to get a step into Rich's head and to see the evolution of the language. https://www.scribd.com/document/470916091/clojure-hopl-iv-final
A great discussion going on here. Because of the location (#Clojure thread) there is a bias in the demographic, but good reasons are provided either way and no thoughtless "it's just better" answers. https://www.reddit.com/r/Clojure/comments/12wmx51/why_do_you_use_clojure_instead_of_other_lisps/
Full Stack Clojure web app engineer