Dienstag, 7. August 2018

Es passiert mir in letzter Zeit sehr oft, daß ich Excel-Dateien bekomme. Ich glaube, ich bekomme Excel-dateien. Was ich bekomme sind Textdateien mit der Endung .xls. Und das ist eine furchtbare Unsitte. Ich habe nichts gegen Excel, als Viewer für kleine bis mittelgroße Tabellen kann man das schon nehmen. Ernsthaft arbeiten kann bzw. will ich damit nicht, aber darum geht es gar nicht.

Natürlich müssen Onlinetools wie ID-Konverter tabellarische Daten einlesen wie ausgeben. Über den Krampf das für die jeweilige Seite korrekte Eingabeformat hinzubekommen dreht sich dieser Rant auch nicht, das bin ich gewöhnt und solange dasteht, was sie haben wollen (nein, das ist leider nicht immer der Fall) bekomme ich das auch hin.

Und dann kommt die Ausgabe. Schlimmstenfalls als HTML-Tabelle über meherere Seiten, also völlig wertlos bzgl. Weiterverarbeitung. Bestenfalls als Datei. Das Format ist mir da egal, ob XML, JSON, CSV, BED, GFF, VCF oder eins der hundert anderen Standardformate. Krieg ich schon eingelesen, kein Ding. Meinetwegen auch XLS, XLSX, ODS oder DBase III. Aber verdammt nocheins, bezeichnet die Datei korrekt.

Ja, Excel öffnet Tab-separated Text ohne Kommentar, wenn die Datei .xls hinten heißt. Aber mein Excel-Parser für R haut mir das dann (zu recht!) um die Ohren. Und auch bei Excel kommt es zu Problemen, sobald mal der Dezimaltrenner ein anderer ist oder ein String aussieht wie ein Datum. Also immer.

Ich glaube, die meisten Dienste bieten "Results as Excel-file" an, weil sie Angst haben, daß die armen Nutzer mit einer .csv-Datei überfordert sind. Obwohl Excel auch die problemlos öffnet und man dann sogar noch Importoptionen anpassen kann.

Das ist doch völliger Stuss! Lasst das alle mal sein. Nennt es .txt wenn es Text ist. Oder .csv oder von mir aus auch .tsv wenn es nicht comma- sondern tab-delimited ist.

Ja, ich höre die Schlauberger schon unken, »Hurr Durr, eine Datei an der Endung zu erkennen ist naiv«. Stimmt. Und es ist nun keine unlösbare Aufgabe daraus geworden, aber es ist einfach falsch Auch etwas in der Art habe ich schon in freier Wildbahn gesehen und es schmerzt. Sehr.
$ file /tmp/foo.png                       
/tmp/foo.png: JPEG image data, JFIF standard 1.01
TL;DR: Online-dienste, benennt eure Dateien korrekt, verdammt.

Montag, 18. September 2017

CUPS – Das Pendel schlägt zurück

Ich kann mich noch ziemlich gut an meine ersten Erfahrungen mit CUPS erinnern. Erst fand ich es verwirrend. Dann hab ich es so einigermaßen kapiert und darauf hin fand ich es immer recht solide und gut benutzbar. Bei einigen Druckern (gerade alte schwarzweiß Laser) musste man ein wenig fummeln, bis die Grauwerte gut hinkamen, aber so Sachen wie problemlose Netzwerktransparenz gingen schon immer. Jedenfalls fast. Oder in der Theorie. Vor >10 Jahren ging printer-sharing über Samba gefühlt besser als über CUPS. Das ist schon lange nicht mehr der Fall, zum Glück.

Heute gibt es Diensterkennung (avahi / m-DNS / DNS-SD / Bonjour / Zeroconf) und das ist bestimmt für ein unbetreutes Heimnetzwerk 'ne feine Sache. (ich brauche sowas nicht, ich weiß von jedem Gerät was es kann und welche IP es hat). In einem Firmenetzwerk hat der Kram meiner Meinung nach auch nichts verlohren, aber da das ja vom Client ausgeht, kann man da auch nicht viel machen.

Gerade habe ich auf Arbeit einen alten Rechner wieder in Betrieb genommen. Es soll eine einfache Surfmaschine werden, aber man soll auch drucken können und zwar auf exakt 2 definierte Druckern. Ich entschied mich für Linux Mint. Das ist schnell installiert, die wichtigsten Sachen sind mit bei und nach ner Stunde lief die Kiste auch zufriedenstellend. Fast.

Denn es waren automagisch so rund 15 Drucker vorhanden. Die beiden, die ich wollte, waren nicht dabei, aber die mit einzubinden war kein Problem. Anfangs dachte ich mir nichts dabei und hab die 15 restlichen Drucker einfach gelöscht. Das hielt dann exakt einen reboot. Dann hat CUPS wieder fröhlich Netzwerkdrucker gesucht und ungefragt zu meiner lokalen Druckerliste hinzugefügt. Dieses Verhalten ist nicht akzeptabel. Ich finds ja cool, daß die Netzwerkdrucker gefunden werden. Aber bitte lass sie mich trotzdem von Hand hinzufügen und mach nicht so einen Scheiß.

Als ich das realisiert hab ging natürlich die Jagd los. cupsd.conf?
[...]
Browsing On
BrowseLocalProtocols dnssd
[...]
sieht doch vielversprechend aus, ändern wir das mal in "Off" und "none". Drucker löschen, reboot, Argh. OK, das bezieht sich wohl auf das Raumposaunen lokaler Drucker. Ich habe dann ein bisschen halbherzig im Internet geguckt und finde es erstaunlich, wie wenig man in der richtigen Richtung findet. Nahezu alle Treffer behandelten "Hilfe mein Komputer findet meinen Drucker nicht". Bei den paar "richtigen" Treffen waren auch nur obskure Tipps dabei. Einer schlug sogar vor, die entsprechenden Ports zu blockieren. Die richtige Lösung ist natürlich so einfach wie rigoros. Diesen neumodischen Schnickschnack braucht ja doch keiner:
systemctl disable avahi.service
systemctl disable cups-browsed.service
So. 2 Drucker. Fein. Und jetzt gehe ich den User 10.10.x.252 suchen und erzähl ihm mal, wie er seinen Rechner zu konfigurieren hat.

Donnerstag, 16. Februar 2017

PCI != PCI

Gestern habe ich einen leicht betagten Rechner für die Verwendung als Low-cost-Freizeit-DJ-Rechner hergerichtet. Nichts dickes, ein alter AMD 5050e, 4 GB RAM, Gehäuse mit Griff (!). Natürlich benötigt man fürs DJing bestenfalls 'n anständigen Controller+Sounddevice mit mehr als einem Ausgabekanal in Stereo. Oder (low-cost) mind. 2 Soundkarten, wovon eine schon qualitativ was taugen sollte, damit man nicht so viele Störgeräusche hat. In besagten Rechner stecke ich also zusätzlich zur onBoard-Soundkarte noch eine Creative Labs® SoundBlaster™ PCI128 aus der Bastelkiste. Unter Windows >XP hat man keine Chance mehr diese Karte zu benutzen. Unter Linux: Kein Problem (Erfahrung!).
Also ein minimales System installiert (Archlinux mit X-Server und Mixxx, mehr brauchts nicht) und... nanu, es hängt und es tönt nicht. Und los geht die wilde Fehlersuche. Schnell wird klar: die SB-PCI128 macht Probleme. „Device got stuck“ und „Buffer underrun“. Kein Puls, kein Ton. Aber sauber erkannt wurde die Karte, alle Kernelmodule wurden korrekt geladen und in dem anderen Rechner mit fast dem gleichen System lief es doch letztens noch wunderbar. WTF?!

Nach einigem Gesuche und Rumproben war ich schon wieder frustriert und verzweifelt genug, den Rechner in ein Pentagram aus Kerzen zu stellen, meine Robe anzuziehen und... aber eins noch vorher (ohne Aussicht auf Erfolg, einfach um es gemacht zu haben): Ich stecke mal die Soundkarte in den anderen PCI-Slot.

Echt jetzt? Zwei Stunden am Abgrund der geistigen Zurechnungsfähigkeit und dann liegt es am Slot? Wohl irgend ein DMA-Konflikt oder sowas, ich hätte nicht gedacht, daß das bei PCI auch noch auftreten kann. Immerhin geht's jetzt und sobald ich die Festplatte gegen eine mit etwas besseren SMART-Werten getauscht hab kann die Party steigen...

Nachtrag:
Daß ich auch immer aufhöre rumzuspielen, wenn alles geht...
Natürlich ist es so absurd, wie es mir von vornherein vorgekommen ist. Nicht der PCI-Steckplatz ist das Problem gewesen sondern irgend etwas Physikalisches (verschmutzte/korrodierte Kontakte oder so), denn nach dem Transport des Rechners wurde die Soundkarte gar nicht mehr erkannt. Aus purer Verzweiflung steckte ich sie also noch einmal zurück auf den 1. Port und siehe: Geht. Mit Ton und Allem. Nach dem Zuschrauben des Gehäuses nicht mehr (das Gehäuse ist so ein altes IBM-Thinkcentre-Gehäuse, bei dem recht wenig geschraubt wird. Auch die Steckkarten können nicht verschraubt werden, sondern werden von einem Bügel gehalten, der wiederum von der Seitwand auf die Slotsblenden gedrückt wird. An sich keine üble Idee. Aber gerade PCI(e)-Karten schraube ich doch schon lieber. Wir wissen nun, warum).

Aber mit ein bisschen Rein-raus-spiel (auch mal den zwischendurch Slot wechseln) gings dann doch wie geplant. Ich werde das mal im Auge behalten.

Festplattenspaß

Ich hatte da also diesen Rechner am Wickel. Nichts besonderes, ein preiswerter Bürorechner (genaue Hardware hab' ich nicht im Kopf), selbstzusammengesteckt von einem Bekannten, der normalerweise weiß was er tut. Testweise war Windows 10 installiert, was problemlos lief aber mangels Lizenz nichtmehr allzu lange. Ich wollte dann irgend ein DAU-freundliches GNU/Linux installieren. Soweit so trivial. Aber dann begegnete mir ein Fehler, den ich noch nicht kannte: Keiner der Live-Pinguine erkannte die Festplatte. Im UEFI wurde sie angezeigt. Windows war darauf installiert und lief. Linux so: „Festplatte? Welche Festplatte?“

Ob ich nun UEFI-Boot oder Legacy-Boot verwende machte auch keinen Unterschied. Ebensowenig der Wechsel zwischen IDE- und AHCI-Modus. Es blieb dabei: Keins der getesteten Betriebssysteme (SystemRescueCD, Mint, CentOS, eLive, Arch) zeigte mir ein /dev/sda oder sonstiges Blockdevice abgesehen vom USB-Stick, von dem das System gestartet wurde. Große Verwirrung, großes Gegrübel.

Inzwischen läuft auf dem Rechner ein Mint daß sogar auf die Festplatte installiert wurde problemlos. Was also war die Ursache? Overclocking! Ich hab dem Anfangs keine Beachtung geschenkt, aber im UEFI war der FSB leicht erhöht. Die CPU und der RAM hatten damit keine Schwierigkeiten, nichts lief instabil, alles Prima. Eben bis auf die Tatsache daß unter Linux dann keine SATA-Platte erkannt wird. WTF?! Ich bin da auch nur drauf gekommen, weil ich aus blanker Frustration irgendwann alle Einstellungen im UEFI zurückgesetzt hab („Load factory defaults“ oder so). Ich habe noch nicht geprüft, ob das bei anderen Mainboards auch so ist, aber mein Fazit bleibt dennoch: Overclocking lohnt sich nicht. Niemals. Für niemanden. Ohne Ausnahme. Gibt nur Ärger. Und wenn man 'n schnelleren Rechner haben will, kauft man bessere Hardware.

Donnerstag, 31. Juli 2014

Heute mal was Positives

Gerade lade ich eine größere Datei auf einen dieser neumodischen Wolkenspeicher (MS OneDrive, aber das tut nichts zur Sache). Ich habe da bei einigen Anbietern Testaccounts, weitestgehend leer, aber für so Unsinn wie 'ne 10GB-Videodatei zeitversetzt zu transferieren kann man das ja mal nehmen, dazu isses ja da. Natürlich kann ich's auch auf meinen Heimserver packen, aber das hat vor allem Bandbreitentechnische Nachteile, vor allem für den Empfangenden.

Ich habe hier 2 Internetleitungen (Kabel'schland (oder wie auch immer die im Moment heißen) mit so um die 16Mbit/s ↓, 1Mbit/s ↑ und Telekom 50 Mbit/s ↓, 10 Mbit/s ↑), zwischen denen ich hier am Rechner umschalten kann, bei Bedarf wird einfach das Gateway geändert (via NetworkManager, aber auch das sollte kaum eine Rolle spielen). Standardmäßig nehme ich die langsamere Leitung, weil sie zum Brausen reicht und an der anderen besagter Server hängt.

Bei >10GB-Upload allerdings stellte sich relativ schnell herraus, daß sich der Upload bei einer effektiven Datenrate von ~90kB/s doch etwas ziehen könnte (ca. 34 Stunden). Das Naheliegendste war natürlich, die andere Leitung zu nehmen, also hab' ich das einfach getan (2 Klicks im NetworkManager-applet) und erwartet, daß der Download abbricht und der laufende Radiostream zumindest einmal schluckauft. Nichts von beidem ist passiert! Wie geil ist das denn? Der Upload (via Webinterface) lief einfach mit grob 9-facher Geschwindigkeit weiter und der Stream lief sauber durch (wobei mich das nicht wirklich wundert, denn der ist lokal und ich hab' ja keine neue client-IP erhalten, sondern nur das Gateway gewechselt).

Nicht, daß es tragisch wäre, wenn es nicht geklappt hätte, aber es ist schon ziemlich cool, daß laufende Transaktionen in dieser Form trotz wechselnder IP weiterlaufen. Und ein bisschen spooky ist es auch, weil das auch gleich wieder ein Weg ist, sowas zu misbrauchen. Aber für wichtige Sachen nimmt man ja ohnehin lieber keinen Kommerziellen Wolkenspeicheranbieter.

Nachtrag:
Natürlich gibt es dann doch noch einen Haken um dem Blogthema gerecht zu werden:

*seufz* *murmel* knapp 10 Stunden Video, machen wir sicherheitshalber 1-Stunden-chunks:
for i in `seq 0 9` ; `printf "ffmpeg -i Caliplex_test.mkv -ss %d:00:00 -t 1:00:00 -vcodec copy -acodec copy Caliplex_test%d.mkv\n" $i $i`
Was tut man nicht alles... ;-)

Mittwoch, 22. Januar 2014

Ein klarer Fall von Kopf→Tisch. Auf RTL-Niveau

Ich weiß, es ist arrogant und unerträglich, sich über die Unwissenheit anderer lustig zu machen. Aber ich sage seit Jahren, daß dieser ganze Komputerkram relativ komplex ist und eine komplexe Technologie nunmal erfordert, sich etwas mit ihr zu beschäftigen. Ein großer Teil der aktuell verfügbaren Sicherheitsprobleme kommt daher, daß jeder sich unreflektiert in die Arme komplexer Technologie begeben kann, ohne auch nur zu ahnen, was im Hintergrund passiert.
Natürlich ist auch nicht wünschenswert bestimmte Sachen nur einer Elite oder Minderheit zu überlassen, vor allem wenn es sich um sowas nützliches wie das Internet handelt, aber wenn ich Auto fahren will, mache ich vorher ja auch 'n Führerschein, nicht nur damit ich die Technologie beherrsche, sondern auch für die Sicherheit aller Verkehrsteilnehmer.
Bevor es nun aber zu grundsätzlich wird: Hier ist das Bild, was mir gerade körperliche Schmerzen bereitet hat.

Montag, 7. Oktober 2013

Ach, LibreOffice Calc kann Datumsberechnungen selbst?

...da hab ich mir für meinen Spreadsheet-Kalender extra diese handliche, leicht zu merkende Zellfunktion für Osternbasierte Feiertage zurechtgeklöppelt:
=DATUM(A1;3;28)+REST(24-REST(A1;19)*10,63;29)-REST(KÜRZEN(A1*5/4)+REST(24-REST(A1;19)*10,63;29)+1;7)
(in Zelle A1 steht die Jahreszahl) und bin nun gerade dabei ein Offsetproblem in selbigem Kalender zu lösen, da stolpere ich in der [F1] doch tatsächlich über
=OSTERSONNTAG(A1)
*seufz* Erst messen, dann sägen. Erst suchen, dann lösen. Sollte ich mir vielleicht mal merken.
Im übrigen möchte ich anmerken, daß derartige Zellfunktionen echt fies zu debuggen sind. Und Datumsberechnungen sind generell auch nicht gerade das angenehmste.