╔═════════════════════════════════════════════════════════════════════╗
║ Wundereditor                                                        ║
║ Donnerstag, 12. August 2021, 19:25                           inkeso ║
╚═════════════════════════════════════════════════════════════════════╝
Ich probiere von Zeit zu Zeit ganz gern mal neue Tools aus. Sei es um meinen Werkzeugkoffer zu erweitern oder als Ersatz zu bestehenden Tools.
Mein Stammeditor/IDE ist seit langer Zeit Geany (und wird es vermutlich auch bleiben), aber auch Geany hat so seine Ecken¹...

Und da kommt CudaText daher... sieht auf den ersten Blick vielversprechend aus, also zeig' mal.

Als erstes sind mir 2 Sachen positiv aufgefallen: Sehr schnell, sehr portabel (Keine Installation, ich kann das Programmverzeichnis inkl. meiner Konfig & Plugins einfach auf den nächsten Rechner kopieren, fertig).

Dann habe ich ein paar Stunden (!) mit der Konfiguration verbracht. Das ist nicht nötig, der funktioniert schon ab Werk, aber ich will ja wissen, was so alles geht. Ein paar der zahlreichen Plugins ausprobiert, Farbschema, Darstellung, Lexer nachinstallieren, sowas halt. Da ist sehr viel Konfigurierbar. Ein Füllhorn an Möglichkeiten. An der Stelle kann ich auch gleich die Dokumentation loben. Sie ist a) vorhanden, b) gut auffindbar und c) Umfangreich. Es gibt ein Wiki, ein Forum, Github und ich habe das Gefühl, der Hauptentwickler ist ganz gut hinterher.

Ähnlich wie mein aktueller GUI-Filemanger der Wahl (DoubleCommander) ist CudaText in Lazarus & Free Pascal gebaut. Damit ist das gleich mal so richtig crossplatform: Windows, Linux (Gtk2 oder Qt), macOS, *BSD... es gibt sogar einen inoffiziellen Haiku-Build...

Screenshot von CudaText, so wie ich ihn mir derzeit hingebastelt habe.

Alles Zusammen geht der jetzt in Runde 2: Ich werd den mal in der Praxis verwenden und gucken, was mich nervt oder begeistert.

Ein paar Sachen sind mir schon aufgefallen:

  1. Primary Copy-und-Paste per Auswahl und Mittelklick funktioniert nicht wie erwartet. Ja, man muss das vorher in der Konfig anschalten, aber auch dann fügt ein Mittelklick an der aktuellen Textcursorposition ein und nicht an der Mausposition. Das ist... seltsam.
    Ich habe auch keine Option gefunden, mit der man das Mittelklick-Verhalten auf "nativ" stellen kann.

  2. Es gibt nur ein Sidepanel mit "Tabs" für Symbolbaum, Projektbrowser, Dokumentliste und was man sonst noch so an Seitenleisten-Plugins an hat. Das ist bei Geany auch so, dort habe ich mir ein Plugin gebaut, damit ich den Symbolbaum extra habe, so daß Projektbrowser und Symbolbaum zeitgleich sichtbar sind. Ich bin noch nicht sicher, ob es mir möglich sein wird, das auch als Plugin in CudaText umzusetzen (wohl nicht).

  3. Ich finde es schade, daß im Projektbrowser immer nur genau ein Projekt angezeigt werden kann. Das macht den Projekt-Wurzelknoten irgendwie obsolet.

  4. Die Session-Verwaltung per Plugin fühlt sich umständlich an.


Aber es gibt eben auch echt coole Features:

  1. Multicursor ist flexibler als die strikte Spaltenauswahl bei Geany

  2. Tabs können wahlweise coloriert werden, man kann sich dateitypabhängige Symbole darin anzeigen lassen.

  3. bessere Calltips und Autocompletion

  4. Subblöcke in anderer Sprache (sowas wie ne HTML-Datei mit nem <style>-Block und nem <script>-Block werden mit anderem Hintergrund versehen und im Gegensatz zu Geany korrekt gesyntaxhighlightet.

  5. Horizontale Lineal (OK, brauche ich selten, aber schön daß es da ist. Ist jedenfalls einfach ablesbar als die Spaltennummer im Footer

  6. Dateivorschau bei Auswahl im Projektbrowser, inkl. Bilder!


Nun muss die Zeit zeigen, ob ich mir für die Negativpunkte Workarounds baue bzw. die Konfig verfeinere oder ob ich Geany treu bleibe und auf die paar coolen Features verzichte...
╔═════════════════════════════════════════════════════════════════════╗
║ RGB-LED Hautnah                                                     ║
║ Freitag,  9. Juli 2021, 22:57                                inkeso ║
╚═════════════════════════════════════════════════════════════════════╝
Ich hab' da diese "Loungeball"-LED, eine Farbwechsel-RGB-LED, die von sich aus einen langsamen Farbübergang wiedergibt.
RGB-LED Seitenansicht. Der Bildausschnitt ist in echt ziemlich genau 1cm hoch.
RGB-LED Dreinsicht (technischer Ausdruck). Durchmesser ist 5mm. Ich hab für dieses Bild endlich mal meinen gesamten Vorrat an Makroringen verwendet :)
Man sieht schön die 3 einzelnen Chips für rot, grün und blau und links den Controller. In Aktion sieht das so aus:
RGB-LED
Und wenn man dann noch 'ne Milchglaskuppel drüberstülpt kann man wunderbar die aus dem Physikunterricht bekannte additive Farbmischung sehen:
RGB-Farbmischung

Und hier die Magie der LED, der Milchglaskuppel und der additiven Farbmischung in modernster Bewegtbildtechnik:

Im Video sieht man besonders gut, wie schwer es Digitalkameras haben, das typische LED-blau (bei 0:13) korrekt abzubilden, vermutlich weil es so nah am UV-Bereich ist.
╔═════════════════════════════════════════════════════════════════════╗
║ Spielzeug?                                                          ║
║ Montag, 20. Januar 2020, 04:17                               inkeso ║
╚═════════════════════════════════════════════════════════════════════╝
Nicht, daß ich akut Bedarf hätte, aber zum Einen wollte ich eine etwas feinere Spitze im Sortiment haben, zum Anderen ist es nicht verkehrt einen ordentliches Gleichstrombrateisen zu haben, für falls mal Lötbedarf aber keine Steckdose vorhanden ist. Man weiß ja nie.
Also hab ich mir 'n TS100 gekauft. Tausend Youtuber können nicht irren. Kam gestern an, musste ich heute direkt mal probefahren.

Das Teil braucht 12-24V (Zigarettenanzünder, Akkupack, Netzteil, whatever), ich nehm' erstmal mein Tischnetzteil, da seh ich gleich wie doll es strömt und ich kann ihm bequem verschiedene Eingangspannungen testen.

Nu noch was zum löten: 5x5 5mm-LED-panel. In diesem Fall bestückt mit so farbwechselnden LEDs und brav einem Vorwiderstand pro LED. Das ganze dann einseitig auf Lochraster geroutet (was ein Akt! Und würde man 7x7 auch noch ohne Schummeln hinbekommen?).

5x5 5mm-LED-Panel, gebraten auf Lochraster per Gleichstromkolben
Testfahrt bestanden, der kann was. Handhabung geht klar, Heizen geht schnell genug, Lochraster im üblichen Rahmen klappt prima, auch bei 12V. Aber bei 24V schon doch deutlich besser. Klar, da hat er beinahe vierfache Leistung, das merkt man.
Wenn man gut Masse zu erhitzen hat (z.B. der fette +5V-Trace unten rechts), braucht man bei 12V-Betrieb Geduld. Oder man dreht vorher bisschen wärmer¹.

Den automagischen gyroskopbasierten Standbymodus find ich pfiffig: Wenn das Teil einige Zeit nicht wackelt (also rumliegt), fährt es auf die Temperatur runter und wenn man es dann anfässt wieder hoch. Und nach langer Bewegungslosigkeit geht es auch ganz aus.

Fazit: Er wird meine Ersa-Station zuhause nicht ersetzen (außer falls ich mal 0402 oder kleiner löten muss), aber als Feldkolben isser perfekt.



1: In der alternativen Firmware von Ralim kann man per Knopfdruck temporär die Temperatur erhöhen. Das könnte in einem Fall wie diesem oder z.B. für das Verzinnen von dicken Kabeln bei Zigarettenanzünderbetrieb im Kraftfahrzeugsbereich hilfreich sein.
╔═════════════════════════════════════════════════════════════════════╗
║ Crosscompiling                                                      ║
║ Mittwoch, 30. Januar 2019, 22:58                             inkeso ║
╚═════════════════════════════════════════════════════════════════════╝
Aargh, Crosscoding ist Mist. Ich hacke auf Arbeit R. Im Moment (wegen Redesign dieser Seite) privat aber PHP/JS/CSS/HTML. In der akuten Situation JS.

Bevor Fragen kommen: Diese Seite benötigt kein JS und funktioniert ohne dieses auch identisch (außer Teile vom Museum vielleicht). Die Skripte machen nur das Menu dynamischer, die Bilder Klickbar, ein bisschen Deko für den sonst leeren Seitenbereich und Syntaxhighlighting.

Nun schrob ich gerade im JS ein paar Funktionsdefinitionen runter, zuweisend, also in der Form

var tuwat = function(s) {
    ...
}


in R mache ich das genauso, aber per Konvention ist der Zuweisungsoperator nicht = sondern <-.

tuwat <- function(s) {
    ...
}


Gerade habe ich locker ne halbe Stunde gebraucht um herrauszufinden, was diese bescheuerte Fehlermeldung soll und warum mein Script nich läuft. *seufz* *facepalm* #dankegehirn