The latest posts in full-text for feed readers.
Some of the 188 games available on the PlayJam GameStick were not available on the OUYA. Ever since building my replacement GameStick server I dreamt of making the GameStick games available on the OUYA.
Andiweli had the same idea and went through the tedious task of installing and testing each of the GameStick games on the OUYA. The result was a long compatibility list.
This list sat for a year until he came back and asked how we could bring them to the OUYA. The main problem is that each game needs a special tv.ouya.intent.category.GAME intent in its manifest file - otherwise it will not appear in the PLAY menu. Manually adding that to the games is possible by modifying the original game .apk, but that breaks the signature and requires us to host two versions - neither of which I was fond of.
At first I tinkered with community content, a feature introduced with the Chickcharney 1.2.1353 firmware update - the last major update ever released. That feature was never used by any games, but I did try out the pre-compiled cc-sample app shipped with the 2.1.0 development kit. It didn't allow me to add custom entries to the play menu, though.
Then I remembered that I already solved this problem for SNES games in 2015 by building a small launcher application that only acts as proxy to start the actual game. The Chickcharney firmware also brought support for bundles, which lets you purchase multiple games at once, and all of them get downloaded automatically! This would make the perfect solution: Bundle the GameStick game with the launcher, and people can click "download" and get both.
Two hours after I communicated my plan, Andi demo'd the first launcher in a small video.
Then I only had to think hard about a way to store the launcher data and cross-link the launchers with the actual games, build a script to convert GameStick meta data files into OUYA meta data files, modify the server software to automatically combine those linked games into bundles, expand the API documentation with the new information I got from implementing bundles and adjust the OUYA-API-to-HTML-converter to handle bundles.
7 days later I had everything in place and the first bundle downloaded on my development OUYA.
Fast-forward 4 days and we've got 11 GameStick games easily installable on the OUYA!
Published on 2025-11-13 in gamestick, ouya
Auf der zentralen sächsischen Schulplattform LernSax ist seit dem Wochenende die E-Mail-Funktionalität kaputt.
Ein Popup-Fenster erklärt
Einschränkungen im Werkzeug E-Mail
Leider tritt aktuell eine Störung auf, durch die es zu Anzeigefehlern und längeren Ladezeiten im Mailservice kommt. Ein Datenverlust ist nicht zu befürchten und andere Funktionen sind nicht betroffen.
Wir arbeiten zusammen mit unserem Hosting-Dienstleister an einer Störungsbeseitigung.
Dieser Hinweis ist aber offenbar etwas alt, denn beim Zugriff auf die E-Mail-Funktionen kommt nur noch
E-Mail ist im Moment nicht verfügbar.
31.693 Lehrer und 442.441 Schüler an 1.399 Schulen können keine E-Mails schicken oder mit Eltern Termine zum Elternsprechtag ausmachen (Daten vom Schuljahr 2024/2025).
Dieser Fehler wurde geliefert von DigiOnline GmbH - der Firma, die es bei Lernsax seit Jahren nicht schafft, daß man eingeloggt bleibt. Jeder Schüler muss sich bei erneutem Aufruf von www.lernsax.de neu einloggen - auch wenn er gerade erst vor 5 Minuten angemeldet war.
E-Mails in LernSax sind immer noch kaputt. Auf der LernSax-Statusseite steht, daß die Probleme sogar schon am 21.10.2025 anfingen:
21.10.2025: Einschränkungen im Mailservice
Derzeit kommt es in den Abendstunden für einzelne Konten zu Einschränkungen im Mailservice. Dadurch gibt es Fehldarstellungen, wie z. B. leeren Posteingängen oder leeren E-Mails. Es ist kein Datenverlust zu erwarten.
Zusammen mit unserem Hosting-Dienstleister arbeiten wir bereits mit Hochdruck an einer Lösung.
Weiterhin steht dort eine Meldung vom 05.11.:
05.11.2025: Update Einschränkungen im Mailservice
Leider tritt aktuell eine Störung auf, durch die es zu Anzeigefehlern und längeren Ladezeiten im Mailservice kommt. Das zuständige Rechenzentrum und der IT-Dienstleister arbeiten bereits intensiv an der Lösung. Dafür sind Anpassungen im Rechenzentrum notwendig, die zurzeit umgesetzt werden.
Wir gehen davon aus, dass die Beeinträchtigung noch bis zum Ende der Woche bestehen bleibt.
Eingehende Mails werden in dieser Zeit weiterhin angenommen, können aber zurzeit nicht angezeigt werden. Die weiteren Funktionen von LernSax sind nicht betroffen. Alternativ können Sie den LernSax Messenger als Kommunikationsmittel oder zum Datentransfer nutzen.
Wir bitten die Unannehmlichkeiten zu entschuldigen.
Published on 2025-11-04 in kundeistkönig
I use getmail to download e-mails from mail mail server to my laptop, and maildrop to place them into the correct folders.
Today I got a bunch of mails, but two of them had errors:
cweiske@frm:~$ gm getmail version 6.19.07 Copyright (C) 1998-2025 Charles Cazabon and others. Licensed under GPL-2.0. SimpleIMAPSSLRetriever:cweiske@cweiske.de@mail.cweiske.de:993: [...] [INBOX] msg 80/87 (7284 bytes) not retrieved (seen) Delivery error (command maildrop 533549 error (75, /usr/bin/maildrop: Unable to open mailbox.)) [INBOX] msg 81/87 (6285 bytes) from <volkszaehler-users-bounces@demo.volkszaehler.org>, delivery error (command maildrop 533549 error (75, /usr/bin/maildrop: Unable to open mailbox.)) [INBOX] msg 82/87 (9688 bytes) from <volkszaehler-users-bounces@demo.volkszaehler.org>, delivery error (command maildrop 533550 error (75, /usr/bin/maildrop: Unable to open mailbox.)) [INBOX] msg 83/87 (9586 bytes) not retrieved (seen) [...] 2 messages (15973 bytes) retrieved, 85 skipped Summary: Retrieved 2 messages (15973 bytes) from SimpleIMAPSSLRetriever:cweiske@cweiske.de@mail.cweiske.de:993
A blog post by Paul Gear gave me the idea to use strace to see what's happening:
$ strace -f getmail [...] [pid 535072] newfstatat(AT_FDCWD, "/home/cweiske/Mail/cweiske@cweiske.de//.Trash/tmp", 0x7ffdf0ca5f00, 0) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden) [...] [pid 535072] openat(AT_FDCWD, "/home/cweiske/Mail/cweiske@cweiske.de//.Trash/", O_WRONLY|O_CREAT, 0666) = -1 EISDIR (Ist ein Verzeichnis)
maildrop wanted to write into the .Trash/tmp directory which did not exist. I checked: My maildir had a .trash and a .Trash directory, the first filled, the second not.
My .mailfilter rule was wrong:
if ( /^Subject:.*\[SPAM\]/ ) to $DEFAULT/.Trash/
After changing .Trash to .trash everything worked.
Published on 2025-11-09 in linux, mail
Heute bekamen wir eine E-Mail vom
Verlag Heinrich Vogel | TECVIA GmbH
,
in der sehr geschickt mitgeteilt wurde,
daß alle bei Ihnen gespeicherten Kundendaten abgegriffen wurden.
Sie bemühen sich darin sehr zu betonen, daß alles sicher ist - obwohl sie doch gerade erst alle Daten der Fahrschüler wegkopiert bekommen haben. Die Firma schweigt sich über die genauen Daten aus, aber ich vermute folgendes:
| Absatz aus der E-Mail | Meine Anmerkung |
|---|---|
| Betreff: Information zum Schutz Ihrer Daten | Es geht um den Verlust, nicht um den Schutz. Aber schon dieser Betreff reicht aus, daß die meisten Leute diese E-Mail als unwichtig abtun und nicht lesen werden. |
| Guten Tag, | |
| wir möchten Sie heute vorsorglich über einen IT-Sicherheitsvorfall informieren, der uns – den Verlag Heinrich Vogel | TECVIA GmbH als technischen Dienstleister Ihrer Fahrschule – betroffen hat. | Es ist bereits passiert. Das ist nicht vorsorglich, sondern im Nachhinein. |
| Letzte Woche haben wir einen unbefugten Zugriff festgestellt und das Fahrschüler-Lernsystem umgehend kontrolliert heruntergefahren, um Ihre Daten zu schützen und unsere Sicherheitsinfrastruktur zu verstärken. |
Sie haben nicht direkt den Stecker gezogen
(was vermutlich gar nicht möglich ist, weil der Server in einem
Rechenzentrum steht), sondern den Runterfahrbefehl eingetippt.
Das Adjektiv steht nur da um Kompetenz zu simulieren und
vom Problem abzulenken. Für das Schützen der Daten ist es bereits zu spät. |
| Im Rahmen der forensischen Prüfung durch externe IT-Sicherheitsexperten wurde festgestellt, dass in einem auf wenige Tage begrenzten Zeitraum auf bestimmte Datensätze zugegriffen wurde, die auch personenbezogene Informationen enthalten. |
Sie haben keine eigenen Sicherheitsexperten. Der Download der Datenbank wird Sekunden, höchstens einige Minuten gedauert haben. Der Zeitraum sagt nichts über die Tragweite des Problems aus. |
| Wichtig für Sie: Es gibt keine Hinweise darauf, dass Passwörter kompromittiert wurden. | Hier wird vom Hauptproblem abgelenkt: Alle persönlichen Daten sind jetzt in den Händen von Angreifern. |
| Unsere Systeme wurden vollständig überprüft, mit zusätzlichen Sicherheitsmaßnahmen verstärkt und laufen seit gestern wieder stabil. | D.h. vorher waren sie nicht stabil. Der Angreifer scheint also einen Fehler gemacht zu haben, so daß das System nicht mehr stabil lief. Vermutlich war das überhaupt der Grund, warum Tecvia das Problem bemerkt hat. |
| Alle relevanten Behörden wurden selbstverständlich informiert. | Schaut her, wir halten uns an Gesetze! |
| Wir empfehlen Ihnen dennoch, in den kommenden Wochen besonders aufmerksam zu sein, wenn Sie E-Mails oder Anrufe von unbekannten Absendern erhalten. | Die persönlichen Daten von zehntausenden - wenn nicht sogar mehr - Personen sind jetzt für immer in unbefugte Hände gelangt. Es sind nicht nur Wochen, sondern die nächsten Jahrzehnte, in denen die eigenen Daten missbraucht werden werden. |
| Wir bedauern den Vorfall aufrichtig und danken Ihnen für Ihr Verständnis. | |
| Der Schutz Ihrer persönlichen Daten hat für uns oberste Priorität. | Jetzt ist das vielleicht so, aber bisher war das offenbar nicht der Fall. Ansonsten hätten Sie ihr System vorher korrekt abgesichert, oder sogar externe Experten mit einem Pentest beauftragt. |
| Die getroffenen Maßnahmen stärken das bereits hohe Sicherheitsniveau unserer Systeme zusätzlich. | Wenn die Daten der Kunden wegkopiert wurden, war das Sicherheitsniveau nicht hoch. Es war total schlecht. |
|
Für Rückfragen steht Ihnen unser Datenschutzteam unter
datensicherheit@tecvia.com zur Verfügung. Mit freundlichen Grüßen Ihr Datenschutzteam des Verlags Heinrich Vogel | TECVIA GmbH |
Published on 2025-11-04 in datenleck, kundeistkönig
After adding two OpenWrt based access points to my home network (1, 2), I wanted to see the number of connected WLAN devices in my Munin monitoring installation.
I already did that in 2022 for DD-WRT and now needed the same functionality for OpenWrt.
Fortunately OpenWrt's ubus API is nicely documented, and so I built a new Munin plugin openwrt-wifi-devices_ that uses curl and jq to obtain a session ID, fetch network interfaces and then fetch the connected clients for each network interface.
Today my munin-contrib patch was merged, and you can enjoy it, too.
The screenshot shows the combined view of connected WLAN devices across multiple access points. (Its setup is described on my dd-wrt-munin blog post.) Raw data are provided by Munin plugins dd-wrt-wifi-devices_, fritzbox_wifi_devices.py of fritzbox-munin and my new openwrt-wifi-devices_.
Published on 2025-11-03 in network
To increase 5GHz wireless coverage in my home network, I bought a used GL.inet MT6000 (Flint 2), installed OpenWrt and configured it to be a dumb access point.
One thing bothered me: The web interface shows the list of connected clients - but only their MAC address, and no host names or IP addresses.
This is a known problem and documented on the OpenWrt wiki page in section Populate Hostnames in Associated Stations as well as many forum threads, e.g. Associated stations - making hostnames visible across multiple APs and Show hostname in Associated stations
I wanted to popuplate the /etc/ethers file on the access points.
My network has many devices with statically configured IP addresses; I keep a list of them in my Documents folder. Other devices get their IP by DHCP, and dnsmasq running on my home server had a mapping of MAC to IP addresses in /etc/dnsmasq.d/cweiske-dhcp.conf with lines like
dhcp-host=00:22:F4:CB:32:D3,gamestick,192.168.3.41
After reading about /etc/ethers I converted most of those dnsmasq configuration entries into ethers lines. Then I only needed to add the read-ethers config option to /etc/dnsmasq.d/cweiske-dhcp.conf to make dnsmasq use it.
The dnsmasq dhcp-host entries require IP addresses, which I already maintain in /etc/hosts. Converting to ethers let me get rid of the duplication.
The only thing not supported with ethers is having the same IP address for multiple MACs, which I want for the laptops - they can be used wired or wirelessly, and they should alwas have the same IP and hostname. For them I still have entries in the dnsmasq configuration:
dhcp-host=E2:A6:05:1A:E3:45,00:00:00:00:B0:00,boo,192.168.3.5
Sometimes devices connect that have no entries in my hard-coded list of MAC and IP addresses, and they should also be visible in the access points.
dnsmasq leases are written down in /var/lib/misc/dnsmasq.leases and can be converted into ethers-style with
awk '{print $2 " " $4;}' /var/lib/misc/dnsmasq.leases
Combining my manually managed ethers file with the leases is easy, as well as copying them to the access points:
#!/bin/sh
#distribute /etc/ethers to the openwrt access points
# so that the web interface shows the host names
tmpfile=/tmp/ethers-openwrt
echo "# provided by dojo" > "$tmpfile"
echo -n "# generated " >> "$tmpfile"
date -Is >> "$tmpfile"
cat /etc/ethers |grep -v -e '^#' -e '^$' >> "$tmpfile"
awk '{print $2 " " $4;}' /var/lib/misc/dnsmasq.leases >> "$tmpfile"
accesspoints="ap-wz ap-buero"
for ap in $accesspoints; do
scp -o BatchMode=yes -o ConnectTimeout=5 "$tmpfile" root@$ap:/tmp/ethers &
done
I made this script executable with chmod +x and configured dnsmasq to call it with
dhcp-script=/etc/cweiske-distribute-ethers.sh
Then I configured each access point to accept my home server's SSH key via the web interface and installed the openssh-sftp-server package, which is required for scp to work.
/tmp/ was chosen to reduce wear on the flash drive - tmp lives in RAM. So the last thing I had to do was logging into each access point and symlinking /etc/ethers to /tmp/ethers:
$ ssh root@ap-wz
$ rm /etc/ethers
$ ln -s /tmp/ethers /etc/ethers
The OpenWrt web interface now shows the host names of all connected clients:
Published on 2025-11-01 in network
My desktop PC has a MSI MAG B650 TOMAHAWK WIFI (MS-7D75) mainboard, and every now and then it takes ~30 seconds until the BIOS POST screen shows up when turning it on. To solve this problem I decided to update the mainboard BIOS to the latest version V1.P3.
The update went fine, but when booting my Debian 12 installation I noticed that the Linux boot messages had the wrong resolution, and then the whole desktop environment was locked to a resolution of 1024x768 (4:3) - there was no option to change it via the Gnome Shell settings. The second monitor was also not detected.
I found the solution in a Linux Mint Forums thread: The BIOS update had re-enabled secure boot, and this prevented the graphics driver from loading. Disabling secure boot set everything back to normal.
Published on 2025-10-20 in hardware, linux
When trying to reinstall Windows 11 on a new laptop, I got the following error during setup:
A media driver your computer needs is missing, this could be a DVD/ USB/
Hard Disk driver.
If you have a CD/ DVD/ USB flash drive with driver on it, please insert it now.
and in German
Ein vom Computer benötigter Medientreiber fehlt.
Dies kann ein DVD-, USB- oder Festplattentreiber sein.
Wenn Sie über eine CD, DVD oder ein USB-Speicherstick mit dem Treiber verfügen,
legen Sie sie jetzt ein.
The drivers Asus offers on support website for its Vivobook X1704VA-AU774 are installer .exe files that cannot be used during Windows setup.
I downloaded the Win11_25H2_German_x64.iso from Microsoft's official Windows 11 download page and the copied the file on my Debian 13 Linux computer onto the USB flash drive:
cp /home/cweiske/Downloads/Win11_25H2_German_x64.iso /dev/sdb
This is the problem: Not all parts of the iso file are available to the setup, and so it fails with missing drivers.
Instead of directly copying the iso file to the flash drive, I used WoeUSB to create a proper bootable flash drive from the .iso file.
On Debian 13, I had to install wimtools and grub-pc-bin to get WoeUSB 5.2.4 working.
I also used the unattended installation generator to create a autounattend.xml file that let me setup Windows without internet connection and with a local account.
I can't recommend the laptop. It feels very cheap and the CPU fan always spins - even if no application is running.
Published on 2025-10-17 in blackbox
At work I forked the git repository of a TYPO3 extension, created a branch and tried to install it in my project - but composer failed to find it.
At first I added a repositories section with my forked github repo as vcs repository:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/mogic-le/aus_driver_amazon_s3"
}
],
Then I tried to install my branch:
$ composer require andersundsehr/aus-driver-amazon-s3:dev-mogic-v13
./composer.json has been updated
Running composer update andersundsehr/aus-driver-amazon-s3
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires andersundsehr/aus-driver-amazon-s3 dev-mogic-v13, found andersundsehr/aus-driver-amazon-s3[dev-feature/unbundle-sdk, dev-feature/matrix-tests, dev-functional-tests-alternative, dev-task/fixTests, dev-master, dev-TYPO3v13, dev-bugfix/clear-transient-file, 1.3.2, ..., 1.13.5, 2.0.0] but it does not match the constraint.
Installation failed, reverting ./composer.json to its original content.
After half an hour I finally found the reason:
$ composer validate ./composer.json is valid, but with a few warnings See https://getcomposer.org/doc/04-schema.md for details on the schema # General warnings - Key repositories is a duplicate in ./composer.json at line 68
My composer.json already had a "repositories" section at the end, but I added a new section near the beginning. The section at the end overwrote the one at the beginning, and so composer never saw my custom repository.
Published on 2025-10-10 in php
Today I noticed a new way to send spam to many people: Google Groups, a mailing list platform.
In the last days I got many automatic replies from people and companies I don't know and never contacted: out-of-office reminders and "thank you, we will take care" mails.
The mails were sent to support@gh.onlinebildunchkeiten.de and all contained mailing list headers:
Precedence: list
Mailing-list: list phn@gh.onlinebildunchkeiten.de; contact phn+owners@gh.onlinebildunchkeiten.de
List-ID: <phn.gh.onlinebildunchkeiten.de>
X-Spam-Checked-In-Group: suppsdhsdksdhee@gh.onlinebildunchkeiten.de
X-Google-Group-Id: 320817839263
List-Post: <https://groups.google.com/a/gh.onlinebildunchkeiten.de/group/phn/post>,
<mailto:phn@gh.onlinebildunchkeiten.de>
List-Help: <https://support.google.com/a/gh.onlinebildunchkeiten.de/bin/topic.py?topic=25838>,
<mailto:phn+help@gh.onlinebildunchkeiten.de>
List-Archive: <https://groups.google.com/a/gh.onlinebildunchkeiten.de/group/phn/>
List-Subscribe: <https://groups.google.com/a/gh.onlinebildunchkeiten.de/group/support/subscribe>,
<mailto:support+subscribe@gh.onlinebildunchkeiten.de>
List-Unsubscribe: <mailto:googlegroups-manage+320817839263+unsubscribe@googlegroups.com>,
<https://groups.google.com/a/gh.onlinebildunchkeiten.de/group/phn/subscribe>
This was a Google group mailing list! And as usual with Google things, there was no way to report spam or abuse.
I imagine the process to be as follows:
The nice thing for spammers is that Google servers have good reputation and won't be blocked by administrators. This spam mails have a high chance of passing mail filters.
It is possible to unsubscribe from this spam list by sending an e-mail to a personalized e-mail address that you can find in the e-mail's List-Unsubscribe header. Make sure you send it from the same e-mail address it is sent to; that can be found in one of the Received headers :(
When sending an e-mail to the unsubscription address, a confirmation comes back with an image:
The text is written in thai (according to ChatGPT):
โรงเรียนบ้านปางสุด - Ban Pang Sut School
สพป.นครสวรรค์ เขต 2 - Nakhon Sawan Primary Educational Service Area Office 2
At least the text part is signed with
vay.xylontrix.cfd admins
.
cfd is a valid top-level domain, and xylontrix.cfd
is registered, according to the
ICANN lookup tool.
Published on 2025-10-09 in bigsuck, web