The Earth in Minecraft

The project at »The Earth in Minecraft« is a crazy but exciting community project. We want to create a complete, 1:1-scale replica of every building on Earth in the computer game Minecraft — a virtual copy of our entire world that showcases the diversity of cultures and habitats on our planet and stands as a testament to what we can achieve when we collaborate as a global human community. We invite every interested player to build with us, learn from one another, talk about different cultures, and experience the beauty of the Earth. Our goal is to make the Earth and its wonders accessible to anyone who has a Minecraft account. All explorers and anyone who wants to experience the Earth from the comfort of their home are warmly invited. By building the Earth we create a global, international community where friendships and cooperation can flourish across borders and where, as a united humanity, we can achieve something together. ...

August 21, 2024 · 1 min · 187 words

Human creativity

The developers of Procreate® have a clear stance on generative AI: they firmly reject its use in their products. In a Statement they emphasize: Generative AI is ripping the humanity out of things. Built on a foundation of theft, the technology is steering us toward a barren future. We think machine learning is a compelling technology with a lot of merit, but the path generative AI is on is wrong for us. ...

August 20, 2024 · 1 min · 171 words

Bookmarklet Blogging

I recently came across an interesting Bookmarklet bei Nicolas. It’s meant to make link-blogging easier for anyone with a GitHub-hosted blog. The script isn’t perfect yet, but it inspired me to develop it further. Here’s my version of the bookmarklet (function() { // Funktion zum Erstellen eines "Slug" aus einem Text const slugify = text => { let str = text.toString(); // Den Text als Zeichenkette behandeln str = str.replaceAll("/", " "); // Schrägstriche (/) durch Leerzeichen ersetzen str = str.normalize("NFD"); // Unicode normalisieren (diakritische Zeichen trennen) str = str.replace(/[^\w\s-]+/g, ""); // Sonderzeichen entfernen (außer Buchstaben, Zahlen, Leerzeichen, Bindestriche) str = str.toLowerCase(); // In Kleinbuchstaben umwandeln str = str.replace(/\s+/g, " "); // Mehrere Leerzeichen auf ein einzelnes reduzieren str = str.trim(); // Führende und endende Leerzeichen entfernen str = str.replace(/ +/g, "-"); // Alle Leerzeichen durch Bindestriche ersetzen return str; // Slug zurückgeben }; // Titel der aktuellen Seite aus dem Dokument abrufen let pageTitle = window.document.title; // Falls ein Text markiert ist, diesen als "linkSelection" setzen, ansonsten leer let linkSelection = "getSelection" in window ? window.getSelection().toString().trim() : ""; // Inhalt für den Link ermitteln: // Zuerst den markierten Text verwenden, falls vorhanden, ansonsten eine Meta-Beschreibung, // oder den ersten Absatz im <main>, <article>, oder <p>-Tag let linkContent = linkSelection || window.document.querySelector("head meta[name=description]")?.content.trim() || window.document.querySelector("main p")?.textContent.trim() || window.document.querySelector("article p")?.textContent.trim() || window.document.querySelector("p")?.textContent.trim(); // Die URL der aktuellen Seite let linkUrl = window.location.href; // Eingabeaufforderung für den Link-Titel (Standardwert: Seiten-Titel) let title = window.prompt("Title of the link?", pageTitle); if (title !== null) { // Nur fortfahren, wenn der Benutzer einen Titel angegeben hat // Eingabeaufforderung für den Link-Slug (Standardwert: aus Titel generierter Slug) let slug = window.prompt("Slug of the link?", slugify(title)); if (slug !== null) { // Nur fortfahren, wenn der Benutzer einen Slug angegeben hat // Das aktuelle Datum und die Uhrzeit im ISO-Format abrufen und in lesbare Form bringen const currentDate = (new Date()).toISOString().replace("T", " ").replace(/\.\d{3}Z/, " +00:00"); // Dateiinhalt für den Blogeintrag erstellen let fileContent = `---\n` + `date: ${currentDate}\n` + `title: "${title}"\n` + `authors: "maik"\n` + `tags: []\n` + `---\n\n` + `[${title}](${linkUrl} "${title}") für ${linkUrl}\n\n` + `${linkContent ? linkContent.replaceAll("\n", "\n> ") : ""}\n`; // GitHub-URL für das Erstellen einer neuen Datei zusammenbauen let githubUrl = `https://github.com/Maik-Wi/blog/new/main/?` + `filename=${`content/notes/${currentDate.slice(0, 10)}-${slug}-index.md`}` + `&value=${encodeURIComponent(fileContent)}` + `&message=${encodeURIComponent(`New link: ${title}`)}`; // Die URL in einem neuen Fenster öffnen, sodass der Nutzer sie bei GitHub weiterbearbeiten kann window.open(githubUrl); } } })(); The text was automatically translated from German into English. The German quotations were also translated in sense. ...

August 19, 2024 · 2 min · 414 words

itty.bitty

If you don’t have your own web presence and need a place to quickly jot something down and share it, it’s worth taking a look at the tool »itty.bitty«. It lets you easily write up text and share it with others. If needed, the page can also be password‑protected, and you can set additional metadata. A very useful service. What’s technically interesting is that the entire content is contained in the URL. ...

August 18, 2024 · 1 min · 89 words

One Million Screenshots

The site »One Million Screenshots« is currently making the rounds on social media. The project reminds me of the »Million Dollar Homepage«, which is explained in detail on Wikipedia. The text was automatically translated from German into English. The German quotations were also translated in sense.

August 17, 2024 · 1 min · 46 words