Inhalt
Hier blogge ich zum Thema Linux, Bash, Raspberry Pi, Mikrocontroller und Stadt Worms
Rote Mausspuren auf dem Bildschirm. Und die gehen auch nicht mehr weg.
Das kann schon mal passieren, dass man mit der flachen Hand die vordere linke Ecke der Tastatur drückt und gleichzeitig die Maus schubst.
So löscht man die Linien wieder …
- Details
- Geschrieben von: Stefan Höhn a.k,a @dewomser
Weiterlesen: Rote Mausspuren KDE/Plasma
- Stefan Höhn : Benutzt seit ca. 2000 Linux. Ist ein dilettierenter Autodidakt, ist der Webmaster und einziger Autor von untergang.de. Mehr Info : https://stefan-höhn.de
- Teilen auf Mastodon: // I got the key, I got the secret… let key = 'mastodon-instance'; let instance = localStorage.getItem(key); // get the link from the DOM const button = document.querySelector('.mastodon-share'); // refresh the link with the instance name const refreshlink = (instance) => { button.href = `https://${instance}/share?text=${encodeURIComponent(document.title)}%0A${encodeURIComponent(location.href)}`; } // got it? Let's go! if (button) { // labels and texts from the link let prompt = button.dataset.prompt || 'Please tell me your Mastodon instance'; let editlabel = button.dataset.editlabel || 'Edit your Mastodon instance'; let edittext = button.dataset.edittext || '✏️'; // Ask the user for the instance name and set it… const setinstance = _ => { instance = window.prompt(prompt, instance); if(instance) { localStorage.setItem(key, instance); createeditbutton(); refreshlink(instance); button.click(); } } // create and insert the edit link const createeditbutton = _ => { if (document.querySelector('button.mastodon-edit')) return; let editlink = document.createElement('button'); editlink.innerText = edittext; editlink.classList.add('mastodon-edit'); editlink.title = editlabel; editlink.ariaLabel = editlabel; editlink.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem(key); setinstance(); }); button.insertAdjacentElement('afterend', editlink); } // if there is a value in localstorage, create the edit link if(localStorage.getItem(key)) { createeditbutton(); } // When a user clicks the link button.addEventListener('click', (e) => { // If the user has already entered their instance // and it is in localstorage write out the link href // with the instance and the current page title and URL if(localStorage.getItem(key)) { refreshlink(localStorage.getItem(key)); // otherwise, prompt the user for their instance and save it to localstorage } else { e.preventDefault(); setinstance(); } }); }
Diese Parameter verrät der Browser.
IP, Cookie, Sprache, Bildschirmgröße und vieles mehr. Bösartige Tracker speichern das.
Die Daten werden mit PHP und Javascript ausgelesen. Sie können diese mit Ajax und anderen Techniken auf dem Server abgespeichert werden. Mach ich aber nicht. Probiers gleich aus !
- Details
- Geschrieben von: Stefan Höhn a.k,a @dewomser
Weiterlesen: Online ! Browsertest auf Trackbarkeit
- Stefan Höhn : Benutzt seit ca. 2000 Linux. Ist ein dilettierenter Autodidakt, ist der Webmaster und einziger Autor von untergang.de. Mehr Info : https://stefan-höhm.de
- Teilen auf Mastodon: // I got the key, I got the secret… let key = 'mastodon-instance'; let instance = localStorage.getItem(key); // get the link from the DOM const button = document.querySelector('.mastodon-share'); // refresh the link with the instance name const refreshlink = (instance) => { button.href = `https://${instance}/share?text=${encodeURIComponent(document.title)}%0A${encodeURIComponent(location.href)}`; } // got it? Let's go! if (button) { // labels and texts from the link let prompt = button.dataset.prompt || 'Please tell me your Mastodon instance'; let editlabel = button.dataset.editlabel || 'Edit your Mastodon instance'; let edittext = button.dataset.edittext || '✏️'; // Ask the user for the instance name and set it… const setinstance = _ => { instance = window.prompt(prompt, instance); if(instance) { localStorage.setItem(key, instance); createeditbutton(); refreshlink(instance); button.click(); } } // create and insert the edit link const createeditbutton = _ => { if (document.querySelector('button.mastodon-edit')) return; let editlink = document.createElement('button'); editlink.innerText = edittext; editlink.classList.add('mastodon-edit'); editlink.title = editlabel; editlink.ariaLabel = editlabel; editlink.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem(key); setinstance(); }); button.insertAdjacentElement('afterend', editlink); } // if there is a value in localstorage, create the edit link if(localStorage.getItem(key)) { createeditbutton(); } // When a user clicks the link button.addEventListener('click', (e) => { // If the user has already entered their instance // and it is in localstorage write out the link href // with the instance and the current page title and URL if(localStorage.getItem(key)) { refreshlink(localStorage.getItem(key)); // otherwise, prompt the user for their instance and save it to localstorage } else { e.preventDefault(); setinstance(); } }); }
Screenshot machen, ein Beispiele für PhantomJS
PhantomJS wird seit Jahren nicht mehr maintained. Ea gibt aber viele Anwendungsbeispiele. Deshalb hab ich das mal probiert. Es werden mehrere Screenshots in verschiedenen Auflösungen gemacht. Im Bild hab ich die Screenshots von https://wolust.de als Layer übernander gelegt.
- Details
- Geschrieben von: Stefan Höhn a.k,a @dewomser
- Stefan Höhn : Benutzt seit ca. 2000 Linux. Ist ein dilettierenter Autodidakt, ist der Webmaster und einziger Autor von untergang.de. Mehr Info : https://stefan-höhm.de
- Teilen auf Mastodon: // I got the key, I got the secret… let key = 'mastodon-instance'; let instance = localStorage.getItem(key); // get the link from the DOM const button = document.querySelector('.mastodon-share'); // refresh the link with the instance name const refreshlink = (instance) => { button.href = `https://${instance}/share?text=${encodeURIComponent(document.title)}%0A${encodeURIComponent(location.href)}`; } // got it? Let's go! if (button) { // labels and texts from the link let prompt = button.dataset.prompt || 'Please tell me your Mastodon instance'; let editlabel = button.dataset.editlabel || 'Edit your Mastodon instance'; let edittext = button.dataset.edittext || '✏️'; // Ask the user for the instance name and set it… const setinstance = _ => { instance = window.prompt(prompt, instance); if(instance) { localStorage.setItem(key, instance); createeditbutton(); refreshlink(instance); button.click(); } } // create and insert the edit link const createeditbutton = _ => { if (document.querySelector('button.mastodon-edit')) return; let editlink = document.createElement('button'); editlink.innerText = edittext; editlink.classList.add('mastodon-edit'); editlink.title = editlabel; editlink.ariaLabel = editlabel; editlink.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem(key); setinstance(); }); button.insertAdjacentElement('afterend', editlink); } // if there is a value in localstorage, create the edit link if(localStorage.getItem(key)) { createeditbutton(); } // When a user clicks the link button.addEventListener('click', (e) => { // If the user has already entered their instance // and it is in localstorage write out the link href // with the instance and the current page title and URL if(localStorage.getItem(key)) { refreshlink(localStorage.getItem(key)); // otherwise, prompt the user for their instance and save it to localstorage } else { e.preventDefault(); setinstance(); } }); }
Steinel SIR13 Radarbewebungssensorplatinchen an einen Arduino Mega
Ist beim Ausschlachten aus einem Gerät gefallen. 5 Volt Und es tut sich was.
- Details
- Geschrieben von: Stefan Höhn a.k,a @dewomser
Weiterlesen: Bewegungsradar von einer Lichtsteuerung am Arduino
- Stefan Höhn : Benutzt seit ca. 2000 Linux. Ist ein dilettierenter Autodidakt, ist der Webmaster und einziger Autor von untergang.de. Mehr Info : https://stefan-höhm.de
- Teilen auf Mastodon: // I got the key, I got the secret… let key = 'mastodon-instance'; let instance = localStorage.getItem(key); // get the link from the DOM const button = document.querySelector('.mastodon-share'); // refresh the link with the instance name const refreshlink = (instance) => { button.href = `https://${instance}/share?text=${encodeURIComponent(document.title)}%0A${encodeURIComponent(location.href)}`; } // got it? Let's go! if (button) { // labels and texts from the link let prompt = button.dataset.prompt || 'Please tell me your Mastodon instance'; let editlabel = button.dataset.editlabel || 'Edit your Mastodon instance'; let edittext = button.dataset.edittext || '✏️'; // Ask the user for the instance name and set it… const setinstance = _ => { instance = window.prompt(prompt, instance); if(instance) { localStorage.setItem(key, instance); createeditbutton(); refreshlink(instance); button.click(); } } // create and insert the edit link const createeditbutton = _ => { if (document.querySelector('button.mastodon-edit')) return; let editlink = document.createElement('button'); editlink.innerText = edittext; editlink.classList.add('mastodon-edit'); editlink.title = editlabel; editlink.ariaLabel = editlabel; editlink.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem(key); setinstance(); }); button.insertAdjacentElement('afterend', editlink); } // if there is a value in localstorage, create the edit link if(localStorage.getItem(key)) { createeditbutton(); } // When a user clicks the link button.addEventListener('click', (e) => { // If the user has already entered their instance // and it is in localstorage write out the link href // with the instance and the current page title and URL if(localStorage.getItem(key)) { refreshlink(localStorage.getItem(key)); // otherwise, prompt the user for their instance and save it to localstorage } else { e.preventDefault(); setinstance(); } }); }
Das Multimeter vom Lidl ist ein schönes Bastelobjekt.
Nach dem Basteln sind alle Zertifikate für das das Gerät erloschen. Nur noch für Kleinspannung und niedere Ströme verwenden ! Draht an RX und Masse (-) anlöten. Die andere Seite der Drähte hab ich auf einen UART-USB-Wandler
- Details
- Geschrieben von: Stefan Höhn a.k,a @dewomser
Weiterlesen: Lidl Multimeter bekommt USB-Anschluss
- Stefan Höhn : Benutzt seit ca. 2000 Linux. Ist ein dilettierenter Autodidakt, ist der Webmaster und einziger Autor von untergang.de. Mehr Info : https://stefan-höhm.de
- Teilen auf Mastodon: // I got the key, I got the secret… let key = 'mastodon-instance'; let instance = localStorage.getItem(key); // get the link from the DOM const button = document.querySelector('.mastodon-share'); // refresh the link with the instance name const refreshlink = (instance) => { button.href = `https://${instance}/share?text=${encodeURIComponent(document.title)}%0A${encodeURIComponent(location.href)}`; } // got it? Let's go! if (button) { // labels and texts from the link let prompt = button.dataset.prompt || 'Please tell me your Mastodon instance'; let editlabel = button.dataset.editlabel || 'Edit your Mastodon instance'; let edittext = button.dataset.edittext || '✏️'; // Ask the user for the instance name and set it… const setinstance = _ => { instance = window.prompt(prompt, instance); if(instance) { localStorage.setItem(key, instance); createeditbutton(); refreshlink(instance); button.click(); } } // create and insert the edit link const createeditbutton = _ => { if (document.querySelector('button.mastodon-edit')) return; let editlink = document.createElement('button'); editlink.innerText = edittext; editlink.classList.add('mastodon-edit'); editlink.title = editlabel; editlink.ariaLabel = editlabel; editlink.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem(key); setinstance(); }); button.insertAdjacentElement('afterend', editlink); } // if there is a value in localstorage, create the edit link if(localStorage.getItem(key)) { createeditbutton(); } // When a user clicks the link button.addEventListener('click', (e) => { // If the user has already entered their instance // and it is in localstorage write out the link href // with the instance and the current page title and URL if(localStorage.getItem(key)) { refreshlink(localStorage.getItem(key)); // otherwise, prompt the user for their instance and save it to localstorage } else { e.preventDefault(); setinstance(); } }); }
Natürliche Fahrradachsen für Worms
Worms braucht dringend funktionierende Fahrradstraßen
Mein Vorschlag ist, die Achse Herrnsheim - Hauptbahnhof- Rhein als Fahrradstrasse auszubauen. Von-Steubenstr., Siegfriedstr. und Berliner Ring. Die Vororte *Hochheim*, *Herrnsheim*, *Neuhausen* bekommen so einen direkten
- Details
- Geschrieben von: Stefan Höhn a.k,a @dewomser
Weiterlesen: Wormser Fahrradachsen Stadtplanung
- Stefan Höhn : Benutzt seit ca. 2000 Linux. Ist ein dilettierenter Autodidakt, ist der Webmaster und einziger Autor von untergang.de. Mehr Info : https://stefan-höhm.de
- Teilen auf Mastodon: // I got the key, I got the secret… let key = 'mastodon-instance'; let instance = localStorage.getItem(key); // get the link from the DOM const button = document.querySelector('.mastodon-share'); // refresh the link with the instance name const refreshlink = (instance) => { button.href = `https://${instance}/share?text=${encodeURIComponent(document.title)}%0A${encodeURIComponent(location.href)}`; } // got it? Let's go! if (button) { // labels and texts from the link let prompt = button.dataset.prompt || 'Please tell me your Mastodon instance'; let editlabel = button.dataset.editlabel || 'Edit your Mastodon instance'; let edittext = button.dataset.edittext || '✏️'; // Ask the user for the instance name and set it… const setinstance = _ => { instance = window.prompt(prompt, instance); if(instance) { localStorage.setItem(key, instance); createeditbutton(); refreshlink(instance); button.click(); } } // create and insert the edit link const createeditbutton = _ => { if (document.querySelector('button.mastodon-edit')) return; let editlink = document.createElement('button'); editlink.innerText = edittext; editlink.classList.add('mastodon-edit'); editlink.title = editlabel; editlink.ariaLabel = editlabel; editlink.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem(key); setinstance(); }); button.insertAdjacentElement('afterend', editlink); } // if there is a value in localstorage, create the edit link if(localStorage.getItem(key)) { createeditbutton(); } // When a user clicks the link button.addEventListener('click', (e) => { // If the user has already entered their instance // and it is in localstorage write out the link href // with the instance and the current page title and URL if(localStorage.getItem(key)) { refreshlink(localStorage.getItem(key)); // otherwise, prompt the user for their instance and save it to localstorage } else { e.preventDefault(); setinstance(); } }); }