1
0
Fork 0
mirror of https://github.com/mat-1/matdoesdev.git synced 2025-08-02 14:46:04 +00:00
This commit is contained in:
mat 2024-02-21 22:01:36 -06:00
parent 1ff2742c18
commit 2b8d6dc83f
3 changed files with 159 additions and 2 deletions

View file

@ -59,6 +59,7 @@ p {
a {
color: var(--accent-color);
fill: var(--accent-color);
}
.center {

View file

@ -0,0 +1,60 @@
<script lang="ts">
export let data: [string, number, string?][]
let max = Math.max(...data.map((d) => d[1]))
function abbreviateNumber(value: number) {
if (value >= 10_000_000) {
return (value / 1_000_000).toFixed(0) + 'm'
} else if (value >= 1_000_000) {
return (value / 1_000_000).toPrecision(2) + 'm'
} else if (value >= 10_000) {
return (value / 1_000).toFixed(0) + 'k'
} else if (value >= 1_000) {
return (value / 1_000).toPrecision(2) + 'k'
} else {
return value
}
}
</script>
<div class="bar-chart-container">
<svg style="width:{data.length * 25}px">
{#each data as [label, value, valueHtml], i}
<rect
x={i * 25}
y={115 - (value / max) * 100}
width="20"
height={(value / max) * 100}
fill="hsl(200, 50%, 50%)"
/>
<text x={i * 25 + 10} y="125" text-anchor="middle" fill="white" font-size="10">
{label}
</text>
<text
x={i * 25 + 10}
y={115 - (value / max) * 100 - 5}
text-anchor="middle"
fill="white"
font-size="10"
>
{#if valueHtml}
{@html valueHtml}
{:else}
{abbreviateNumber(value)}
{/if}
</text>
{/each}
</svg>
</div>
<style>
.bar-chart-container {
overflow: auto;
}
svg {
width: fit-content;
height: 125px;
overflow: auto;
}
</style>

View file

@ -7,6 +7,7 @@ hidden: true
<script>
import UserSearch from './UserSearch.svelte'
import BarChart from './BarChart.svelte'
</script>
I've recently been engaging in some tomfoolery to acquire a list of 51 million Minecraft: Java Edition player UUIDs (out of ~61 million total existing UUIDs).
@ -108,12 +109,13 @@ At some point in this process I coincidentally met another UUID harvester named
![yuno: I have 55m mojang uuids](yuno-55m.png)
I learned Yuno is in [the same group](https://solo.to/fanclub) as Northernside, and after we talked a bit he told me he'd also obtained his list from scraping, stuffing usernames from data breaches, and generating usernames.
He's also where the 61 million estimate at the beginning of this blog post comes from; he got it by extrapolating using Hypixel's lifetime player counter.
He's also where the 61 million estimate at the beginning of this blog post comes from; he got it by extrapolating with Hypixel's lifetime player count.
## Epilogue
To help me reach 50,000,000 UUIDs, Northernside and [Semisol](https://semisol.dev) (who had scraped for Hypixel players a few years ago) also donated their lists to me.
TODO: mention current number of uuids i have, link to archive.org, say i'll keep brute forcing and making more dumps, etc
At the time of writing, I have a total of 51,569,249 UUIDs.
I've published all the UUIDs (and usernames, and Mojang API responses) I have at [archive.org/details/minecraft-uuids-2024-02-22](https://archive.org/details/minecraft-uuids-2024-02-22).
If you'd like to check if you're in the dataset (you probably are), here's a convenient widget for searching usernames in my database:
<UserSearch />
@ -136,3 +138,97 @@ It could also be used for making user lookup websites like NameMC, or maybe doin
Making archives of user-generated content will usually be controversial since it makes it harder for users to delete their data.
However, I believe the harm here is minimal since my dataset doesn't have very much (UUIDs, usernames, skins) and there's other ways of obtaining people's old names anyways (like NameMC, <a href="https://laby.net">laby.net</a>, etc).
</p>
## Stats
Here's some random miscellaneous stats about usernames that I think are interesting:
**Length distribution**:
<BarChart data={[
[1, 4],
[2, 332],
[3, 50543],
[4, 586300],
[5, 1955634],
[6, 4800891],
[7, 6673174],
[8, 7461203],
[9, 6921332],
[10, 6125814],
[11, 4959496],
[12, 4045519],
[13, 2942492],
[14, 2174031],
[15, 1839781],
[16, 1032702],
[19, 1, '<a href="https://namemc.com/profile/UltramegaCHICKEN123.1">1</a>'],
]} />
<br />
<br />
<span><strong><a href="https://matdoes.dev/minecraft-uuids/api/words.txt">Most common words</a></strong> (split by underscores and camelCase):</span>
```
1. the
2. mr
3. xx
4. king
5. mc
6. man
7. gamer
8. yt
9. big
10. its
```
<span><strong><a href="https://matdoes.dev/minecraft-uuids/api/suffixes.txt">Most common suffixes</a></strong> (numbers and underscores at the ends of names):</span>
```
1. _
2. 1
3. 2
4. 123
5. 3
6. 7
7. 0
8. 12
9. 69
10. 11
```
<span>The <strong>most common years</strong> out of the suffixes seem to be:</span>
```
1. 2004
2. 2003
3. 2010
4. 2002
5. 2005
6. 2012
7. 2001
8. 2006
9. 2007
10. 2011
```
<span><strong><a href="https://matdoes.dev/minecraft-uuids/api/desired.txt">Most desired names</a></strong> (most common names when the suffixes are removed):</span>
```
1. alex
2. shadow
3. max
4. jack
5. chris
6. daniel
7. david
8. nick
9. ghost
10. leo
```
<style>
pre {
margin-top: 0;
}
</style>