Skip to main content



Browsers have so much anti-fingerprinting and pro-privacy options nowadays, but there's still no option to stop them from tattling on me when I open the fricking dev tools.

My account is probably a net loss for Google at this point, because they keep logging you out when you accidentally do a search with the web console open, and 2FA text messages aren't free.



teraz keď mám kvet aby som odostieral všetky žalúzie, aj keď pôjdem preč

edit: aj tak to moc veľký rozdiel nie je, ale asi mu to prospeje
edit1: určite mu to prospeje

This entry was edited (2 months ago)

in reply to Hubert Figuière

brother in law lives down the street, I pass it all the time. I’m wondering between the heavy rains and the vibrations off the 720/Ville-Marie (literally right beside it)…

The residents in the building-beside-the-collapsed-wall have had to break in to get their stuff (cat, tools, etc) only to find they’ve already been robbed. (There’s a security guard posted but he’s only watching the front.) (Cat and tools were recovered, $2k+ bike and others were gone)



I think people really don't appreciate just how incomplete Linux kernel API docs are, and how Rust solves the problem.

I wrote a pile of Rust abstractions for various subsystems. For practically every single one, I had to read the C source code to understand how to use its API.

Simply reading the function signature and associated doc comment (if any) or explicit docs (if you're lucky and they exist) almost never fully tells you how to safely use the API. Do you need to hold a lock? Does a ref counted arg transfer the ref or does it take its own ref?

When a callback is called are any locks held or do you need to acquire your own? What about free callbacks, are they special? What's the intended locking order? Are there special cases where some operations might take locks in some cases but not others?

Is a NULL argument allowed and valid usage, or not? What happens to reference counts in the error case? Is a returned ref counted pointer already incremented, or is it an implied borrow from a reference owned by a passed argument?

Is the return value always a valid pointer? Can it be NULL? Or maybe it's an ERR_PTR? Maybe both? What about pointers returned via indirect arguments, are those cleared to NULL on error or left alone? Is it valid to pass a NULL ** if you don't need that return pointer?

This entry was edited (2 months ago)

reshared this

in reply to Asahi Lina (朝日リナ) // nullptr::live

To be clear, I don't blame Linux developers for the incomplete docs. For better or worse, the Linux kernel is very complex and has to deal with a lot of subtlety. Most userspace APIs have much simpler rules you have to follow to use them safely. Kernels are hard!

Even experienced kernel developers get these things wrong all the time. It's not a skill issue. It's simply not possible for humans to keep all of these complex rules in their head and get them right, every single time. We are not built for that.

We need tooling to help us.

The solution is called Rust. Encode all the rules in the code and type system once, and never have to worry about them again.

Just like the solution to coding style arguments is to encode all the rules in an auto formatter and never have to worry about them again (hint hint! ^^)

And then we can stop worrying about all the low-level safety, ownership, and locking problems, and start worrying about more important things like high-level driver and subsystem design.

(I should note that the Rust for Linux project does in fact also enforce rustfmt for submissions, so you also don't have to worry about code formatting or have a code review complain about that if you write kernel Rust, ever! Just `make rustfmt`.)

This entry was edited (2 months ago)
in reply to Asahi Lina (朝日リナ) // nullptr::live

> The solution is called Rust.

I use and like Rust, but such a definitive statement ("the solution") does sound uncomfortably like religious propaganda (e.g. "Jesus is the answer"). Just saying we have to be careful about how we advocate for Rust, which is indeed a useful tool.

in reply to Matt Campbell

@matt It's kinda frustrating to look at such extremely obvious gigantic problems which are dragging down everyone involved in Linux kernel work, then looking at a practical, realistic and proven solution to those problems, and then when someone says "hey we should apply the solution so that the problem goes away" people come out of the woodwork with comments like yours

Dr: The solution to your infection is antibiotics
You: Careful, they may fix the problem but don't call things 'the solution'

in reply to mort

@mort I wonder if the bigger problem was what I said, or that I was a random bystander coming out of the woodwork and adding to already contentious discourse.

FWIW, I develop a Rust library (for GUI accessibility) with a C API, and I want it to be used in non-Rust projects. But I worry about how Rust's reputation for religious zeal in its most vocal enthusiasts will affect the adoption of my library, and more importantly, the implementation of accessibility in GUI toolkits.

@mort
in reply to Matt Campbell

@matt So your solution (if I can use that word) is to just pretend that the outlined problems can't be solved by Rust? Or to pretend they aren't problems in the first place? And complain that anyone who says that there are problems and that they can be solved look like zealots, despite being factually correct?
in reply to mort

@mort The problems are real, and I agree that Rust is *a* solution. But saying that any specific thing is *the* solution apparently triggers some people. I mean, what Ted T'so did at that conference talk was over the top, but something must have led him to feel the way he does about Rust, and I just thought it might be possible for us to prevent such reactions.
@mort
in reply to mort

@mort Yeah, as far as I know, Rust *is* the only viable solution. But it's not enough to be right; we have to consider how the things we say will make people feel if we want to win them over.
@mort
in reply to Matt Campbell

@mort And I didn't think enough about how what *I* said would make the people working on Rust for Linux feel. I'm sorry about that.
@mort
in reply to Matt Campbell

@matt As I hinted at in fosstodon.org/@mort/1130568795…, this is just a minor disagreement on strategy after all, and for all I know your strategy might be best, however frustrating that may be. Or maybe people like Ted would be hostile regardless. I don't know.

I'm not really in a position to accept your apology, I'm not involved in Rust for Linux, I just do a bit of non-Rust kernel work sometimes and also have some projects which use Rust. But thank you nonetheless.

in reply to mort

@matt Oh also an other thing I got thinking about: Christianity/religion has never really played a big role in my life, and to the degree that it has played a role (through traditions etc) it has all been in Norwegian; so there are definitely some cultural associations which others may have and I don't. I don't experience the association between "X is the solution" and salvation at all, and therefore can't really judge it. I should've considered that before typing my response, sorry
in reply to mort

@mort I was just thinking about clarifying where I was coming from on that. I'm American and I grew up immersed in evangelical Christianity, but later rejected religion entirely, so I was primed to be sensitive to that particular pattern.
@mort
in reply to Matt Campbell

@mort Specifically, the statement "The solution is called Rust" reminded me of this (rather obscure) Christian pop song I listened to in my 20s, called "His Name is Jesus": youtube.com/watch?v=81gLbLmzbg…

Verse 1
A world full of people
In a world full of darkness
Are constantly searching
Searching for truth
So shout it from the rooftops
The truth has come
Chorus
His name is Jesus
...

There's a more famous song called "Jesus is the Answer", but "His Name is Jesus" is a closer match.

@mort
in reply to Matt Campbell

@matt @mort FWIW, I do not think either view in this conversation is “correct”, but hashing out disagreements like this in public, empathetically (as you have done here) is important work in itself. This is a minor example, but IMHO by working through this together you expose readers to different perspectives on the conversation and refine everyone’s understanding for future iterations of this conversation. So at least from my perspective: thanks!
in reply to Glyph

@glyph Do you have anything to add about what's wrong with my view, or want to reiterate something that @mort already covered?
in reply to Matt Campbell

@matt @glyph @mort 1) thank for the earlier explicit mention of cultural background, that *is* something that I hadn't internalised. 2) I think the reaction you're getting (including my own initial reading of your response) is partly because the thread does mention the list of things that makes Rust unique as a solution. Using the phrasing that you took umbrage at as a shorthand I think still has value, but it might be context dependent whether it is.
in reply to Matt Campbell

@matt @mort mostly I just think you’re both right. And as you yourself raised, there’s a question of how arriving to the conversation with this kind of critique sounds, rather than building rapport first, even if the critique is unambiguously accurate. It’s a challenging and tense topic!
in reply to Matt Campbell

@matt @mort I'm just a random nerd who likes looking at stuff like this from a outside in perspective but I'll back up Matt on being cautious in how you come off when you think you have a strong solution to a hard problem

Evangelical/fundamentalist Christianity is BIG up in the West and it affects alot of our thinking, even those who're atheist or deconvert

People go hard for causes they believe in, people are suspicious of people who go hard because the vibes feel like religious dogma

in reply to Matt Campbell

@matt A library in Rust library intended to be used by developers of C sounds like something really hard to sell. For a small program that only requires a C compiler and a few libraries, the Rust compiler is a huge addition dependency tree (both in size and complexity).
in reply to Hugo 雨果

@whynothugo To clarify, mu library also has a Rust native API, and some Rust projects are already using it. I'd rather not implement the library twice in both languages, but I'm actually thinking about reimplementing it in C eventually.
in reply to Matt Campbell

@matt Letting someone else implement it in another language is a good way to test that the underlying protocols/formats are well documented.

The downside is depending on that "someone else" showing up.

in reply to Matt Campbell

@matt
The solution is a low level language with strong typing, without null, and explicit lifetimes and so on.... But at the end of the day, you are just writing "Rust" by using more words
in reply to Mattias Eriksson 🦀🚵‍♂️

@snaggen @matt few extra words can sometimes make a big difference in complicated discussions with lots of social weight, that span across cultural, social, and personal differences. Communication is hard, but it's also key 😅
in reply to pabloyoyoista

@pabloyoyoista @snaggen Yes, and there's a subtle difference between "The solution is [describe solution]" and "The solution is called [proper noun]". It may be the case that the proper noun is the only thing that (currently) implements the described solution, but it still matches a pattern that has negative associations for some. Perhaps I was overly sensitive, but I'm sure I'm not the only one, so I thought it was something worth keeping in mind.
in reply to Matt Campbell

I'm gonna have to agree. Im still a Rust skeptic but whenever I see someone hyping Rust it tends to be punctuated in super extreme absolutes like this. It reads narcissistically to me when a person that makes their entire social presence about Rust says "the problem with the world is that its not written in Rust and the world should lend itself to be rewritten in Rust easier"
If you question further you get "because rust *is* perfect!"
It certainly poisons the socialization of genuine use-cases
in reply to Matt Campbell

@matt I think a proper rewording is as simple as adding "currently".

"Currently the only solution available to solve those problems is Rust"

Doesn't mean it's the absolute solution and that in 5 years there won't be an alternative etc


in reply to Debian

nvidia drivers fail after update and it can't boot KDE. I can get to console by pressing ctrl+alt+F2, so keep waiting for an update. Selecting a previous kernel in GRUB does work.
This entry was edited (2 months ago)
in reply to Debian

Ah fuck just two days after I prepared my ad-hoc usb key image for my students which will be distributed tomorrow.



Yay! XWayland fractional scaling that @jadahl and I worked on landed in mutter yesterday and will make it into #GNOME 47 🤩

Also big shout-out to the GNOME STF project for funding my work on all this!

gitlab.gnome.org/GNOME/mutter/…

reshared this



Forrest Brazeal:

“I think that AI has killed, or is about to kill, pretty much every single modifier we want to put in front of the word “developer.”

“.NET developer”? Meaningless. Copilot, Cursor, etc can get anyone conversant enough with .NET to be productive in an afternoon … as long as you’ve done enough other programming that you know what to prompt.”

From newsletter.goodtechthings.com/…
indieweb.social/@fatrat/113056…

in reply to Simon Willison

For many years I haven't liked calling myself an X-language developer anyway, because when working on a whole product as a solo developer, I have to work in whatever set of languages is most practical for getting the job done, and learning different flavors of imperative language isn't that hard. Plus, I don't want to tie my identity to a particular language (as I possibly did with Python early in my career), because then I'd be more resistant to using new languages when appropriate.
in reply to Matt Campbell

@matt any tips for someone doing the same? I am working to overcome my own resistance on this right now!


One of my recent posts got me thinking about the gospel song "Jesus is the Answer". (Note: I'm not a Christian anymore, but I grew up evangelical.) And that, in turn, got me thinking about white folks covering songs originally written and recorded by black musicians, and why that might be a problem, as it takes attention and royalties away from the black musicians. /?
in reply to Matt Campbell

The version of "Jesus is the Answer" that I heard on Christian radio as a teenager in 1996 was recorded by Michael W. Smith, a white Christian pop singer (plus a backing gospel-style choir). It was part of a tribute album covering the songs of the black singer/songwriter/producer Andraé Crouch. But it seems to me that the best tribute would have been to get predominantly white Christian pop radio stations to play Crouch's original recordings. 2/2


Wow, pretty sure I've never seen this feature in any other language...
in reply to leeb

The IBM 1401 computer had optional support for math with pounds/shillings/pence in hardware, back when there were 12 pence in a shilling and 20 shillings in a pound. Of course there were two incompatible standards, so the computer had a knob on the front panel to select the standard.




Do-It-Blind bei (mechanical) Keyboard Meetup am #håckmas #make #bind #inklusion
This entry was edited (2 months ago)


Ugh, the maintainer of the Debian bcachefs-tools package just orphaned it because its Rust dependencies are moving too fast. jonathancarter.org/2024/08/29/…

So, I need to be careful not to cause that same problem in AccessKit, especially if my current (draft) merge request to use AccessKit in GTK 4 (via the C API) is finished and accepted.

in reply to Matt Campbell

no he didn't. The version bcachefs-tools that has been shipping for 2 years in Debian stable is broken. Straight up does not work. There was a bug in bindgen 0.66 that makes it not work. So bcachefs first vendored a fixed version, and then updated to 0.69 which was fixed. The Debian maintainer decided to compile with 0.66 anyway, and didn't even test to see if it would work.


Ya estoy de vuelta por Santiago. Ahora a descansar del viaje.


Coming up in the new academic year, I get to spend the semester with a fresh bunch of second-year students who are going on to learn some more logic than the first-year basics.

Like last year, in Intermediate Logic we’ll be exploring natural deduction proof theory and different kinds of models for propositional, modal and first-order predicate logic.

New this year, my Doktorvater, Prof. Graham Priest, will be joining us in the last week of classes, so we’ll have a fun back-and-forth about truth-value gaps, gluts and paradoxes to end things with a bit of a bang.

consequently.org/class/2024/py…

#logic #philosophy



Remember Brazil is also not giving immunity to their former President. Say what you want but there might be something.
This entry was edited (2 months ago)


We just read this announcement about the unfortunate natural disaster that has impacted the headquarters of #Orbit Research in India. Bits sends our best wishes for the safety of all as they seek a return to normalcy. More can be read here. News about the delay in updates from Orbit Research
groups.io/g/orbit-reader/messa…

reshared this



I was going to make this a poll, but I lost track of the probably-illegal things Elon Musk has done or said he wants to do (and I’m not even sure what ‘firing ballistic missiles at Canada’ comes under), so let’s make it a thread:

What do you think think Phony Stark will go to prison for first?



Any #Rust folks giving up on Linux:

#FreeBSD has no current plan for Rust, but we want one! We want experienced Rust people to tell us how it should work. We’re interested in being able to add Rust in both userspace and the kernel, but we need a way of using Rust that works with multi-year support cycles (we need to be able to easily merge security fixes in trunk back to a branch that was originally made four years ago).

Personally, I’d love to see a new service management framework for FreeBSD written in Rust + Lua.

in reply to David Chisnall

How do you envision the framework being split between Rust and Lua? I mean, what would each language be used for?
in reply to Matt Campbell

@matt Low level things (wrapping pdfork, sockets, and so on) in Rust, most of the logic (e.g. systemd-compatible socket activation) in Lua.
in reply to David Chisnall

Why write most of the logic in Lua? Do you imagine users or services implementing Lua scripts or modules under the framework? If not, why not write all the logic in Rust, for minimum impact on CPU and private virtual memory?
in reply to Matt Campbell

@matt We already have Lua in the base system and there are a lot of people who know Lua. Most of the code is not performance critical and writing in a GC’d language is easy.
in reply to David Chisnall

@matt I'd suggest that you don't bother bringing anything to do with systemd into any conversation about service management improvements for FreeBSD.
in reply to 💞 eva 💞

@winterschon @matt An increasing number of things depend on the systemd socket activation protocol. It’s going to become important fairly soon that we have support for it in the service management system.
in reply to David Chisnall

@winterschon Also, I think it's reasonable to take the position that despite all of systemd's faults, there are good things about it; I would put socket activation and declarative service configuration files in that category.
in reply to Matt Campbell

@matt @winterschon I disagree with a lot of design choices in systemd, but there are very few systems with /no* good ideas. Launchd, SMF, and systemd all have done some things well.




An old witty paraphrasing of Arthur C Clarke's "Any sufficiently advanced technology is indistinguishable from magic" when applied to the maxim "never attribute to malice that which can be explained as incompetence":

"Any sufficiently advanced incompetence is indistinguishable from malice"

This entry was edited (2 months ago)

reshared this



Pirátská senátorka si chválí stavební řízení. O kolaudaci požádala za 10 minut z mobilu

Zdroj: idnes.cz/zpravy/domaci/digital…

in reply to Archos

furt se snažím zjistit co tam je reálně špatně, zatím marně. Ze svých zkušeností mám tendenci uživatele brát s velkou rezervou, protože občas tvrdí něco co se nestalo. Bohužel tohle je celkem výzva pro Piráty, trochu se bojím, aby to nebyl jeden z velkých hřebíků do rakve pirátů.
This entry was edited (2 months ago)
in reply to Jan Dytrych🇨🇿🇺🇦

@jan Jo výzva to pro Piráty určitě je, hlavně pro Bartoše. Já myslím, že za pár měsíců si nikdo ani nevzpomene.


About my last boost from @drewdevault, this makes me ashamed to consider myself part of the Rust community, especially since some of the comments he quoted in the thread were posted in places where the Rust code of conduct are allegedly in force (that is, it's not just Reddit and Hacker News). We've got a problem with tribalism in our community. I know it's not up to me to police the community, but still, what can we do about this?
in reply to Drew DeVault

hmm, the CoC does indeed ban insults, demeaning, and harassment. I guess you do have all rights to complain about people ignoring your post just after seeing your name. IMHO, slight insults (dumb, idiot, etc) and demeaning (based off of your previous content, not discrimination) is not something that can be banned at scale for people in communities, so forcing it in CoC seems like an oversight — although it is necessary for more official gatherings.
in reply to Maksym Hazevych

@mks_h I ban this kind of language in my communities. It works. Don't enable shitty behavior.


The release notes documenting the new features in the August 28 BT Speak update are now live on our Web site for anyone who would like to access them.
Many thanks go to Stephen Blazie for not only posting the file but for ensuring that heading navigation works properly. Of course, the release notes can
also be found in the BT Speak help system once the new update has been installed. To access them on your BT Speak, press O-chord followed by the letter
H to access the list of help files. Next, press G for Getting Started, followed by the enter key (dot 8).
To access the release notes on our Web site, go to
blazietech.com/august-28th-202…
DG




Tmbk zase zabil (hřebíček na hlavičku)



Hi folks, my team is starting early discussions for internships for next year. If you are a student interested in working on App Intents, Apple Intelligence, and the Shortcuts infrastructure that powers it, drop me a DM please! Note that unfortunately we cannot help with immigration for folks outside the US. The position is local to Cupertino, CA.




Books, pens, notebooks... it’s that time of year 📚!

As the new school year begins, we know addressing topics such as #disinformation with students can be challenging. But no worries, teachers—we’ve got you covered!

Our toolkit on ‘how to spot and fight disinformation’ is the perfect resource to equip your students with key online skills:

✏️ Understanding disinformation
📏 Recognizing how it spreads
📘 Learning how to respond

Check it out → europa.eu/!JB9JDn




What is the best way to start your emails? 📨

Dear XYZ? To Whom It May Concern? I hope this #email finds you well? 🤔

Let us know in the comments!

Not sure? We've created a #guide to drafting emails from start to finish! 👉 tuta.com/blog/how-to-start-an-…

in reply to Tuta

Situation dependent. For formal communication I adhere to the rules learnt from my early years.

To Whom It May Concern, if the identity of the recipient, within an organization, isn’t readily known.

Dear XYZ/Gentili Signori(a) XYZ, if the recipient’s identity is known.

Hi — for follow up correspondences to the Dear XYZ recipient.

For all other informal communications, I adhere to no rules and simply go with whatever comes to mind. For example: Hey, Ciao, Bonjour etc



Ich hab da die letzten Tage im Urlaub n kleines Script Abends gebastelt.
Wenn jemand wie ich von #PocketCasts auf @AntennaPod umsteigen will. Hier mein Tool um mit nem eigenen Gpodder Server. bzw. myOPodSync seinen ganzen Verlauf zu syncen.

Gerne Teilen und mit helfen, das Tool besser zu machen.
Meine Python skills sind beschraenkt, und da geht bestimmt noch einiges mehr :)

github.com/Exellent1988/Pocket…

This entry was edited (3 months ago)


Isn’t it interesting how quickly Facebook rolled out a fix for a minor visual glitch, yet doesn’t bother when there are major issues for screen reader users. On iOS, it is still not possible to hear Voiceover feedback when typing a new post, and I believe that problem has existed for months on Android.
I think that sums up FB’s attitude towards accessibility quite neatly, and they are far from alone in this.
#SocialMedia #Accessibility
Facebook says its new app icon was just a glitch after all 9to5mac.com/2024/08/30/faceboo…

reshared this



🔄 S naší čtečkou Miniflux 🔄
Pokud ještě nevyužíváte naši RSS čtečku Miniflux, tak je nejvyšší čas to zkusit! 📰
📲 Díky integraci s Mxchatem (Element) si můžete nechat zobrazovat náhledy RSS zpráv přímo v chatu a mít tak všechny novinky na dosah ruky.
#mxchat #mxchatcz #rss #miniflux #element #matrix #opensource


Listen to all of the articles posted to the iAccessibility Report blog in your favorite podcast app. Subscribe, and let us know what you think. podcasts.apple.com/us/podcast/…