Seems unbelievable to me that that's no nice, high-level socket library for macOS, but 🤷
Lesson learned: Apple's "high-level" SocketPort (which still takes raw sockaddr structs & AF_* ints) doesn't actually work for arbitrary messages, I guess, just silently drops them. Have to use the basic socket/bind/accept/recv to actually use a socket. Swift, of course, makes doing this sort of low-level pointer passing & casting a delight 🙃
Trying to make a simple macOS app that uses a Unix socket has become an unremitting nightmare. Docs are awful -- just like "`type: Int32` - the type of the thing; "`address: Data` - the address in a Data object". It also appears that literally no-one else has attempted to build something like this, judging by search results. Ugh.
I tried to write an explainer for continuations, as a way to figure out how continuations work in Prolog. Hopefully this makes sense to someone else https://occasionallycogent.com/continuations_in_prolog/index.html
Reposting a comment I made on HN regarding the proposed EU ban on facial recognition technology:
>I love coming to these threads to watch the crowd who makes their living from invading the public's privacy attempt to rationalize their worldview, find loopholes, etc. If your job is mass surviellance, it has always been unethical and the law is catching up to you. The purpose of these kinds of laws isn't to bring your business in line - it's to put you out of business.
Hooray, I got my first Emacs package on MELPA! https://melpa.org/#/helm-switch-shell
I put out my first Emacs package!
For easily switching between many (e)shell buffers in various directories.
I wrote about it here https://occasionallycogent.com/helm_switch_shell/index.html
Still waiting on the MELPA PR, but hopefully some people find it useful!
Our first-ever Black Friday sale starts now.
Pick up a Model 01 keyboard at $50 off, the best price we've offered.
Keyboards are in stock for immediate shipment.
I am sad how much worse the discourse on Lobste.rs has gotten. Yesterday, there was a comment thread on the new Git release that was 90% focused on how evil codes of conduct are.
There are still good people on there, but the constituency of the site seems to be drifting towards the sort of people that unironically say "I've never had a problem with [social issue], so it must not be that big a deal" and "no discussing politics" to mean "no talking about problems I don't have"
Free software development doesn't have to be awful. Some thoughts from me.
Really interesting (long) read a friend sent me on how the accepted view of the development of civilization & inequality isn't actually based on much fact https://www.eurozine.com/change-course-human-history/
I like writing Prolog. I genuinely find it very productive for writing software in, but I also feel like I learn new & interesting techniques all the time https://occasionallycogent.com/prolog_fundamentals_catchup/index.html
I wrote about writing a Prolog LSP implementation. I really love using Prolog -- it kind of feels like a better Lisp than Lisp sometimes https://occasionallycogent.com/prolog_language_server/index.html
I started thinking about how "Design Patterns" is but a pale shade next to "A Pattern Language" and this came out
Ugh...I updated my keyboardio firmware and now my tapdance & oneshot keys are sporadically not working properly...and in the process of trying to figure out what's going on, I realized that there are open pull requests against my keyboardio repo from February that Github decided not to tell me about (sorry @iliana )
I don't like computers
I make computer things in Toronto, mostly in Clojure. I powerlifting, strongman, and Highland Games How are you?
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!