Hear me out.
We fork Mumble server. We change the chat to be IRC. We use Obsidian IRC (web irc clone of discord) as the client. IRCv3 SASL EXTERNAL will let us auth the user using the same key identity mumble uses. Convert the Obsidian web to Tauri for cross platform desktop app.
That's it. Self-hosted Discord, now just improve the UI and invite people to rewrite in Rust and add storage backends for the chat history and nobody needs Discord ever again.
github.com/ObsidianIRC/Obsidia…
GitHub - ObsidianIRC/ObsidianIRC: Modern IRC Client for the web and maybe more
Modern IRC Client for the web and maybe more. Contribute to ObsidianIRC/ObsidianIRC development by creating an account on GitHub.GitHub
Peter Vágner reshared this.
Basically you did this?
~(p&q)
= 1 & ~(p&q)
= (p|~p) & ~(p&q)
= (p & ~(p&q)) | (~p & ~(p&q))
= (p & ~(1&q)) | (~p & ~(0&q))
= (p & ~q) | ~p
= (1 & ~q) | ~p
= ~q | ~p
Not bad.
But... isn't (p|~p)=1 the very law of the excluded third that intuitionists avoid?
I didn't exactly do it that way (I proved it over prop rather than bool).
What I did was incorporate the explicit LEM propositions like this:
Theorem deMorgan:
forall p q: Prop,
(~(p /\ q) /\ (p \/ ~p) /\ (q \/ ~q)) -> (~p \/ ~q).Introduce p and q (universal intro). Then unfold the not, and get:
(p /\ q -> False) /\ (p \/ (p -> False)) /\ (q \/ (q -> False)) ->
(p -> False) \/ (q -> False)Then intro the hypothesis, destruct the two ands and get:
H : p /\ q -> False
H0 : p \/ (p -> False)
H1 : q \/ (q -> False)
===
(p -> False) \/ (q -> False)From there, destruct H0, which opens two subproofs by disjunction elimination, one with P and one with P -> false.
For case P, prove the right branch of the goal's disjunction, Q -> false.
Introduce Q (assume the hypothesis).
Then apply H, to the goal, which by now is False, and it becomes P /\ Q.
Split and prove each branch by assumption, since we have both P and Q.
For case P -> False, prove the left branch of the goal, by assumption, since p -> False proves P -> False.
Qed.
In fact I realised I don't need such a strong LEM assumption for both P and Q. The assumption for one is enough.
(~(p /\ q) /\ ((p / ~p) / (q / ~q))) -> (~p / ~q).
Works fine.
Just destruct the disjunction and use the same symmetric proof strategy for both:
In Coq script:
intros p q.
unfold not.
intros.
destruct H.
destruct H0.
destruct H0.
right.
intros.
apply H.
split; assumption.
left.
assumption.
destruct H0.
left.
intros.
apply H.
split; assumption.
right.
assumption.
Qed.
By request of the listeners, a replay of @Derek and Robin's adventure to the haunted house known as ‘Wicked World’ in Nicholasville, Kentucky is airing on HKC Radio as we speak.
November 2025 Security Bulletin Patches Already Included In Early Security Preview Releases By GrapheneOS
Both patches in the November 2025 Android Security Bulletin have been included since our September 2nd release. It's now known that our 2025090200 and later releases provided the 2025-11-05 Android security patch level early due to shipping extra patches.
source.android.com/docs/securi…
It's because these two patches were included in the full September 2025 bulletin patches we shipped but were made optional until November 2025.
Later in September, we started our security preview releases able to provide Android Security Bulletin patches around 2-3 months early.
Our security preview releases currently have the December 2025 and January 2026 patches.
December 2025 has a huge set of patches due to being a quarterly patch level. January 2026 will likely be empty.
We should have quarterly March 2026 patches to ship within a couple weeks.
Due to having early access to the patches which we can use for our security preview releases, we've been able to determine that a subset were pushed to AOSP and other projects prior to the official embargo ending which means we'll be including those in our regular releases soon.
Our security preview releases shipped all available December 2025 security patches in September 2025 and have continued adding the remaining patches. It should be frozen soon, but most of the patches have remained the same since September. Some were deferred to future bulletins.
The new security patch system being used by Android is confusing for users and bad for the security of anyone not using GrapheneOS with our security preview releases. We could have set the patch level string to 2025-11-01 in early September but in this case we didn't do that.
I think he will be in Australia, India, China, in December, among other places. Catch him if you can! It's a real treat for anyone who loves harmonies and highly-skilful musicianship!
The Trump regime says it will pay SNAP benefits reduced by 50% to the 22 million households enrolled in the program.
Reminder that this reduction in food access is verbatim how Netanyahu has treated Palestinians in Gaza for decades.
This is why we warned that whatever is permitted to them "over there" will be done to us over here.
This injustice is coming from so called "Christians." Of course we all recall when Jesus said I'll only feed 5 out of 5000. /s
Apple Releases iOS 26.1 and iPadOS 26.1 with accessibility enhancements, new language support for Live Translation, and more | AppleVis
Apple has today released iOS 26.1 and iPadOS 26.1 to the public, bringing several enhancements to VoiceOver and braille, various visual changes to interface elements throughout the operating systems, expanded language support for Live Translation, an…www.applevis.com
reshared this
Sensitive content
this is the "Rolling Anarchy" logo by the band Levellers
> Levellers 'Rolling Anarchy' sticker - designed by Jeremy Cunningham vintage c. 1994
The Digital Domain Online Radio Show is now live!
So I found a tactic that's working in my YouTube comments- thought I'd share.
If someone complains that a software I recommended is "woke", I ask them "what does that mean? Can you say more about that?"
They never say more. They delete their comment instead.
My tactic is to make them say what they mean. They won't.
Because they're cowards.
reshared this
Accrescent 0.28.0 is out, including:
- Download cancellation support
- Better update scheduling (especially on Android 14+)
- UI improvements and bug fixes
Full release notes below!
github.com/accrescent/accresce…
#accrescent #appstore #android #security #privacy
Release 0.28.0 · accrescent/accrescent
This release adds a "cancel" button for downloads, provides better update scheduling (especially on Android 14+), and includes a handful of UI improvements and bug fixes. Changed Perform gentle up...GitHub
The Mack Super Pumper was a locomotive engined fire fighter (2018)
Link: bangshift.com/bangshiftxl/mack…
Discussion: news.ycombinator.com/item?id=4…
As an art teacher I was worried AI would come up as an issue of "why should I learn how to draw when I can use AI instead."
But the real issue is that my middle schoolers CONSTANTLY believe all art I show them is AI. Digital art. Photography. Oil paintings from the Western canon. "A human couldn't do that"
Being convinced that humans can't make great art is kind of terrifying
#art #ai #aiart #arteducation #education
reshared this
For example I just discovered @mangroveReviews thanks to @aikencz
peertube.skorpil.cz/w/ii96wUi1…
#mathart #watercolor #color
Librsvg 2.61.3 is out!
Security fixes for Windows, make the test suite work with libxml2 >= 2.15.0, fix the rsvg-convert test suite for build systems that don't have fonts installed; fix the rsvg-convert build when Cairo has PDF support disabled.
gitlab.gnome.org/GNOME/librsvg…
2.61.3 · GNOME / librsvg · GitLab
Version 2.61.3 librsvg crate version 2.61.3 librsvg-rebind crate version 0.2.1GitLab
On the Digital Domain Tonight, Kirk and Curt? Huh? It's all from @nick's stupid head.
Also, Bob's got a challenge for @AlexSpectrum93, an AI artist making more waves than probably should, and a possible song dedication to Bob.
7 PM EST! Yes, welcome to standard time. For those outside America, you can check your schedule here.
kirby
in reply to feld • • •feld
in reply to kirby • • •Neopolitan
in reply to feld • • •feld
in reply to Neopolitan • • •anna, a criticality incident at the gender accelerator
in reply to feld • • •feld
in reply to anna, a criticality incident at the gender accelerator • • •anna, a criticality incident at the gender accelerator
in reply to feld • • •feld
in reply to anna, a criticality incident at the gender accelerator • • •