Windows10 - wenn man gar kein Handy anschliesst …
… kommt ein Dialog, was man mit seinem gar nicht angeschlossenen Handy machen kann. Oder aber könnte, wenn man denn ein Handy angeschlossen hätte.
Kommen Sie gerade noch mit?
Ach, ich verstehe es selbst nicht: ich habe doch nur eine Uhr per USB am Rechner aufladen wollen… und jene ist bereits entsperrt. Mein Handy zusätzlich zu entsperren wird nicht viel bringen.
Bash: Ini Dateien Parsen/ Lesen
Bei einigen Servern habe ich einen Cronjob, der ruft ein Shellskript auf, welches den IST Zustand einiger Dienste auflistet. Also, auf einem Server, welche Mysql- und Postgres-Datenbankschemata es gibt, auf dem nächsten welche Apache VHosts existieren und auf dem Fileserver welche Samba-Shares usw.
Schlussendlich landet es auf einem Wiki (Dokuwiki in diesem Fall - hier sind die Seiten Txt-Dateien im Filesystem - das macht die Sache sehr einfach).
Beim Samba Server war es bis anhin recht unschön, weil umständlich gecodet. Nun habe ich 3 kleine Funktionen hinzugefügt, mit denen ich (endlich :-)) eine INI Datei parsen kann.
Die Funktionen kann man in eine Datei mit Leserechten (ohne Execute-Recht) auslagern, die man im Skript sourct (per source oder Punkt-Kommando).
- _getInisections [Name der Ini-Datei]
listet alle Sektionstitel auf - _getInisectiondata [Name der Ini-Datei] [Name der Sektion]
listet die angegebene Sektion auf. Mit dieser Ausgabe sieht man eine Sektion alleinstehend - und kann sich die Variablen herausziehen … aber wenn man die Variablen kennt, gibt es noch die nächste Funktion - _getIniValue [Name der Ini-Datei] [Name der Sektion] [Name der Variable]
gibt den Wert einer Variable aus der angegebenen Sektion zurück
In der Samba-Konfiguration (/etc/samba/smb.conf) sind die Variablen und Werte nicht zwingend ab Zeilenanfang - daher sind im Regex Leerzeichen und Tabs hinzugefügt.
# Helper for ini files: get all sections # param1 - name of the ini file function _getInisections(){ local myfile=$1 grep "^\[" $myfile | sed 's,^\[,,' | sed 's,\],,' } # Helper for ini files: get all content inside a section # param1 - name of the ini file # param2 - name of the section in ini file function _getInisectiondata(){ local myfile=$1 local mysection=$2 mysection=$( sed "s#/#\/#g" <<< "$mysection" ) sed -e "0,/^\[${mysection}\]/ d" -e '/^\[/,$ d' $myfile | grep -v "^[#;]" } # Helper for ini files: get a value of a variable in a given section # param1 - name of the ini file # param2 - name of the section in ini file # param3 - name of the variable to read function _getIniValue(){ local myfile=$1 local mysection=$2 local myvarname=$3 _getInisectiondata ${myfile} ${mysection} | grep "[^\a][\ \t]*${myvarname}[\ \t]*=.*" | cut -f 2 -d "=" | sed -e 's,^\ *,,' }
Und als Anwendungsbeispiel: ein Snippet mit einem Loop über die Samba-Konfiguration. Ausgegeben wird eine Tabelle mit Name des Shares, Beschreibung (Wert “comment”) und Pfad des Shares (Wert “path”):
smbconf=/etc/samba/smb.conf # Ausgabe des Tabellen-Header in Wiki-Syntax echo "^Share^Kommentar^Pfad^" # Loop ueber alle Sektionen for mysection in `_getInisections $smbconf | grep -v global` do # Ini-Werte aus der Sektion lesen myComment=`_getIniValue ${smbconf} ${mysection} "comment"` mypath=`_getIniValue ${smbconf} ${mysection} "path"` # Ausgabe der Tabellen-Zeile - Pipes sind Spaltentrenner echo "|${mysection}|${myComment}|${mypath}|" done
UPDATES:
- 15.05.2019: Korrektur der fehlenden Backslahes (die wirft das Blogtool immer raus, wenn man es nicht als Html-Entity schreibt) plus verbessertes Handling mit laschen Regex und Leerzeichen. Danke an Frank!
- 04.03.2021: Sektionen mit eckigen Klammern aus Kommentaren ignorieren. Zusätzlich werden Kommentare mit Semikolon am Anfang ebenfalls ignoriert. Ein local macht eine Variable nur innerhalb der Funktion bekannt.
- 09.02.2022 Update von _getIniValue: [^\a] statt ^
- 19.03.2023: Ein Follower Projekt: Ich habe aus der class like Bash Funktionen erstellt. Mit Validator und anständiger Dokumentation https://www.axel-hah … docs/bash_iniparser/
adb - Kopieren von Dateien auf ein Android Smartphone - auch ohne OS
Ich habe da so ein Samsung Galaxy Irgend-Bla Smartphone mit Octa Core CPU und Schlagmichtot-Features … das bekommt seit 2 Jahren kein Update. Beim Versuch, das Android 5.02 zu aktualisieren, heisst die Meldung stets: ich bin auf dem aktuellen Stand.
Ich lach mich tot! Nein, ist es nicht. Eine Android Version 5 - das tut schon beim Lesen weh - Shame on you SAMSUNG!!
Höchste Zeit, das Ding mit einem massiv aktuelleren Custom ROM zu versorgen. TWRP wurde installiert und ich habe die Custom ROM LineageOS und Gapps draufkopiert. Dann die Installation ausgeführt.
Dann kam aber ein kleines Missgeschick: ich wollte die Installation wiederholen und habe das System in TWRP nochmal gewiped… OOPS: damit war das Betriebssystem weg, wie auch meine für die erste Installation draufkopierten Images. Das Smartphone kann man dann weder booten und auch nicht neu installieren. (OK, ich gebs zu: ich habe an der Stelle auch etwas geflucht :-))
So geht es aber weiter:
(1)
Das Telefon wurde in TWRP gebootet - dann per USB mit dem PC verbunden.
(2)
Man braucht adb (adb und fastboot wären Begriffe, um die Suchmaschine deiner Wahl zu füttern). Das Tool hatte ich bereits.
(3)
In der Konsole kann man schauen, ob das Smartphone gefunden wird:
C:\Program Files (x86)\Minimal ADB and Fastboot>adb devices
List of devices attached
4100706845537121 recovery
Yep. Ein “recovery” ist da - das ist das Smartphone.
(4)
Danach kann man beliebige Dateien zum Smartphone kopieren.
Syntax:
adb push [lokale Quelle] [Ziel am Smartphone]
Einfach die lokale Datei mit kompletten Pfad wählen (Hint: mit der Tab Taste schlägt die Konsole Datien und Verzeichnisse vor - so kann man den gesamten Dateinamen schnell komplettieren).
Als Ziel wähle ich /sdcard/ auf dem Smartphone.
C:\Program Files (x86)\Minimal ADB and Fastboot>adb push D:\Apps\Android\_data\Galaxy-alpha\lineage-14.1-20171130-UNOFFICIAL-sltexx-beta9.zip /sdcard/
[100%] /sdcard/lineage-14.1-20171130-UNOFFICIAL-sltexx-beta9.zip
C:\Program Files (x86)\Minimal ADB and Fastboot>adb push D:\Apps\Android\_data\Galaxy-alpha\open_gapps-arm-7.1-nano-20180324.zip /sdcard
[100%] /sdcard/open_gapps-arm-7.1-nano-20180324.zip
Anm.: dem ein oder anderen aufmerksamen Leser mag das LineageOs 14 auffallen, obwohl Version 15 aktuell ist … Version 15 gibt es noch nicht für mein Gerät.
(5)
Nun kann man in TWRP die Installation starten, indem man die Dateien aus dem /sdcard/ Verzeichnis wählt.
weiterführende Links:
- Wikipedia: TWRP
- TWRP (en)
- Axels Webseite: Hilfe zu adb
- xda-developers Forum: Minimal ADB and Fastboot (en)
- https://www.lineageosroms.org/ - lineageOs Roms –> https://www.cyanogenmods.org/ (en)
- openGapps Google Apps packages (en)
20 Jahre Opensource - Check an unserem Institut
20 Jahre OpenSource … und ich habe bei meinem Arbeitgeber (Institut für Medizinische Lehre der Universität Bern; ca. 70 Mitarbeiter) einmal grob überflogen, was ich da so aus meiner bescheidenen Perspektive so sehe. Nachfolgende Liste entstand, OHNE dass ich in den Teams deren Tools erfragt habe. Gut möglich, dass eine vollständige Liste doppelt so lang würde: es fehlen Werkzeuge verschiedener Teams genau so wie Desktop-Applikationen (das ginge mit dem Firefox Webbrowser ja schon los).
Ich wage dennoch zu behaupten: ohne Opensource ginge an unserem Institut nicht mehr sehr viel.
Betriebssysteme
etwa 97% unserer über 100 Server verwenden ein Linux. Bei uns sind im Einsatz
* CentOS - https://www.centos.org/
* Debian - https://www.debian.org/
* Ubuntu - https://www.ubuntu.com/
Verschlüsselung
* Mit https verschlüsselte Webseiten und applikationsinterne Kommunikation verwendet OpenSSL - https://www.openssl.org/
* wir haben Wrapper um das Backup-Werkzeug Dupicity im Einsatz - http://duplicity.nongnu.org/
* unsere Server verschlüsseln lokal ihre Daten mit GnuPG https://gnupg.org/ -
* SecureShell (SSH) für den selektiven Zugriff auf unsere Server per Shell, Filezilla oder getunnelte Zugriffe auf Datenbanken - https://www.openssh.com/
* Mittels Shibboleth können sich Accounts fremder Provider bei uns einloggen - https://www.shibboleth.net/
* Stunnel - Verschlüsselte Verbindung bei unverschlüsselten Protokollen - https://www.stunnel.org/
Virtualisierung
* Unsere Virtualisierungsserver arbeiten mit KVM - https://www.linux-kvm.org/
* Als Verwaltungssoftware für virtuelle Server verwenden wir OpenNebula, welches mit EU Fördergeldern unterstützt wurde - https://opennebula.org/
* Der Festplatten Cluster wird mit Ceph betrieben - https://ceph.com/
* lokale Instanzen von Virtualbox - https://www.virtualbox.org/
Softwareverteilung
* Puppet - https://puppet.com/
* Foreman - https://theforeman.org/
Programmiersprachen, Computing
* Javascript/ NodeJS - https://nodejs.org/
* OpenCpu - https://www.opencpu.org/
* Perl - https://www.perl.org/
* PHP - http://php.net/
* Python - https://www.python.org/
* R - https://www.r-project.org
* Ruby - https://www.ruby-lang.org
In Projekten sind div. kostenfreie Frameworks im Einsatz, darunter
* AngularJS - https://angularjs.org/
* Apache FOP Project - https://xmlgraphics.apache.org/fop/
* Bootstrap - http://getbootstrap.com/
* Fatfree PHP Framework - https://fatfreeframework.com
* FontAwesome (Iconset) - https://fontawesome.com/
* jQuery https://jquery.com/
* PureCSS - https://purecss.io/
* Ruby On Rails - http://rubyonrails.org/
* Symphony PHP Framework - https://symfony.com/
Entwicklertools
* Apache Studio https://directory.apache.org/studio/
* Mysql Workbench https://www.mysql.com/products/workbench/
* DBeaver - https://dbeaver.jkiss.org/
* Git - https://git-scm.com/
* Netbeans IDE - https://netbeans.org/
* Xamarin - https://www.xamarin.com/
Datenbanken
* CouchDB - https://couchdb.apache.org/
* OpenLDAP - https://www.openldap.org/
* Elasticsearch - https://www.elastic.co/
* Myslq - https://www.mysql.com/
* MariaDB - https://mariadb.org/
* Postgres - https://www.postgresql.org/
* Resin - https://resin.io/
* SqLite - https://sqlite.org/
Webserver
* Apache Httpd - https://httpd.apache.org/
* Nginx - https://www.nginx.com/
* HA-Proxy - http://www.haproxy.org/
Logging/ Monitoring
* CollectD - https://collectd.org/
* Grafana - https://grafana.com/
* Graylog https://www.graylog.org/
* Monit - https://mmonit.com/monit/
* Munin - http://munin-monitoring.org/
* Nagios - https://www.nagios.org/
* Sensu - https://sensuapp.org/
webbasierte Werkzeuge
* Alchemy CMS - https://alchemy-cms.com/
* Concrete5 - https://www.concrete5.org/
* Dokuwiki - https://www.dokuwiki.org/
* GitLab - https://about.gitlab.com/
* Ilias - https://www.ilias.de/
* Umfragen Limesurvey - https://www.limesurvey.org/de
* Webstatistik Mattomo - https://matomo.org/
* OpenProject - https://www.openproject.org/
* Raumplanung https://mrbs.sourceforge.io/
* Wordpress - https://de.wordpress.com/
Datenablagen, Datenaustausch
* Samba - https://www.samba.org/
* Nextcloud - https://nextcloud.com/
Ergänzt werden diese Tools durch eigene Entwicklungen: diverse Werkzeuge schreiben wir zusätzlich selbst.
Magix Music Maker - keine Abspielanzeige und mehr
Quasi von einem Tag zum anderen mochte “meine” Musiksoftware nicht mehr so recht.
- Die senkrechte Linie zur Anzeige der Position beim Abspielen bewegte sich nicht mehr
- Die Zeit-Anzeige der Abspielposition verblieb immer auf “001:01:000”
- Öffnete man den Mixer während des Abspielens, war die Anzeige des Equalizers zur Amplitude der Ausgabekanäle tot
- Diverse Menüpunkte waren nicht mehr wählbar. Darunter alle Export-Funktionen (das ist dann schon eine erhebliche Einschränkung)
- das Userinterface war bei geladenen Songs extrem langsam.
Meine Setup-Binaries habe ich alle da - sowohl von der Software, als auch den Soundpools und Synthesizern.
Was ich alles versuchte, und NICHT half:
- Programmeinstellungen -> Audio: Treiber umstellen - funktionierte in keiner Kosntellation - egal ob Wave, DirektSound, ASIO, …
- Setup von MMM ausführen und “Reparieren”
- Setup von MMM ausführen und “Deinstallieren” - anschliessend erneut ausführen und komplett neu “installieren”
Lösung Teil 1:
Von Magix gibt es ein Uninistall Tool, das noch weitere Installationsreste findet.
- Setup von MMM ausführen und “Deinstallieren”
- MX Uninstaller herunterladen - ausführen - Es gab einen Registry Eintrag, den ich gelöscht habe. Achtung: nicht wahllos alles löschen, was das Cleanup-Werkzeug so hergibt: Soundpools und die erstellten Dateien will man ja nicht unbedingt wegwerfen.
- Reboot des Rechners (kann sein, dass es das nicht braucht, aber wenn man schon “ewig” frustriert daran herumschraubt…)
- Setup von MMM ausführen und “Installieren”
- Meine Soundpools waren noch da - die Setup von MMM Premium Synthesizer mussten nochmals installiert werden.
Jetzt ist “nur” noch der Punkt mit dem langsamen Userinterface. Das ist etwas subtil. Nach Programmstart ist alles normal flüssig schnell. Nach Laden eines meiner Songs schläft die GUI ein. Simple Dinge, wie eine Einzelspur stumm oder solo schalten braucht ca. 2 Sekunden. Aber halt nicht nur das: sobald auch nur irgendein Objekt-Synthesizer in irgendeiner Spur verwendet wird, werden sämtliche Aktionen inder UI langsam. Sei es einen Snthesizer zu öffnen oder den MIDI Editor oder Verschieben/ Anpassen von Blöcken in den Tracking-Spuren - kurz: gefühlt alles.
Das bin ich noch am Untersuchen.
Dieselben Songs in einer älteren Version geladen - dort ist die UI auch nach dem Laden unverändert. Es hängt zum einen definitiv an der MMM Version 2017. Alos zurück zur 2017er Version. Durch Entfernen einzelner Spuren in einem Song wurden die Verursacher ausgemacht: Sobald ein Objekt-Synthesizer in einer Spur ist, ist die Behandlung jener Spur extrem langsam. Das Verhalten ist allen Objekt-Synthesizern gemein - alle unter Instrumente -> Objekt-Synthesizer gelisteten habe ich durchprobiert.
Nochmal das Setup von MMM ausführen und “Reparieren” … bringt nichts.
Im Moment habe ich gerade noch keine weitere Idee. Hmmm :-(
weiterführende Links:
Immer wieder hilfreich: SMS mit Roaming-Kosten
Zum Jahreswechsel war ich mal wieder St. Petersburg. Von meinem Mobilanbieter bekomme ich stets eine SMS mit Roamingkosten für das jeweilige Land, sobald er mich irgendwo neu lokalisiert.
Auch wenn wir 2017/2018 haben - und ich “mitten in Europa” war (der Ural als Europagrenze zu Asien ist 1.500 km weg), war dies eine hilfreiche Info:
Ich nehme mal an, das meinen sie ernst: 10 Franken für 1 Megabyte.
Wenn man es hochrechnet: 1GB Datenvolumen kosten 10.000 Franken (=9.000 Euro). *Schluck*
Bye-bye Facebook
Nachdem ich heute einmal alle Aktivitäten heruntergeladen habe - das waren gerade einmal 8 MB, ich habe mit Schlimmerem gerechnet - wurde der Account deaktiviert.
Kurz darauf kam eine E-Mail:
On 22.12.2017 22:16, Facebook wrote: Hallo Axel, wir haben eine Anfrage auf dauerhafte Löschung deines Kontos erhalten. Dein Konto wurde von der Seite deaktiviert und wird innerhalb von 14 Tagen dauerhaft gelöscht. Falls du die dauerhafte Löschung deines Kontos nicht beantragt hast, melde dich bitte bei Facebook an, um diesen Antrag abzubrechen: https://www.facebook.com/login.php Danke, Das Facebook-Team
Aber auch wenn der Account endgültig gelöscht ist, gebe ich mich keiner Illusion hin: natürlich weiss ich, dass mich Facebook weiterhin im Internet tracken wird.
weiterführende Links: (für Nachahmer :-))
- Seite Facebook: Mein Konto löschen
- Und wie sie sammeln… Heise: Datensammlung: Bundeskartellamt droht Facebook mit Sanktionen Entweder das US-Unternehmen schlage eine eigene Lösung vor oder das Kartellamt müsse “das Sammeln und Verwerten von Daten aus Drittquellen ohne ausdrückliche Zustimmung der Nutzer” verbieten, sagte Kartellamts-Chef Andreas Mundt.
Es wird Weihnachten …
… das merke ich in der Statistik von Jamendo: gut 33.000 Streams und knapp 800 Downloads im Monat habe ich sonst durch das Jahr nicht. Also nicht einmal ansatzweise :-)
weiterführende Links:
Axel was here … OpenNebula Conf 2017
Na, ein Glück, gibt es ein Beweisfoto! Oder Suchbild. Je nachdem.
Demnach war ich wohl im Oktber 2017 in Madrid bei der OpenNebula Conf.
Anm.: OpenNebula ist ein Verwaltungswerkzeug für virtuelle Server verschiedener Hypervisor (z.B. KVM, Xen, Vmware … und auch gemixt) in einem oder mehreren Rechenzentren für private, public und hybride Clouds.
weiterführende Links:
Diashow Algarve
Im Oktober 2017 waren wir 1 Woche in den Ferien in Alfamar … einmal das Bild anklicken, um die Diashow zu starten:
Die dortige Hintergrund-Musik ist etwas mit Samples zusammengeklicktes. Weil es schnell gehen musste :-)
Download: mp3 (Axel Hahn; Lizenz: cc 3.0 by-nc-sa)