Der Code-Schnippsel-Thread

  • Jap, das ist deutlich besser. Achte bei pydbus allerdings darauf, dass bei Eingabe von Dictionarys und co. evtl. mit pydbus.GVariant erst ein bisschen was drumrum verpacken musst. Da gilt es auf die Datentypen zu achten, die der NetworkManager hier vorsieht.
    Im Zweifel erst mal krachen lassen und gucken, was er als Typ erwartet, und danach den GVariant bauen.

    Einmal editiert, zuletzt von winfreak (3. September 2017 um 13:26)

  • Shell-/Awk-Skript für eine automatisch generierte DNS-Zone (mit DNSSEC müsste man an dieser Stelle noch signieren).

  • VBScript, das einen Datums-Befehl in der Form date MMTThhmmJJJJ.ss plus ENTER ausgibt, wie dieser von den GNU coreutils erwartet wird. Anwendungsfall ist z. B. ein Raspberry Pi oder ähnlicher Einplatinencomputer ohne Echtzeituhr, der ohne Internetverbindung betrieben wird, aber von einem anderen Computer aus wenigstens ungefähr sekundengenau nachgestellt werden soll (das Konstrukt ⌈Timer⌉−Timer, wobei Timer für die verstrichenen Sekunden des Tages mit Nachkommastellen steht, sorgt in etwa dafür, dass bis zum Beginn einer vollen Sekunde gewartet wird).

    Ähnlich, aber nur in geänderter Reihenfolge verfährt man bei einem BSD-System, wo der Befehl das Datum in der mehr am internationalen Standard angelehnten Form JJJJMMTThhmm.ss akzeptiert.
    Zeile 19 sollte dann wie folgt aussehen, Zeile 20-22 fallen dann weg:

    Code
    unixstr = CStr(Minute(unixtime) + 100 * Hour(unixtime) + 10000 * Day(unixtime) + 1000000 * Month(unixtime) + 100000000 * Year(unixtime))
  • Nichts wildes, aber evtl für manche praktisch. Schnell nachschauen, wie viel man bei einer bestimmten Länge Tonband bei den üblichen Geschwindigkeiten aufnehmen kann:

  • Ich hatte hier einen Ordner mit 360 Bildern, wo jeweils die obersten 26 Pixel abgeschnitten werden sollten, sprich oben ein kleines Stück wegschneiden. Das ist wieder ein schönes Beispiel für Dinge, die auf der Kommandozeile viel viel komfortabler gehen als mit jeder GUI. Ein Befehl und beliebig viele Dateien werden abgearbeitet:

    Code
    find . -iname "*.jpg" -print -exec mogrify -gravity North -chop 0x26 "{}" \;

    Benötigt installiertes ImageMagick.

  • mach ich per batch Verarbeitung in Paintshop auch in Sekunden

    Meine Main Geräte

    Spoiler anzeigen


    Main PC

    MSI X99-pro-Gaming-Carbon
    Intel XEON E5 2630 V4 20 Threads, 36 MB L3 Cache 2,21 Ghz 2,8 Ghz Turbo
    64 GB DDR4 2400 Mhz Quad Channel (8*8GB)
    2* AMD RX 580 8 GB Crossfire X (Pulse Bios 1250 Core 1950 MEM,) (Dual Bios)
    Samsung 960 pro 500 GB NVME @PCIE X4
    Samsung 2 TB SATA III HDD
    Crucial MX 500 1 TB SSD
    Sandisk pro 250 GB SSD
    Soundblaster Z @PCIE x2
    NEC USB 3.1 COntroller Card @ PCIE x2
    Corsair Obsidian 800D Case
    2* EIZO 4K S-IPS TFT + Oculus Rift CV1

    Notebook primär

    HP Zbook 14 G2
    Intel I5 5300U 4 Threads, 1,9 Ghz Turbo bis 2,66 Ghz
    16 GB DDR 3 1600 Mhz Ram
    Intel HD 5500 + AMD Fire pro MV4150 1GB
    Sandisk SSD 500 GB 2,5 Zoll SATA III
    Transcend SSD NVME 256 GB 2260
    14 Zoll S-VA Samsung Panel 1600*900
    LTE 150 Mbits, Intel AC WIFI Gigabit Lan, BT 4.1, NFC
    4* USB 3.0, 1 Smartcard, 1*PCIE SD card Reader, Sound, DP, Dockport, NT
    4 Cell primär Akku 45 WH + Unterschnall Akku 4 Cell 59 WH bis 14,5H


  • Warum soll ich dafür so ein Koloss wie Photoshop installieren, wenn das wenige Kilobyte große Imagemagick das und alle möglichen anderen Bildbearbeitungssachen genauso gut kann? Wíll ja keine detaillierte Retusche machen, sondern nur was croppen, dafür brauche ich doch keine GUI.

  • es hat sich so gelesen als würde man nur per Konsole effizient arbeiten können, das wollte ich nur wiederlegen, natürlich gebe ich dir Recht das wenn man so etwas nicht oft mach die Konsole ausreicht

    Meine Main Geräte

    Spoiler anzeigen


    Main PC

    MSI X99-pro-Gaming-Carbon
    Intel XEON E5 2630 V4 20 Threads, 36 MB L3 Cache 2,21 Ghz 2,8 Ghz Turbo
    64 GB DDR4 2400 Mhz Quad Channel (8*8GB)
    2* AMD RX 580 8 GB Crossfire X (Pulse Bios 1250 Core 1950 MEM,) (Dual Bios)
    Samsung 960 pro 500 GB NVME @PCIE X4
    Samsung 2 TB SATA III HDD
    Crucial MX 500 1 TB SSD
    Sandisk pro 250 GB SSD
    Soundblaster Z @PCIE x2
    NEC USB 3.1 COntroller Card @ PCIE x2
    Corsair Obsidian 800D Case
    2* EIZO 4K S-IPS TFT + Oculus Rift CV1

    Notebook primär

    HP Zbook 14 G2
    Intel I5 5300U 4 Threads, 1,9 Ghz Turbo bis 2,66 Ghz
    16 GB DDR 3 1600 Mhz Ram
    Intel HD 5500 + AMD Fire pro MV4150 1GB
    Sandisk SSD 500 GB 2,5 Zoll SATA III
    Transcend SSD NVME 256 GB 2260
    14 Zoll S-VA Samsung Panel 1600*900
    LTE 150 Mbits, Intel AC WIFI Gigabit Lan, BT 4.1, NFC
    4* USB 3.0, 1 Smartcard, 1*PCIE SD card Reader, Sound, DP, Dockport, NT
    4 Cell primär Akku 45 WH + Unterschnall Akku 4 Cell 59 WH bis 14,5H



  • es hat sich so gelesen als würde man nur per Konsole effizient arbeiten können, das wollte ich nur wiederlegen, natürlich gebe ich dir Recht das wenn man so etwas nicht oft mach die Konsole ausreicht

    Das hast du genau genommen eigentlich nicht widerlegt, sondern nur dargestellt, dass man auch mit anderen Mitteln einen Automatismus herstellen kann. Gerade wenn man etwas oft macht ist ja eben die "Batch Verarbeitung" (= Schleife/Map-Funktion) das Mittel der Wahl. Egal, mit welchem Werkzeug.
    Und wie shadowtux schon richtig gesagt hat geht's hier um Pixelschubsen einfachster Güte, da brauchts wahrlich kein Editor sondern lediglich ein Werkzeug für genau das.

    Einmal editiert, zuletzt von winfreak (12. Juli 2019 um 00:04)

  • Mal wieder ein kleines Shell-Snippet, nichts wildes. Konvertiert alle tar.gz-Archive zum effizienteren tar.xz:

    Code
    for i in $(find . -iname "*.tar.gz"); do gunzip -v "${i}" ; xz -v -9 --threads=$(nproc) "$(echo ${i} | sed 's/\.gz//gi')" ; done
  • Code
    alias hinv="uname -srm; neofetch 2>/dev/null cpu memory gpu disk"

    Nichts wildes. Klassischer hinv-Befehl für eine gute Hardwareübersicht wie unter IRIX. Zu hinterlegen in der rc seiner Shell, zum Beispiel .bashrc, .zshrc oder .profile

  • Mal wieder ein "nichts wildes, aber evtl mal ganz nett wenn man die Syntax davon sucht":


    Nimmt als Parameter higher, lower oder mute und setzt die Lautstärke entsprechend in Pulseaudio. Kannn man zum Beispiel Tastenkombis drauf zeigen lassen für Lautstärkebuttons.

  • das ergibt nen Fake Matrix Bildschirm

    X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

    Früh aufstehen ist der erste Schritt in die falsche Richtung.

    Uri Geller verbiegt Löffel. Na und, Maggi macht Knoten rein!

    Ich bin im WH Forum seit dem 11.05.2003 ... wow

  • Ein Freund bat mich um Rat: Knapp 1400 Zeilen einer Senderliste sollten nach einem bestimmten Schema zugeschnitten werden. Beispiel-Datensatz:
    #SERVICE 4097:0:1:2:0:0:0:0:0:0:https%3a//admin%3aHalloWHF@spielt.keinerolle.ch/stream/channelid/787394218[color=#FF0000]?ticket=1A65EC926EBE4EABBE8705321D943411FF46EE02&profile=pass:[/color]1 FL TV#DESCRIPTION 1 FL TV

    Der rot markierte Teil sollte entfernt werden. Ich habe nicht lange überlegt und eine Quick-and-Dirty-Workaroundlösung in bash zusammengezimmert.

    Mir ist klar, dass man da EINIGES optimieren kann. Alleine schon, die Zwischenstrings nicht erst in Variablen zu packen, sondern das Ganze direkt in EINEM Rutsch auszugeben. Aber wie gesagt, das war nur eine Quick and Dirty-Workaroundlösung und so sparte er sich eine Menge Arbeit, diese Strings jeweils von Hand zu cutten.

    Nur aus Interese: Vielleicht hat ja jemand eine Idee, wie mans schöner machen könnte? Ich habe jetzt einfach mal aus dem Kopf ein bisschen coreutils-Grundlagen rungeschrieben, hatte nicht die Zeit um weitergehende Parameter/Optionen in den Manpages zu recherchieren.

  • Uff, jetzt sag nicht, dass mein gesamtes Script durch einen einzigen Regexp ersetzt werden kann.. Heftig, danke!

    Allerdings hat diese Variante einen Haken: Sie funktioniert nur mit der GNU-Version von sed, mit der BSD-Variante (etwa vom Mac) gibt es kein -r. Wobei man das sicher noch anpassen kann.

    Ich muss unbedingt mal Regexp lernen irgendwann, ist schon geil was damit geht!

  • Ich habe diese Regular Expression auf meinem Mac erzeugt unter Big Sur mit einer BSD Version von sed und bei mir funktioniert das.
    -r und -E sind gleichwertig bei BSD sed, aber nur -r funktioniert auf beiden.

    Für einen Überblück über Regex, kann ich nur das hier empfehlen: https://laracasts.com/series/underst…lar-expressions

    Einmal editiert, zuletzt von winfreak (11. Mai 2021 um 22:39)

  • Hab mal was gebastelt.

    Aktuell suche ich noch nach einer Möglichkeit, dein Output von showmount -e <hostname> so zu parsen, dass ich ihn als Input für meinen Mount-Befehl nutzen kann. Cutten kann ich den Output schon, aber irgendwas ist da noch schief. Vielleicht hat von euch ja jemand ne Idee.


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

    Einmal editiert, zuletzt von tk1908 (12. Mai 2021 um 10:44)

  • Leute ich steh gerade massiv aufm Schlauch

    Ausgabe ist

    Code
    Foo1[1]

    Eigentlich will ich als Ausgabe nur Foo1. Was mache ich falsch?


    Meine Beiträge stehen unter der MIT-Lizenz:D


    externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!