I used to downvote fairly often on Reddit as a sign to disagree or to push down really disgusting bigoted comments. And to be honest, it became a habit to just downvote without replying. However, now that I’m on lemmy and not Reddit I’ve been actively trying to not instantly downvote things and instead move on or take the...
Hello, The 4 people in my family who I was considering telling my truth have previously shown acceptance of LGBTQ+ people. They are my mother, father, grandpa (mother’s side, probably the most vocal ally I know), grandma (father’s side). I recently came out to my mother. She stated that I was too young to be gay, too young...
I kind of want to come out because if I don’t I will find it hard to find a boyfriend especially in my current situation there are like 0 queer people around
(Linux Mint) Switched to an AMD graphics card recently and ran “sudo apt remove --purge” on all ^nvidia* and ^libnvidia* packages. Unfortunately, one package (libnvidia-compute-470) seems to not get the message and won’t remove itself. Quick search around the internet on solutions have not resolved the issue yet. Wondering...
If you are attempting to use regex match on the package name I am pretty sure you need to use .* not just * as . represents any character except newline and * is 0 or more matches of the previous character in a regex. so your expression was looking for libnvidi with 0 or more a character which I don’t think is what you wanted and that might be why it didn’t work as expected. Cheers!
This post is a sort of partial dump of my efforts towards an idea/proposal for improving discoverability and onboarding for the Fediverse while avoiding new users just being dumped on a centralised instance. I’ve seen people suggest that one of our secondary defenses from megacorp social media (like Meta) is improving our UI,...
The weighting system indicates how much interest (or avoidance) an instance has for a topic as specified by the subject tree. The value of weight for each subject tree should be a value from -1 -> 1 (inclusive), and applies to the deep-most component of the tree. We’ll call this the sentiment of the instance towards that specific level of the tree.
The common interest algorithm specifies a rough way to estimate how “aligned” in sentiment a given pair of entities are using an incomplete collection of nested topic paths ^.^ and then using heuristics to fill in the “gaps” needed for direct comparison. It takes the partially specified trees - along with estimated polarisabilities - from federated instances, combines them together, then uses that to “complete” the sentiment weights specified by users and instances so they can be directly compared to determine the common interests of each to contribute to directing users to instances correct for them.
The default option should be that users are assumed to want “general sentiment/general topic/root topic” instances (i.e. with path /), and then they can specify much more refined interests using various methods, like taking search terms and using the collected known topics for them in various languages to construct a user-friendly search function based off the common interest algorithm heuristic, or allowing direct specification of interests, for more advanced users ^.^.
The full (but slightly incomplete) details of my approximate proposed Common Interest Algorithm are in this gitlab snippet, written in poorly-organised Rust code.
Tagging the Willingness for New Users
Different instances have a different level of desire (and gatekeeping) for new users.
Some don’t allow any new users at all. Others require filling out a form and waiting for approval. Many require an email or captcha, and some don’t require anything whatsoever.
Some don’t want any new users, some do accept new users but only can handle a small number, and others are free-for-all open registration.
Many users will want the ability to create communities without needing to seek approval. For defaults on the “maximum” level of “inconvenience” an instance presenting other instances should show to the user, it makes sense for an instance to use it’s own level of “inconvenience”.
nodeinfo2 (also see here for all keys) already exists to provide some basic information, but it’s not enough for this feature ;p
As such, I suggest we instead construct a property on the main server actor, for now called instance_onboarding_meta. This is an object of the form:
<pre style="background-color:#ffffff;">
<span style="color:#323232;">{
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"accepting_new_users"</span><span style="color:#323232;">: </span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">bool</span><span style="color:#323232;">, </span><span style="font-style:italic;color:#969896;">// if this is false, no other references need be present
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"capacity_used"</span><span style="color:#323232;">: </span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">float</span><span style="color:#323232;"> </span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">(>=</span><span style="color:#323232;"> </span><span style="color:#0086b3;">0</span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">)</span><span style="color:#323232;">, </span><span style="font-style:italic;color:#969896;">// Must be present, represents one-minus the remaining amount of users it can take as a fraction of total estimated capacity. Alternatively, represents an approximate fraction of resource usage. If it's >1, this implies the server is over-capacity.
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"preferred_max_users"</span><span style="color:#323232;">: </span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">integer</span><span style="color:#323232;"> </span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">(>=</span><span style="color:#323232;"> </span><span style="color:#0086b3;">0</span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">)</span><span style="color:#323232;">, </span><span style="font-style:italic;color:#969896;">// If present, represents the approximate maximum number of users this instance wants to host. If unset, assume unlimited but perform estimates based on the fraction.
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"signup_requirements"</span><span style="color:#323232;">: {
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"captcha"</span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">,</span><span style="color:#323232;">
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"email"</span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">,</span><span style="color:#323232;">
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"approval"</span><span style="background-color:#f5f5f5;font-weight:bold;color:#b52a1d;">,</span><span style="color:#323232;">
</span><span style="color:#323232;"> }, </span><span style="font-style:italic;color:#969896;">// Must be present, a list of the signup requirements. May need more options as new authentication and validation mechanisms are added to the various Fedi servers ^.^
</span><span style="color:#323232;"> </span><span style="font-weight:bold;color:#183691;">"signup_uri"</span><span style="color:#323232;">: "https://example.com/signup/finalized" </span><span style="font-style:italic;color:#969896;">// "final" signup page, rather than one providing alternate instance suggestions. Should take e.g. a `?username=<new username>` parameter.
</span><span style="color:#323232;">}
</span>
Instance Signup Redirection Algorithm
Now that a system has been proposed for giving instances to describe how much effort it takes to sign up, how much they can really take new users, and what kind of community they’re interested in, we can use this data to construct a method to split signup across the fediverse.
We’ll describe things in terms of what happens either as the list of instance values is changed while they are polled, or finally what happens when a user actually looks for an instance ^.^. Though, a lot of the ideas are also mentioned in the Common Interest Algorithm Snippet, which also at least partially discusses some other things.
Step 1 - Candidate Instance Collation
The first step is to collate information about potential candidate instances, by making requests to the endpoints described above to instances the current instance is federated with - including itself! (it might be useful to combine all the metadata into one endpoint as well, but that’s all bikeshedding):
instance_software - the software of each instance
instance_focus - the list of weighted subject-trees that indicate what the community is oriented around - see the algorithm snippet for efficiently merging in information from instances without having to recalculate the full weights every time, via use of BTrees/BTreeMap.
instance_onboarding_meta - Information about how the instance accepts new users, and it’s resources to do so.
Instances shouldn’t poll this very frequently - certainly not on every attempted user signup! - and instead should cache it and poll periodically (say, every hour or so ^.^). This avoids slamming large portions of the network.
Step 2 - Software Filtering
The next step is filtering out candidate instances running different fediverse software than ourselves.
Step 3 - User Acceptance Filtering & Weighting
Our instance should then filter out instances that aren’t accepting users, and perform the following steps to assign weights to instances (may be configurable if the user is ok with accepting more effort than our instance requires - as most users are likely to use the default settings it should be cached too):
For each instance, if it requires more things to sign up (email when we don’t need it, etc.), then remove it from the list.
For captcha, mark that instance with a “0.5” weight multiplier rather than eliminating it, if we don’t also require captcha.
From a user-configurability perspective, each possible requirement to signing up can either:
Eliminate from the list (a user doesn’t want to deal with forms) - this is the default for things required by another instance that aren’t required by ours, except captcha
Reduce it’s chance of selection (as in captcha) - this is the default for instances if the respective instance has captcha but the current instance doesn’t.
Have no effect - this is the default if we also have a requirement.
For each instance, if it has a preferred max user count, then calculate the current approximate user count by multiplying it by the resource usage capacity.
Then, calculate the approximate available user slots by subtracting the approximate user count from the preferred maximum. Note that this value may be negative in the case of an overloaded server.
Find the instance with the largest preferred max user count (if none exists, then use the current server’s user count instead, though remember that if your server does have such a preferred max count, it should be in the list). If any server has an estimated total user slots consumed greater than the maximum preferred user count, use this instead.
Then, assume that the preferred maximum for servers with no specified maximum is approximately 2x that value. Calculate the approximate available user slots of instances without an existing preferred maximum, using this estimate in combination with the resource consumption fractions.
For any instance with available user slots <0 - that is, overloaded servers - divide those (negative) available user slots by some value such as 4.
If any instance has a negative number of available user slots, add the most-negative number back on to every instance’s count of available user slots, so that the smallest value is zero.
The division by 4 (or some other number) means that all overloaded servers are avoided more than they would be if we just added the most-negative value back directly.
Assign weights to each instance depending on their proportion of available user slots compared to the total. If the instance has already been tagged by a weight (from e.g. having captcha), then multiply by that weight.
Each instance has provided subject trees of what it’s community is meant to be like. Moreover, it has provided the terms it believes to refer to various concepts within their subject tree.
This step is where all those terms get merged together to then be used later via some kind of search algorithm, for the more sophisticated cases.
The steps are as follows.
Collect all the subject trees from each instance into some way of iterating over them.
Construct a BTree-based map of topic paths plus associated term information, merging in new values for every level from every federated server ^.^. Much more sophisticated versions of doing this efficiently are documented in the Common Interest Algorithm snippet, even if not for the terms, so just look at that :)
There may be a way to use Heaps or some hierarchical datastructure to sort the instances to do this more efficiently, but as long as the implementation of the Common Interest Algorithm uses BTrees and pre-calculates lexicographically ordered maps of data it can be ensured that the cost of this kind of commonality assessment only grows with the size of the tree specified by the user and the single instance to be compared, rather than all instances (for an individual instance/user comparison ^.^).
There may also be ways to compare the user against all instances at once more efficiently that I don’t know of. But the point is, we can use the Common Interest Algorithm to assign weights for each instance/group/etc. relative to each user.
We could also use some way to convert a user search query into their Common Interest Algorithm tree weights, using the list of known terms. This is for slightly more advanced terms or people perhaps searching for communities or other groups too.
Step 6 - Elimination of Anti-Aligned Instances
Any instances/groups/communities/etc. with alignment <0 should be immediately eliminated from the list of suggested instances/groups/communities/etc. to the user.
Step 7 - Combining Sentiment Alignment Weights & Other Ranking, plus Final Selection
We already have some ranking information based on how willing and able an instance is for new users, plus we have information on how aligned each instance is with this hypothetical new user - now all a fraction from 0 to 1, as we cut out instances that have a negative alignment with the user ^.^. Then I suggest we find some simple way to join those two values together. For now, I suggest simply multiplying the alignment fraction with the weights for each instance, and then use probabalistic selection to direct the user to an instance that aligns with what they want ^.^
It may also be desirable for instances to prioritise somewhat older instances with better uptime, or more trustability (e.g. using some kind of heuristic to detect bot instances or similar), and modify the weightings based on that, or eliminate some instances ^.^
For non-instance searching or discovery, we can use the alignment ranking directly as a form of search ranking :)
Step 8 - Redirection
Redirect the user to the “final” signup page as listed in the instance metadata, along with the parameter for their desired username. Perhaps it would be worth using webfinger to make sure the username isn’t taken on any selected instance, and automatically selecting different instances from the list until you find one without the username taken already, with a warning.
If we’re talking about discoverability of communities or similar, you just put those in order of their direct sentiment alignment rank ^.^
I once worked with a senior dev who wrote all his array iteration for loops with no condition e.g “for int i = 0 ;; i++” and added an “if i == array.length then break” type condition to the end of every block… And he genuinely didn’t see this as a problem at all.
@Gargron Mastodon has a built in user base of 0 basically so that’s a total gain of 1.6M, Instagram has a built-in user base of like 800M, so Threads has 730 Million people who aren’t on it yet. So if you think about it one way, more people will choose not to use Threads than will choose to join Mastodon.
Recently mullvad stopped the port forwarding, are there some other trustworthy VPN to do Torrenting out there or others solutions to do torrenting with Mullvad?
There’s people who make dumb arguments that go “but what if you run out of ram?” And then someone else says “I have enough ram” and then someone else goes “but what if you run out of ram?”
I have a small amount of swap, a few gigs, and enough memory for the application. Moreover I also have my swappiness set to 0 because I don’t want stuff swapped out of memory. If I need more memory I need more memory.
So nothing bad will happen because that’s still 4 amens but maybe a second amen undoes the amen? then it would count as 0 amens so something bad might happen to you… or maybe 24 good things will happen and then 20 bad things? Who knows! :D
I bought a smart filament runout sensor a month ago, and I’ve been having problems off and on with it. Right now I have it mounted just outside of the extruder of my ender 3 and it keeps triggering on longer prints....
I’m running a reverse Bowden setup (direct drive but filament constrained to a Bowden tube) on Klipper but here’s some things I’ve encountered.
Add a little padding to the runout distance (e.g. if it’s set to trigger at 7mm change it to 10). Especially in a Bowden/push config
If that doesn’t help check that you have your retractions dialed in. If they’re too large then you may get a scenario where it retraces back, the sensor rotates but since it’s less than the configured detection distance it doesn’t register movement. On subsequent extrusion there’s movement again and after the retraction it takes a bit to un-retract. So you get a scenario where it pulls back 4 and pushes 4 and that’s a “net 0” but it registers that it moved 8 without a detection. Having a higher detection distance helps since it will recognize movement before it hits that limit.
Make sure there’s no filament dust jammed in the sensor. Although but should be less prone to affect this one since it picks up on the rotation of a wheel rather than the filament directly.
Having spent a lot of time on Mastodon... There are tons of people there talking about federated and self-hosted services, software freedom, censorship, encryption, tech regulation... A very narrow range of topics directly surrounding the fediverse get a lot of attention....
The fediverse has gone from 0 to 0.4 in the last ~6 months. Again, the fashion communities still don't exist. The cooking communities are still pretty fucking small. There are not enough animal gifs. People who come here see it as empty, see people all discussing the same narrow range of topics, and leave. There's nobody to follow on Mastodon. I've been on Mastodon, specifically, for over six years. I got really excited when people started talking about it on Twitter, but I still haven't found more than a dozen accounts, and I still have zero engagement, because the fediverse still barely exists.
No, absolutely not. By Reddit standards, this was a tiff. Maybe a smaller tussle. Definitely not a kerfluffle.
Besides, part of this is a “me” problem. I’m still adjusting to not having to come out of the gate swinging the first time I sense hostility. Did I respond to an energy? Sure. Did I respond to an intentional energy? …eh, maybe, maybe not. Did I go from 0-100 too fast? Probably. What I’m saying is, I see how I could have handled that better. And the fact that you took the time to engage with me over it is a big positive for the platform.
Here's the best graphic I've seen for putting the numbers in context: https://xkcd.com/1732/
It's slightly out of date so we're actually at roughly +2 degrees C.
Basically, from year 0 CE to 1000 CE there was basically no change in average temperature. Then from 1000 CE to 1900 CE temperature actually went down about .5 degrees. Since then, we've gone up 2.5 degrees. So the past two thousand years temperature changed a total of .5 degrees down. We've increased about 5 times that in the past 100 years.
In some of the music communities I’m in the content creators are already telling their userbase to go follow them on threads. They’re all talking about some kind of beef between Elon and Mark and the possibility of a boxing match… Mark was right to call the people he’s leaching off of fucking idiots.
i’m like somewhat computer literate but ive basically just come to the conclusion that online privacy is sorta unobtainable so its a myth anyways. if someone much more clever than me wanted my online history they can probably find it through some tech trick ive never heard of. the main defense i have is that no one fucking cares about what ive done online because im not anyone with any political influence and i don’t commit crimes, so theres just 0 incentive for anyone to steal my shit or care in the first place
Yes - same as with the original script, upgrades would require more manual steps than just updating the version in the Compose file. This is how it’s typically done.
There are ways to automate this. Docker Hub used to have a feature for automatic rebuilds when base images had changed, but AFAIK this feature was removed some years ago. Now it’s a matter of setting up a CI with periodically (nightly or weekly) scheduled pipelines, but it’s not a trivial matter.
Semi-automation can be achieved by using build-time arguments. I’m at my computer now, so here’s a revised process:
First, a bunch of manual commands that would allow us to write a patch. I’ll use those crude sed statements - just because they work today, but YMMV.
And finally, create a file called .dockerignore that contains only one line that would say build.sh. That’s just minor cosmetic touch saying that our build.sh is not meant to be a part of the build context. If everything is correct, there should be now 4 files in the directory: .dockerignore, build.sh, change-limits.patch and Dockerfile.
Now when you run build.sh it will automatically find the latest version and build you a custom image tagged as e.g. my-mastodon:v4.1.3, which you can use in your Compose file. For a distributed system like Docker Swarm, Nomad or Kubernetes you’ll want to tweak this script a little to use some registry (your-registry.example.org/your/mastodon:v4.1.3) and possibly even apply changes further (e.g. docker service update --image …).
Mutable tags like latest can become confusing or even problematic (e.g. if you’ll want to downgrade it’s best to have previous version image readily available for some time - even if the build process is reproducible), so I would really recommend to use explicit version number tags.
I want to eat sprouts made by me every second day for super health feeling I like them but I seem to always forget about such a simple thing as washing the sprouting jar morning and evening.
I considered some kind of electronic device with a red Led light catching eye or even blinking that I put near the jar and it activates at 8:00 am and I have to press the button to deactivate the blinking.
So I have arduino lying about and there is realistically 0 percent chance I will finish this diy after 8 hours of hypeffocus and 3 changes of scope (more ambitious)
The exposure is still greater than the zero that currently exists. If only 1% see the stuff from the smaller instances and figure out what’s up, they’ll jump. That’s better than the current near 0. There’s not really a scenario where it reduces the activity here any further, only improves it.
The villain would have won, if he’d just had the good sense to NOT BE OBVIOUSLY EVIL FOR LIKE HALF AN HOUR. You could have just celebrated your victory over the first bad guy while you let the hero meander back to the surface and fuck off forever. But NO, you have to be like “HAHAHA I’M EVIL SO FUCK YOU!” and now the hero has literally no choice but to stay and kill you. It was so lazy, and so stupid. Up to that point, it was good, and I loved the twist, and then he had to go completely ruin it with a boneheaded move that made 0 sense except to show how evil he was.
Then Bioshock 2 fucking did the same thing again. Let these meddling interlopers get on the submarine and go away, and you’ve won, all your goals are complete, Rapture is yours. BUT NO, we have to show the reader how EVIL the bad guy is again.
Then Bioshock Infinite did it fuckingagain. Great, we’ve won, the revolution is a success, the good guys are triumphant, oh, shit, did we make these people too sympathetic? Better have them suddenly become bloodthirsty child-killers for no reason so you feel ok fighting them instead of fucking off back home! By that point, though, it was kind of a Dead Dove: Do Not Eat situation; I don’t know why I expected anything different after the previous two times.
Eat your fibers (lemmy.world)
One of my favorite pieces of literature of all time!
Has anyone else been trying to break their reddit-era habit of downvoting?
I used to downvote fairly often on Reddit as a sign to disagree or to push down really disgusting bigoted comments. And to be honest, it became a habit to just downvote without replying. However, now that I’m on lemmy and not Reddit I’ve been actively trying to not instantly downvote things and instead move on or take the...
CW HOMOPHOBIA: My mother said I was too young to be gay, and now I don't have the motivation to come out again.
Hello, The 4 people in my family who I was considering telling my truth have previously shown acceptance of LGBTQ+ people. They are my mother, father, grandpa (mother’s side, probably the most vocal ally I know), grandma (father’s side). I recently came out to my mother. She stated that I was too young to be gay, too young...
How to manually remove nvidia package that won't go?
(Linux Mint) Switched to an AMD graphics card recently and ran “sudo apt remove --purge” on all ^nvidia* and ^libnvidia* packages. Unfortunately, one package (libnvidia-compute-470) seems to not get the message and won’t remove itself. Quick search around the internet on solutions have not resolved the issue yet. Wondering...
Improving Fediverse Discovery & Onboarding
This post is a sort of partial dump of my efforts towards an idea/proposal for improving discoverability and onboarding for the Fediverse while avoiding new users just being dumped on a centralised instance. I’ve seen people suggest that one of our secondary defenses from megacorp social media (like Meta) is improving our UI,...
Pika pika (i.imgur.com)
For loops? That's a weird way of saying try catch (lemmy.fmhy.ml)
VPN for Torrenting
Recently mullvad stopped the port forwarding, are there some other trustworthy VPN to do Torrenting out there or others solutions to do torrenting with Mullvad?
Mobile vs PC experience
Hello all!...
How much swap?
I’ve heard a lot of people say your swap should be 2x RAM… but do I really need 32GB of swap?
El Paso Walmart gunman who killed 23 gets 90 consecutive life sentences (www.bbc.co.uk)
Type amen or something bad will to you. (i.imgur.com)
BTT Smart Filament Runout Sensor Configuration
I bought a smart filament runout sensor a month ago, and I’ve been having problems off and on with it. Right now I have it mounted just outside of the extruder of my ender 3 and it keeps triggering on longer prints....
Can we please remember to talk about things on the fediverse besides the fediverse itself? (kbin.social)
Having spent a lot of time on Mastodon... There are tons of people there talking about federated and self-hosted services, software freedom, censorship, encryption, tech regulation... A very narrow range of topics directly surrounding the fediverse get a lot of attention....
United Methodists lose one-fifth of US churches in schism driven by growing defiance of LGBTQ bans (apnews.com)
Earth reaches hottest day ever recorded 3 days in a row (abc30.com)
I think the average person just simply doesn't care about their privacy.
In some of the music communities I’m in the content creators are already telling their userbase to go follow them on threads. They’re all talking about some kind of beef between Elon and Mark and the possibility of a boxing match… Mark was right to call the people he’s leaching off of fucking idiots.
Quick script to change Mastodon Docker deployment character limits (kbin.social)
Howdy folks!...
Some tools I find handy for managing ADHD
Hi all,...
Meta will kill small instances! Please read.
I just read this point in a comment and wanted to bring it to the spotlight....
Why I Probably Hate your Favorite Video Game's "Awesome Story" (an incomplete list)
Your favorite game’s “awesome story” merely goes through the motions when portraying conflict...
Polyamory rule - helpful infographic (lemmy.blahaj.zone)