Visio VSTO

Für einen Kunden entwickelte ich ein kleines Tool, das dynamisch Visio Shapes erzeugt. Wer es nicht kennt, Visio ist Microsofts Antwort auf.. AutoCAD? keine Ahnung, was die Leute eigentlich damit machen. Man kann damit vektor-basiert zeichnen und es gehört in den größeren Kreis der Office Produkte. Also hat auch so ein hübsches Icon.

Die Doku dazu ist allerdings.. nun ja, man wird im Jahr 2023 immer noch begrüßt mit

Note
At this time, there is no reference documentation for the Visio primary interop assembly.

Ist das nicht entzückend. Das ist fast wie früher, mit ohne Google! :-)

Windows network printing trouble

Mit dem Windows-Update vom Oktober funkionierte hier mein Netzwerk-Drucker nicht mehr. Der Druckdialog öffnete sich erst nach einer gefühlten Ewigkeit. Beim Erstellen des Druckauftrags erschien dieser dann auch in der Drucker-Warteschlange, allerdings wurde dieser dann nie abgearbeitet. Ich vermute, dass das eine Nebenwirkung der Patches ist, die aktuell unter "Windows Printing Nightmare" durch die Presse gehen.

Ich benutze einen alten Kyocera Laserdrucker, der bei mir als Netzwerkdrucker an einem Raspberry Pi hängt. Als ich den Drucker direkt an den PC gesteckt hatte, funktionierte alles wieder. Mein Laptop, der mit den Updates immer etwas hinterherhängt (wegen seltener Nutzung), funktionierte eine Weile noch, bis er letzte Woche ebenfalls das Windows Update abkriegte. Zu dem Zeitpunkt war ich mir dann sicher, dass es an dem Windows Patch lag.

Das Problem konnte ich am Ende damit lösen, dass ich einfach den Netzwerkdrucker entfernt und neu hinzugefügt habe. Vermutlich hilft das nur in meinem Einzelfall, aber vielleicht verschont es euch vor den wütenden Flüchen, die ich heute schon ausgestoßen habe..

The horrors of PHP

Wenn herauskommt, dass ich tatsächlich noch PHP bei manchen Kunden einsetze, bin ich vermutlich bald arbeitslos. Aber ich kann alles erklären!!! Das hat.. historische Gründe. Und für manche Zwecke ist das Framework tatsächlich ziemlich brauchbar, vor allem aus dem Preis-Leistungswinkel heraus betrachtet.

Heute ein kleines Schmankerl, das mich einen halben Tag gekostet hat und mit einem Schlag gegen die Stirn endete, den ich heute noch spüre. Ausgangssituation ist die Befüllung eines Array mit weiteren Strukturen (auch assoziative Arrays). Dabei werden manchmal neue Einträge erzeugt, während in anderen Fällen ein bereits bestehender Eintrag ergänzt wird.

Consider this code:

$main = array();

$first = array(); // erster Eintrag
$first["bla"] = "blup";

$main[] = $first;

// wenn man diesen Eintrag noch ändern will
$change_it = end($main);
$change_it["bla"] = "blip";

// schaun wir mal
print_r($main);

Huch, immer noch "blup"! Ist klar, end() liefert nur eine Kopie. Man muss sich also eine Referenz holen. Dies gelingt mit dieser ziemlich "eingängigen" (höhö) Syntax:

end($main);
$change_it = &$main[key($main)];
$change_it["bla"] = "blip";

Jetzt ist es fein, in "$main" ist des nun korrekt mit "blip" überschrieben. Doch damit nicht genug. Jetzt kommen wir zum eigentlichen Spezialisteneinsatz.

// Ein weiteres Element hinzufügen
$change_it = array();
$change_it["bla"] = "blop";
$main[] = $change_it;
// schaun wir jetzt mal
print_r($main);

Ach du Sch****! Was ist denn hier passiert?


Array
(
    [0] => Array
        (
            [bla] => blop
        )

    [1] => Array
        (
            [bla] => blop
        )
)

Meine Erwartungshaltung wäre gewesen, dass durch die Zuweisung der Neuanlage des Arrays der Referenz-Bezug aufgehoben ist. Aber das ist nicht der Fall! Füge ich folgendes ein:

unset($change_it);

funktioniert es wie erwartet:

Array
(
    [0] => Array
        (
            [bla] => blip
        )

    [1] => Array
        (
            [bla] => blop
        )
)

Man darf also nie vergessen, dass die Normalität nur ein dünner Schleier vor der Anarchie und dem Chaos ist.. ne quatsch, ich meine natürlich PHP nur ein Wrapper über eine C-Libary ist, deren haarige Knochen immer mal wieder hier und dort herausgucken. Musch halt wissa! Meine Güte.

Thunderbird Kalender Termine

Ich habe endlich den Fix für ein jahrelanges Ärgernis gefunden. Ich verwende schon immer Mozilla Thunderbird und den darin eingebauten Kalender Lightning. Durch die vorhandenen Plugins kann man gleichzeitig lokales, Google- und Office365 Kalender hinzufügen, dann ist alles übersichtlich an einem Platz.

Eine Sache funktionierte allerdings bisher nicht vernünftig: Die Terminbestätigungen. Diese werden immer per Default von der *ersten* E-Mail Adresse in der Kontenliste versendet und nicht etwa von der E-Mail Adresse aus, an die die Einladung ging (wie man vermutet hätte). Lustigerweise merkt man das erst, wenn man vom Kunden auf einmal Termin-Updates und sonstige Mails an die private Mailadresse bekommt, obwohl man sie nie wissentlich bekannt gegeben hat.

Ich habe überall in Thunderbird nach einer Einstellungsmöglichkeit gesucht und endlich in den Kalendereinstellungen selbst gefunden: Dort gibt es einen E-Mail Eintrag:

wer hett au dees denkt

Dieser wird bei Anlage eines Kalenders ungefragt auf den ersten Listeneintrag gesetzt.

Unfug

Diese Zitate stammen aus einer vor einiger Zeit durchgeführten Umfrage auf Twitter (das ich nicht nutze), wie denn Vorgesetzte oder Kollegen in einer Besprechung spinnerte Ideen am besten in die Tonne hauen (können). Wenn man schon jemand beleidigt, sollte es doch möglichst elegant zugehen, oder nicht?

Aus Ihrer Perspektive ist das sicherlich eine mögliche Überlegung.

Mit dieser, doch sehr individuellen Auffassung habe ich mich im bisherigen Verlauf meiner beruflichen Laufbahn zuvor noch nicht befassen müssen.

Diesen Ansatz halte ich für so überarbeitungsbedütftig, dass es er aus Gründen der Effizienz nicht weiter verfolgt werden sollte.

Ein interessanter Ansatz, auch wenn er der Realität nur wenig zugewandt scheint.

„Sehr interessant“. Oder, schweizerisch: „Hm, spannend.“

Eine solch gedankliche Kühnheit ist mir bislang noch nicht begegnet.

Vielen Dank für deinen Beitrag, Christian.

Ihre Einlassung hat möglicherweise einen literarischen Wert. Ein Zusammenhang mit der hier erörterten Sachlage kann jedoch nicht hergestellt werden.

Unter Berücksichtigung der widerstreitenden Interessen, vermag die Gegenseite doch mehr zu überzeugen.

Ich möchte nicht sagen, dass dies sinnloser Mist ist – aber ich möchte Ihnen diese Betrachtung zumindest zur Reflektion angeboten haben.

Der glückliche Prinz..

..besteht auch aus Noppen! Nicht ganz überraschend. Jedenfalls dieser. Wie nicht anders zu erwarten bin ich doch schwach geworden und habe als erfahrener Schnäppchenjäger bei letzte Breis zugeschlagen. Auch dieser Bluebrixx-Bausatz kommt in einer diskreten braunen Pappschachtel ohne verräterische Aufdrucke. Besucher erkennen also nicht, was da im Regal wartet.

Über 1700 Teile in unzähligen Tüten. Ich dachte bin schlau und sortiere die ein bisschen farblich vor. Ob das viel geholfen hat oder ob die Teile schon nach den Bauschritten sortiert waren kann ich jetzt nicht mehr beurteilen. Die Anleitung wie immer nur als PDF.

Das ganze ist so ein Mittelding aus Basteln und Puzzeln. Nebenher kann man Podcast hören und sich ganz entspannen. Am Bausatz gibt es nichts auszusetzen, die Konstruktion ist stabil und die Bauschritte unmißverständlich. Und so hat es auch nur ein paar Abende gedauert, bis er fertig war.

Nett oder?

Die Bilder im Hintergrund sind übrigens von meiner Tochter und nein, ich geb die nicht her. Auftragsarbeiten dürfen aber angefragt werden. Der Alien auf dem Achterdeck hat da irgendwie unbemerkt Platz genommen, keine Ahnung woher der kommt.

Was war das nun für ein Schiff überhaupt? Ich hatte das Fahrzeug schon einmal hier besprochen. Glücklich übrigens deshalb, weil es zumindest im Einsatz nicht unterging. Schon mal eine Leistung ;-) Es ist jedenfalls ein Vertreter eines bereits obsoleten Schiffstyps, der in einer Flotte eingereiht war, die nicht besonders gute Erfolgschancen besaß..
Bluebrixx hat übrigens derzeit auch die japanische Nagato im Angebot. Das Ding ist nochmal etwas größer und ..nein, nein! Kommt überhaupt nicht in Frage!? Wie? Ich überlege mir das gerade? Quatsch! Niemals!! Wie dem auch sei, beide Schiffe haben sich nach dem Krieg als Zielobjekte der amerikanischen Atombombenversuche getroffen. Man könnte sich also eine "Bikini-Flotte" ins Regal stellen. Das ist allein schon wegen dem Namen eine absolut großartige Idee.

Alternative Noppen

Ein Kollege von mir war vor kurzem bei einem Lagerverkauf in der Nähe von Frankfurt. Dort hat er größere Mengen von Bluebrixx Bausätzen erstanden. Mir sagte das alles gar nichts. Anscheinend ist das ein Lego-Klon, die Steine werden aber im Gegensatz zu anderen Klonen nicht in China sondern in Polen produziert. Und besonders interessant neben den hervorragenden Preisen sind die Bausätze. Die halten sich auch nicht an die Lego-Bausatz Regeln.

Bei Bluebrixx gibt es nämlich viel (echte) Eisenbahn, Military (u.a. Schiffe) und bekannte SF Modelle, die auch mal nicht aus dem Star Wars Universum kommen. Das Nette an den Bausätzen ist außerdem, dass im wesentlichen auf durchgängigen Maßstab geachtet wurde. So sieht man z.B. bei den Schiffen schön die Größenverhältnisse. Ich weiß das, weil ich die passenden Youtube Filme angeschaut habe, nicht weil ich hier schon Regalmeter davon stehen habe. Nicht dass wir uns falsch verstehen. Wäre aber.. nett :-)

Nachdem ich mir das Ganze ein Weile lang virtuell angeschaut habe bin ich doch schwach geworden und habe mir ein Fahrzeug bestellt, den Marder III. Und so saß ich dann einen Abend lang schmunzelnd da und habe anhand der (leider nur im Download als PDF vorliegenden) Anleitung gebaut. Ein paar "Spezialsteine" gibt es natürlich, aber im wesentlichen sind es alle Standard "lego-size" bricks. Die Qualität ist vielleicht nicht ganz das, was man vom Original erwarten würde, aber dafür ist der Preis ganz heiß und das Modell hinterher sehr nett anzusehen.

Die Schiffe sollen angeblich auch ganz hervorragend sein. Ich bin aber (bislang) standhaft...

Schneebälle

Ich habe vor einiger Zeit einmal an einem "Lass uns ein cooles Blockchain-Projekt starten" Meeting teilgenommen. Das Ganze ist aufgrund der Inaktivität des Organisators gleich wieder im Sande verlaufen. Die Technologie dazu habe ich mir aber angeschaut, vor allem die Libraries, auf der das aktuelle Bitcoin Mining basiert. Mein Fazit damals: Komplizierte Sache. Also nicht die Technologie an sich, sondern der Aufbau eines greifbaren Geschäftsmodells auf Basis dessen. Nachdem heute die Sau wieder einmal durch das Dorf galoppierte, bin ich über einen kurzen Umweg an diesen sehr schönen Vortrag geraten, der euch in kürzester Zeit die Problematik näher bringt. Hervorragende Präsentation, schaut's euch mal an.

Raspbian “stretch” und smb.conf

Nachdem ich gerade virtuell in die Tischkante gebissen habe hier ein Hinweis auf eine Situation, die vermutlich jedem da draußen passieren wird, der Samba auf dem Raspberry nutzt..

Ich habe ein Update gemacht auf die stretch Version und konnte anschließend nicht mehr drucken. Was war passiert? Die Anmeldung mit \\hostname auf dem System funktionierte nicht mehr, stattdessen ging es noch mit \\192.168.188.X
Offensichtlich ein Problem mit der Namensauflösung, wenn man sich aber anmelden will bekommt man den leider verwirrenden Fehler "Falsches Passwort" serviert.

net use \\hostname /user:meinBenutzerName
führt unter Angabe des richtigen Passworts zum Systemfehler 1326. Was mir dann fehlte ist der Parameter
ntlm auth = yes
in der smb.conf (Bereich [global])

Merke: Es ist immer ein totaler Scheiß für die Anwender, wenn man den Default eines Parameters ändert, der gar nicht angegeben ist! Diesmal .. passt der Post zum Domain-Namen!

Störung am Triebfahrzeug

Bahn-Bashing! Die Leute, die dort arbeiten können am wenigsten dafür. Ich bin schon länger der Ansicht, dass das Privatisierungskonzept ziemlich grundlegend gescheitert ist. Und wie immer kommt es darauf an, wen man fragt. Wer darauf angewiesen ist, lacht hysterisch und findet sich irgendwie mit der Situation ab. Aber es gibt noch Menschen unter uns, die sich daran erinnern wie es einst war! Zeiten, in denen die Bahn nicht jährlich vom Winter, Sommer oder wie in meinem aktuellen Fall, den Ferien! überrascht wurde. In der es noch Ausweichgleise gab. Wo man einem Zug nochmal Wagen "aus dem Vorrat" beistellen konnte, wenn sich hohes Passagieraufkommen abzeichnete. Einer stetig wachsenden Zahl (potentieller) Kunden steht so ein immer kleinerer Fahrzeugpark gegenüber. Kleinere Sitzabstände, dann spart man auf 600m Länge einen Wagen ein. Großartig! Das gefällt niemand, der den Kram nutzen muss. Gleisansagen kommen selbst in den ganz großen Bahnhöfen eher zufällig - manchmal wird dann auch der Zug für das Nebengleis angekündigt. Hoppla, naja egal. ICE wird bereitgestellt ohne Reservierungen, ungereinigt, 30 Minuten zu spät. Bis am Ziel sind es dann 58 Minuten geworden, im Zug so knapp 30 Grad. Da dachte man, man ist dem Schlimmsten entronnen, sind nur noch 20 Minuten Regionalbahn. Doch dort ist anscheinend der vorausgegangene Zug ausgefallen, zur Haupt-Pendlerzeit rollt dann original eine Garnitur mit.. 5 Wagen ein. Die dichtgedrängten Leute am Bahnsteig hätten 8 vollbekommen. So quetschte man sich auf zwei Ebenen und schwitzte sich gegenseitig an. Wunderbar. Mein Tag heute. Es müsste gar nicht so viel getan werden, um etwas zu verbessern. Vor allem, mehr Redundanz schaffen, damit solche Extremsituationen nicht so schnell eskalieren. Aber! Kost' ja Geld.