[-] [email protected] 2 points 2 hours ago* (last edited 2 hours ago)

You have to dm your account password to @[email protected] now.
Sorry, I don't make the rules.

[-] [email protected] 1 points 2 days ago

This sort of software issue needs to be more well known to be fixed in my experience. To either increase the priority for the existing devs to find a solution until they do, or increase the circle of people aware until someone learns of it that fixes it.

This "first step" would make the issue less well known, since some people would see it as already fixed, or on the way to it. But at the same time, it would do absolutely nothing towards fixing the issue; It wouldn't even give any dev practice towards it.

If you find compromise solutions, you risk people taking that and not bothering to request an actual solution. Take the switch from IPv4 to IPv6, then making lemvotes useless would be like introducing NAT, a shitty "solution" only partially fixing the problem, yet the reason we have not been forced to switch 25 years ago. And so, since there is no pressure, the world still runs on IPv4.

I think this is one of the cases where you want to only let the issue be fixed the right way, or it'll never be fixed.

[-] [email protected] 3 points 6 days ago

It is complicated but possible.
You can anonymize votes, peertube is doing something like that.
I can imagine even more complicated systems that limit the instances with that info to 2-3, a number small enough to make it plausible no leaks happen, while still making it very hard to fake votes with a malicious server.

[-] [email protected] 16 points 6 days ago

Understandable but not what this proposal would achieve. The data is available, this is just one of the interfaces showing it.

This one can be easily opted out of, other existing ones cannot.

[-] [email protected] 20 points 6 days ago

That data is available to admins of any instance. Anything federated. That's an impossibly large number of instances to keep track off over information leaks, especially since votes are saved permanently so any leak of any instance would retroactively expose all votes again.
This is not even starting to touch on other activitypub software interpreting votes as inherently public and showing them as such. On mbin, anyone can see votes.

In practice this data simply is irrevocably public until lemmy itself hides it on the protocol layer. Right now, it can't even be properly obfuscated.

[-] [email protected] 23 points 6 days ago* (last edited 6 days ago)

This is not going to give anonymity, it at worst gives an increased false sense of anonymity.
Not only could others spin up more copies of lemvotes, last time I checked every mbin instance shows that info freely.

For what I'm concerned this proposal would merely make looking up votes slightly less convenient.

Edit: Yep, mbin still shows votes, no login required: Example

74
The Hungary Games (lemmy.dbzer0.com)
submitted 3 weeks ago* (last edited 3 weeks ago) by [email protected] to c/[email protected]

I joined canvas 2025 about a day in. Looking around, I eventually stumbled into the — at that point relatively complete — EU flag area. There was a Canadian, Brazilian, and South African flag, which may or may not have been what gave me the idea to pull a joke and replace Hungary with Ukraine. I'll touch on it a bit more later, but one great motivator for that punchline here is that Hungary is vetoing chances of Ukraine joining the EU. Thus kicking out Hungary and taking in Ukraine in its place seemed like a fun thing to do.

I joined the matrix space, announced the idea, shot a quick once-sentence justification, and together with a few people replaced the original Hungarian flag with a Ukrainian one. I also then added the text "soon", to represent the wide-spread hope that Ukraine may soon join the EU.

Then, I filled the remaining space of the EU flag area with Malta and Cyprus (getting some help in making the "free luigi!" sign move out of the way and constructing my designs), and built some other flags (redesigning Slovakia) to complete the EU minus Hungary. I saw Brazil get taken over by a neon-green Esperanto (the conlang), but didn't really care.
At that point I took a pause. Esperanto (the neon-green conlang) was redrawing its flag to its own shade of dark green, and unbeknownst to me was at the same time clearing some space and building a second flag below the EU area, which Hungary then took over and attached to the EU flag area.

I come back and see another Hungary has spawned, and even deformed the entire flag area from a perfect rectangle into a non-rectangle with a bump on one corner.
So I did the only reasonable thing and turned it into Switzerland.
Didn't even announce anything, just went ahead and when the design became clear I was even helped by a few others without further communication.

At that point the area was quite packed, and I distracted myself expanding the (moved) "free luigi!" sign's luigi with two more luigis to cover up the Bahia flag that looked like a stylized US flag. Believing all the remaining EU flags to be well defended, I didn't notice Hungary steal Esperanto again. Let me repeat that, Esperanto built/stole two flags, which both one after the other got stolen by Hungary.

So I finish up the 3rd luigi, and see the 3rd Hungary. Right in the center of the EU flag area.

At that point I tried to turn the flag back to the earlier Brazil still fresh in memory, without thinking about it for too long. My objective at this point is to get rid of Hungary for good, they can't keep getting away with stealing their way back into the EU.
This attempt at replacement however ended up forming into a more balanced conflict (probably because noone actually cared about Brazil so the enthusiasm on the replacement side was far lower than before).

When I requested for help in the Matrix chat, this raised attention to the ongoing idea, but caused a larger discussion in the matrix chat in parallel to the canvas action. I went through the full ropes of why I wanted Hungary out (Basically as a message about their ongoing sabotage of the EU), and others raised various counter-arguments ranging from simple completionism to some complicated arguments about geography, political relations, which was naturally hard to argue for when there was a flag of Canada, Switzerland (I did build that myself but totally used it in the argument anyway), Ukraine (... see above), and Iceland (I built that one too, though it replaced South Africa).

Fundamentally, I suspect people were seeking for reasons to oppose this replacement here but not before, because Hungary→Brazil does not pass the underlying vibe-check for the EU flag block. Take for example the US flag, and stuff looking similar to it (sorry Bahia), which are obviously not a fit. Canada meanwhile is an easy yes.
I don't think there are overly strong connections between Europe and Brazil, if anything they seem positioned slightly antagonistically to me.
This would lead to the vibe-check conclusion that Hungary is dumpable, but Brazil also kinda shouldn't be there, which presumably most tried to justify with a range of more or less matching arguments.

Meanwhile, on the actual canvas, I was seeing that enough people simply didn't want a Brazillian flag in the EU region (completely understandable, it was a stupid choice on my part), so I pivoted to a second ukranian flag, and eventually opted to instead simply add "for now" to the Hungarian Flag, as an inversion to the "soon" of Ukraine.

The Matrix argument had been somewhat messy, no doubt in no small part due to my ulterior motives with it, though I think I did mention I didn't particularly care for Brazil.
Eventually, the argument progressed to where the consensus Brazil sucks too was reached, and the pivot to 2nd ukraine was eventually decided.
Not many people cared at that point, maybe because there was already a Ukraine, or because people (justifiedly) got sick of the entire topic and everything involved.

One other canvasser however really missed a lot of those pivots and kept getting hung up on the messy discussion.
They ended up with the goal of preserving the Hungarian flag perfectly without any compromises.

At that point truly almost noone cared anymore, so it was basically us two battling around writing vs destroying the text "for now" on the Hungarian flag. All the while the other user getting increasingly unhinged to the point it started being quite entertaining, while I had determined they weren't gonna change their mind in any way warranting arguing in serious. So I was basically rewriting "for now" in increasingly high-contrast (and thus ugly) colors, having fun with their attempted insults on Matrix and simultaneously solving puzzles of how to keep the text readable in the various conditions I cycled through. Occasionally someone joined in on canvas to add a few pixels on either side when the battle threatened to become one-sided, and in Matrix it was a more or less illustrious group of people watching and engaging with whatever the fuck that was. We have been shipped, had more and less ranchy fanfic written about us; I was fully prepared to spend the remaining 4+ hours of canvas time rewriting "for now" and being weird on Matrix, and I don't think I would have regretted any moment of that.

The Matrix chat is public, you can have a read in #canvas-general:aftermath.gg and judge for yourself. Together with the canvas data it should be possible to recreate everything here. (And I have backups of that stuff)

Anyway, this went on for a while until a certain cabinet assembler asked "can also help with something else if anyone needs help" to which I promptly jokingly replied :"I have this text I want to write". "'for now'". "on the hungarian flag in the eu flag block". "since hungary is at risk of being stripped of membership rights or smthn".
Intended as a joke since that had been all the entire chat (including this user) got to hear for hours.

At that point something triggered and a ton of people dogpiled into the flag, to the point the text quickly morphed into a ball of noise. So I did the only reasonable thing and restarted the ukraine project, slowly and methodically laying out the colors, and a bunch of people joined. Nuggsy went and built an entire patch of grass with heart flowers, it turned more amazing than I could have expected. Their words: "The flowers just kind of happened organically. In the back and forth for 2nd Ukraine, the green of Hungry started to kind of look like grass/flower stems and I just took advantage while people were distracted" - Nuggsy

The main Hungary supporter at that point had to come to terms with Hungary being a lost cause, so probably tried to compromise, though I think I missed a lot of that. Nothing much of anything was happening at that point, they were randomly trying to rebuild the flag into Scotland so as to not have two Ukraines, but were doing so by themselves in a way that made me doubt they would be able to do it. The remaining Ukraine-building people, me included, blocked those attempts.

At that stage, grant (canvas admin) stepped in, kicked us both (deservedly), I instantly rejoined, and did not receive any other comment about it. They did tell the other to take a breather and mentioned sending some DMs. After some time they came back and appeared far more cooperative. We agreed on replacing the flag, Armenia was proposed, though thinking about it I thought a blue background fit the flowers, and ended up agreeing that Scotland was perhaps a good option. I agreed with the other person to leave the flowers intact at first, which they said they didn't like but which I liked a lot. Then I whipped up a properly (poorly) aliased design for Scotland and a few people slapped it together in a few minutes (at that point canvas end was closing in). Then we further agreed to trim some grass, and after some back and forth we got what I think is an even better design that keeps the beautiful flowers on grass in front of the Scottish flag.

So that's how the 3rd and final Hungary was replaced by a Scotland with heart-shaped flowers.

Edit: I'll be editing typos for a while

32
pedm(as) (media.piefed.social)
submitted 1 month ago by [email protected] to c/[email protected]
1
Don't forget to sand (sub.wetshaving.social)
submitted 2 months ago by [email protected] to c/[email protected]
5
submitted 2 months ago by [email protected] to c/[email protected]

Occasionally I refresh and clear read posts only to see a couple posts I just looked at a short while before not marked as read. On opening them again the event log indeed shows a duplicate action for marking the posts read.

Anecdotally this seems to happen for a handfull of posts at once, and I notice it every few days, usually with posts I looked at towards the end of my browsing session. Sometimes a few minutes pass before reloading and finding the post, so I doubt it is some race condition.

I have observed this for a few months now.

Could this be an app issue or is it an issue with my instance?

Has anyone else experienced this?

[-] [email protected] 56 points 2 months ago* (last edited 2 months ago)

Wouldn't this make the units temperature-dependent?

Landauer limit is one kTln2 per bit of information, so at 300K about 3 zeptojoule per bit.
Dividing by c² we get 32 micro-quectogram per bit, so 32 yoctogram per terabit. 256 yoctogram per terabyte.
The Author wants half a septillion terabytes, 0.5•10²⁴ terabytes, half a yotta-terabyte.
That makes 128 grams.

Since I don't know what on earth "a cup of flour" is, I can't judge if the comic character proposes a reasonable conversion, but 0.1kg seems like a reasonable amount to use in cooking.

For baking I would rather have my units temperature dependent than density dependent (I can compact my flour or work with water or nuts, all having different densities, but my room temperature will always be roughly 300).
I endorse einstein-landauer units.

125
submitted 3 months ago by [email protected] to c/[email protected]

cross-posted from: https://lemmy.world/post/28688755

On Tuesday, the official account for the visa branch of the US Embassy in Tokyo posted an important note for those applying for a nonimmigrant visa — or DS-160 — for the States. According to the notice, applications must include accurate information regarding their SNS accounts that they have used within the last five years. Anyone who fails to comply with this request won’t be allowed to enter the country.

While the US Department of State (DOS) and the US Citizenship and Immigration Services (USCIS) have been checking the social media accounts of visa applicants and immigrants since at least 2019, Susanne Heubel, senior counsel at New York-based immigration law firm Harter Secrest & Emery LLP, told US Today that up until his last January these searches have been “almost negligible.”

1
submitted 4 months ago by [email protected] to c/[email protected]

Hi, I'm an experienced webdev but new to wordpress and was asked to build a maintainable webpage for a hobbyist group.
In the future they want to be able to maintain as much as possible themselves and for the remainder search for as broad a range of web-devs as possible.
Due to that I found it reasonable that they specifically requested I use wordpress, but they also requested elementor and astra.

Taking basically one long look at these I threw both of them out immediately and have been using a basic theme (twentytwentyfour) and no plugins so far.
My contact however keeps insisting "all the tutorials use astra/elementor" or variations thereof, so just to cover my bases here,
What is the community consensus on astra/elementor?
What plugins themes would you recommend for such a situation?

The page has a bunch of static text-pages, a somewhat complex page-frame (with top and sidemenus) and a few "article pages" (Where later maintainers can easily create "posts" i.e. subpages).
Running costs are unacceptable and I would very much like to avoid one-time costs.

6
submitted 5 months ago by [email protected] to c/[email protected]

crosspost
cross-posted from: https://lemmy.dbzer0.com/post/22377511

This is the writeup of the improved biome noise of 4D miner mentioned in the newest devlog.

I think it got lost in federation when I posted it before

TL;DR: Algorithm is at the end.

Earlier today [about half a year ago], I was presented with an interesting problem.

Minecraft-style procedural world generation is largely built around noise functions. Noise functions are roughly functions that smoothly vary their output through space. At a large enough scale they are random, but close enough values are almost the same.
This is great for for example the height in the world. You take a 2d noise function, layer a few more with smaller scale to get smaller details, and have a nice varied but continuous surface, without any nasty jumps or pillars.

Now, how would you do "biomes", i.e. regions of the game-world with different generation features that are more hand-crafted? A common approach is to generate smooth values for hidden parameters, usually temperature and humidity, then have a lookup table that assigns those values to a biome. For example low humidity and high temperature might result in a desert.
It seems natural to generate temperature and humidity with those same smooth noise functions, to prevent a frozen ocean generating right next to a tropical rainforest.

Now, the issue is, the values output by all commonly used noise functions are not evenly (uniformly) distributed. What this means is, if you divide your biome table say into 3 sections: snowy, temperate, and tropical, each taking up 1/3 of the biome table, you might reasonably expect that 1/3 of your world will be filled with each of those biomes.
This is not the case!
Noise functions are usually defined to output values in the range from -1 to 1.
The commonly used noise functions will most often output 0, and less often say 0.8 or -0.9. They will effectively never output -1 or 1. This comes about naturally, since usually they are implemented as averages between random values at set positions, which always skews towards the mean of 0. (opensimplex noise is called that because the positions of the random values are on a grid of simplexes (triangles, tetrahedra, ...))

If you are a game developer, you usually don't want to deal with things like weirdly redrawing the biome table in the way that makes the biomes appear where and how often you want them to.
If you have a biome that takes up 1/8th of the biome map, it should appear in 1/8th of the world, no matter at which humidity and temperature it is located in the biome map

So the problem is this:

In this plot, a bunch of random positions were pulled from the noise function. Their values are sorted into buckets from -1 to 1. Values are more often found in the center around 0 than towards the edges.

We would rather like to have a noise function like this:

You can see that all values occur roughly the same number of times, and the noise still looks noisy.

The noise shown here in both graphs is 3D opensimplex noise, but my methodology should be applicable to any other noise algorithm too.

The idea is actually really simple. We already have a 3D map filled with nicely ordered values, that occur at a well known (in theory) frequency. So what if we could just rescale the image to achieve a uniform distribution? Very large and small values are rare, so why not just push all values a bit further away from 0?

To do this, we need to do two things:

  • We need to find the distribution of values
  • We need to describe it with an equation

Finding the distribution is easy. I already did it in the images above. Simply sample the noise at a bunch of random points and collect the values into buckets. To get good results, the number of values needs to be large, but computers can do that.

The hard part is describing it mathematically.
Really hard.
Usually this would be the point where you deep dive into mathematical literature to find the hero who has analytically calculated the exact probability distribution function of opensimplex noise. Unfortunately, to my knowledge, this has neither been done nor is expected to be realistically doable any time soon.

The next best thing would be to find a simple function that is very close to the observed shape of our distribution.

The function we specifically want is the cumulative distribution function which "is the probability that a value of the original noise will be less than or equal to x". I.e. if I put in a value, then 20% of the time the output of the cdf will be less than 20%, and X% of the time it will be less than X%. A uniform distribution.

Probability theory tells us the cdf is the integral of the pdf, which is the shape of that histogram we plotted. So we take the amounts in our buckets and build a new list with each value being the sum in the previous list of buckets up to that position. We "accumulate" our histogram buckets. The cdf is shown in all histogram plots as a green line.

Now we have a bunch of values, and we want to find the function that matches those values.

At this point what I did was basically sit down and plot a bunch of functions in desmos, trying to match the shape of the cdf. Eyeballing what equations roughly create which shapes is probably a form of art, all I can say is that I have spent years doing it and am now relatively good at doing it without knowing what I am doing.

I tried a lot of shapes, but initially got no feasible results.
So I tried around with some regressions, fitting for example a degree 5 polynomial.

The cdf has a distinct s-shape which reminded me of 5th degree polynomials, and indeed the fit appears to be quite good. The bottom section of the plot shows the errors to the observed values, which here are below 0.5%.

But there is a major issue. The outer-most waves in that error-plot, are where the graph is almost entirely flat

Our fit - the dashed blue line - is going down, then up. It is wavy. If there is a biome transition there, then that will go back, then forth, then back, then forth, then back.
Let's look at a close-up of the noise, and exaggerate the problem slightly for dramatic effect

So I tried around with functions that the fit cannot make non-monotonic, that will always increase everywhere. The natural choice here is exponentials. I tried around with a lot of them, but in the end the most successful one ended up being a simple superexponential: a⸱exp(b⸱exp(c⸱x))

Note that this is only fit to the initial tail, up to -0.5. The reason becomes apparent when looking at the entire distribution:

The superexponential can describe one of the tails, to 0.01% precision (!), but neither both tails nor the central region of the cdf.

But that is ok. Remember the earlier fit of the 5th degree polynomial? The waves were pretty mild, so as long as the function itself is sufficiently sloped, the fit will still always increase. So we can simply chop of the tail of the superexponential fit, duplicate it for the other tail, then fill the gap in between with a polynomial.

Long story short, we now get a good match of the cdf, that is also continuously increasing:

Doing a final run with even more samples and finer buckets to get better regressions to a more accurate cdf, we end up with

def superexponential(x):
    a = 0.9248868293553111
    b = 0.5485704082689358
    c = 0.04401213030934333
    return a*b**c**x

# shifted down by 0.5 for convenience
def degree5polynomial(x):
    a = 1.0831311631277447
    b = -0.694250899807959
    c = -0.24417784814719048
    return c*x**5 + b*x**3 + x*a

Which we combine in a simplistic way by doing

def noiseCorrection(x):
    
    if x < -0.5:
        out = superexponential(x)
    elif x > 0.5:
        out = 1 - superexponential(-x)
    else:
        center = 0.5 + degree5polynomial(x) *( 0.5 - superexponential(-0.5) )/degree5polynomial(0.5)
    
    return 2*out-1
```degree5polynomial

We can now define our own noise function

```python
from opensimplex import noise3
def noise(x,y,z):
    return noiseCorrection(noise3(x,y,z))

The factor ( 0.5 - superexponential(-0.5) )/degree5polynomial(0.5) can be compiled in for an actual implementation. It can also be multiplied onto a, b, and c in degree5polynomial. It ensures a smooth transition between the 3 parts of the fit, by scaling the symmetric polynomial around the centerpoint to equal the superexponential tails at 0.5 and thus -0.5.

A major caveat here is that my correction will only work for 3D opensimplex noise, other noises and even other dimensions of the same noise have different value distributions, and need a different correction. The example images shown were 2d slices of the 3d noise.

A small caveat is that I didn't bother to rescale the final fit. It will actually yield values in the range from about -0.9999978 to +0.9999978.
If for some reason you really need exactly -1 and 1 to be possible outputs, let me first tell you about floating point imprecision. After that, you can simply divide the output of noiseCorrection by 0.9999978, giving a range of -1 to 1.

142
Easy (jlai.lu)
submitted 7 months ago by [email protected] to c/[email protected]

cross-posted from: https://jlai.lu/post/14117725

1
submitted 7 months ago by [email protected] to c/[email protected]

This is a build I did last year, it is still on the redjard.org server.
I built it using fly-hacks and fastmine, redjard.org is an anarchy server.

This is the video description:

This an L₃ (meaning 3 iterations) Menger Hypersponge I built on my 4D Miner Server redjard.org
You can find it there centered around (-66, 112, -34, 42), the server is publicly accessible.
Being an L₃, the sponge fits inside a 27x27x27x27 tesseract.

It contains 110592 blocks, but was built by carving 3-wide slices into an L₁ (scaled x9), turning it into an L₂ (scaled x3), then by carving 1-wide slices into the L₂ to turn it into an L₃ (scaled x1).
Therefore originally 314928 blocks where placed, then 128304 blocks removed with the hammer, then 76032 mined with the pickaxe.

1
submitted 9 months ago* (last edited 9 months ago) by [email protected] to c/[email protected]

With the update there was an overhaul of what combinators can do.
I had the problem that my oil cracking would flicker, turning on for a split second then back off again, hovering right around the set threshold. (Probably worsened by me not switching a pump anymore like what used to be the norm.)

The old method would have been an SR latch, which enables at a higher set point and disables again at a lower reset point. This used to take 3 combinators.

~~I figured it should be possible to do better now, but could not come up with a way to cram an sr latch into a single combinator, since it can only be either on or off at one time. I think it takes two combinators to build an sr latch now.~~
A single-combinator SR latch is in the comments.

Instead I came up with another way to "debounce" my cracking.

Here shown is the combinator sending the signal to enable cracking (the recipe icon of light oil cracking) while the actual activation signal, light oil above 20k, is off.

The signal was on for a moment, then after the cracking started up the oil level immediately dropped below 20k again. But now the second condition, T between 0 and 10s, is active. While the combinator is active, it is sending out 1 plus the old count to T, counting it up once per frame. It remains active while the condition is active or while T is counting up but has not yet reached 10s (at 60 ticks per second). This ensures that every time the cracking runs, it runs for at least 10 seconds.
After these 10+ seconds, the level should take a while before rising above the threshold again.

For me, this successfully made the row of chem plants turn on in one smooth go.

1
submitted 9 months ago by [email protected] to c/[email protected]

3x the previous all time high just shy of 35k in August 2020 when 1.0 released - on a Friday during the pandemic.

[-] [email protected] 41 points 11 months ago* (last edited 11 months ago)

You know, thinking about it, I doubt this is a coincidence.

The finger-counting is familiar to me as a technique for lucid dreaming. If you look at your hands in a dream, your brain will kinda fuck it up, so if you train yourself to pay attention to that you realize you are dreaming and become lucid.

My guess is that the origin of fae is something like sleep paralysis deamons or hallucinations, and people realized they could detect those from the same flaws of our own imagination.

Now for AI, it isn't really drawing. What we are using in image-AI is still much more like projecting up a mental image, dreaming. We can't get it right all at once either, even our human brain is not good enough at it, it is reasonable image-AI makes the same kind of mistakes.

The next step would logically be to emulate the drawing process. You need to imagine up an image, then observe it at large, check for inconsistencies using reasoning and visual intuition.
Hone in on any problems, stuff that doesn't look right or doesn't make sense. Lines not straight.
Then start reimagining those sections, applying learned techniques and strategies, painter stuff (I am not an artist).
Loosely I imagine the ai operating a digital drawing program with a lot of extra unusual tools like paste imagination or telepathic select, or morph from mind.

The main thing differentiating dreaming from painting is that for painting you can "write stuff down" and don't have to keep it all in your head all the time. This allows you to iterate and focus in without loosing all the detail everywhere else.

28
submitted 1 year ago by [email protected] to c/[email protected]

I have been playing around with pwa-like experiences, and as part of that I tested "kiosk mode".

For those who don't know, you can start a "kiosk window" with the command firefox -kiosk --new-window <url>, which will open that url in fullscreen without a titlebar, right click menu, any overlays like the link preview or loading text, ...
I cancelled the fullscreen flag of my window, and had a resizable fully functional website in a frameless window.

Which was great and all, until I realized that in my running profile now every newly opened window is also in kiosk mode, and right click was globally disabled. My running firefox instance has been infected by the kiosk disease.

Anyway, it's not a large issue, I can just restart my infected instance. But I hate restarting my browser, it usually runs for multiple months.

My question is, is it possible to leave kiosk mode without restarting firefox?

[-] [email protected] 62 points 2 years ago

How does one write an article about it and then not even mention the instance nor link to their profile?

@[email protected]

This has likely happened because the german government created the social.bund.de instance earlier this year, paving the way for various government things in germany to simply request an account and be set up.

[-] [email protected] 72 points 2 years ago

Just like dndmemes, it's not that they removed the nsfw content, they removed everything. There is a hand full of posts left from over a month of content. On dndmemes they bothered to sort out maybe 30 non-nsfw posts from the highest rated posts, here it's more like 5. Seems they are getting even lazier about it.

view more: next ›

Redjard

0 post score
0 comment score
joined 2 years ago
MODERATOR OF