Der Code-Schnippsel-Thread

  • Man kann die Sonderzeichen durch sowas ersetzen und der Compiler akzeptierts dann. Denk dir einfach die normalen Zeichen #, {, } usw dahin und du hast nen stinknormales Hello World.

  • Für eine kombinierte Akkuanzeige des internen und Slice-Akkus in i3status:

    .i3bat.sh

    Bash
    #!/bin/bash
     
    while true
    do
    paste /sys/class/power_supply/BAT0/uevent /sys/class/power_supply/BAT1/uevent | awk '{split($0,a,"="); split(a[2],b," "); (a[3] == "Charging" || b[1] == "Charging") ? $5 = "Charging" : $5 = (a[3] + b[1])/2; print a[1] "=" $5}' > .uevent
    sleep 5
    done

    .i3status.conf

    Code
    order += "battery 2"
    battery 2 {
    	integer_battery_capacity = true
    	last_full_capacity = true
    	path = "/home/matthias/.uevent"
    	format = "%status %percentage %remaining"

    ~/.config/i3/config

    Code
    exec ~/.i3bat.sh

    Schnell und Dreckig.

    sumi - R9 5950X - 128 GB RAM ECC - 2x 1TB NVMe - 4 TB SATA SSD - 4TB SATA HDD RAID-0 - Radeon RX 7800 XT 16 GB - SoundBlaster Z - Steinberg UR22 mkII Interface - Chieftec Dragon CS-601 - Arch/Win 10 Pro
    ThinkPad P14s Gen2 AMD - R7 5850U - 48 GB RAM - 1 TB NVMe SSD - UHD 3840x2160 HDR - Vega 8 - RTL8255AE AX - EM120R-GL LTE-A - Arch/Win 10 Edu
    Apple Mac Mini (Late 2020) - Apple M1 - 16 GB RAM - 256 GB SSD - WiFi 6 - macOS
    HPE Microserver Gen 8 - Xeon E3-1220 v2 - 16 GB RAM - 12 TB HDD - Debian

    </> Do you know who ate all the doughnuts?

    Einmal editiert, zuletzt von Pain (14. April 2016 um 17:46)

  • Code
    ??=include <stdio.h>
    int
    main(int argc, char *argv??(??))
    ??<
            printf("Hello World!??/n");
            return 0;
    ??>
    Code
    %:include <stdio.h>
    int
    main(int argc, char *argv<::>)
    <%
            printf("Hello World!??/n");
            return 0;
    %>


    Zwei triviale C-Programme.

    APPLE ÜÄ?

    • • • – • – – • – –

  • PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

  • Habe jetzte nen SenseHAT für den Pi ... und das ist eine kleine Binäre Uhr

    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


  • #Michael_ Code

    Es ist besser nicht zu moderieren als falsch zu moderieren


  • Er wollte damit nur zum ausdruck bringen wie genial der Code ist und sagen das er glatt von mir hätte kommen können.

    Aha. Das heißt auf einer Genialitätsskala von 1-10 eine -1


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


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

  • smaller numbers are better



    Aber ohne witz vielleicht war das nicht so klug was dazu zu schreiben, ich habe von dem code da keine ahnung und weiß nicht mal wie die Sprache heißt.

    Einmal editiert, zuletzt von Michael_ (16. Juni 2016 um 22:53)

  • Das Programm erfüllt sehr wahrscheinlich seinen namentlichen Zweck nicht, da dieser sich nur irgendwo 1 GiB virtuellen Speicher her besorgt und mit einem fixen 8-Bit-Muster (0100 0001) vollschreibt. Man müsste schon mit Inline-Assembler (z. B. CLFLUSH-/MFENCE-Instruktionen auf x86) dafür sorgen, dass die Muster tatsächlich im RAM landen. Ein "intelligenter" C-Compiler könnte vielleicht sogar die memset-Aufrufe völlig aushebeln, da der von der einen Funktion beschriebene Speicher ausschließlich von der anderen ausgelesen und sonst nicht benutzt wird - mit clang unter FreeBSD scheint laut dem Thread z. B. das gesamte Gigabyte einfach auf eine einzige Speicherseite gemappt zu werden, die mit diesem Muster gefüllt ist.


  • Das Programm erfüllt sehr wahrscheinlich seinen namentlichen Zweck nicht, da dieser sich nur irgendwo 1 GiB virtuellen Speicher her besorgt und mit einem fixen 8-Bit-Muster (0100 0001) vollschreibt. Man müsste schon mit Inline-Assembler (z. B. CLFLUSH-/MFENCE-Instruktionen auf x86) dafür sorgen, dass die Muster tatsächlich im RAM landen. Ein "intelligenter" C-Compiler könnte vielleicht sogar die memset-Aufrufe völlig aushebeln, da der von der einen Funktion beschriebene Speicher ausschließlich von der anderen ausgelesen und sonst nicht benutzt wird - mit clang unter FreeBSD scheint laut dem Thread z. B. das gesamte Gigabyte einfach auf eine einzige Speicherseite gemappt zu werden, die mit diesem Muster gefüllt ist.


    Ja, gute Punkte. Die Compileroptimierungen kriegt man mit volatile und Compiler-Barriers raus, wenn sie überhaupt greifen. Die Prozessoptimierungen sind schwieriger, Cache einerseits, insbesondere Prefetcher andererseits. Was wir damals für die Messung von Speicherlatenz in NUMA-Systemen gemacht haben, ist den Speicherbereich mit Pointern auf sich selber füllen und dann zufällig shuffeln. Und dann ein paar Millionen Iteration einfach den Pointern folgen. Den Cache kriegt man in der Regel durch genügend grosse Blöcke vergiftet, und der Prefetcher kann die zufälligen Muster nicht unendlich vorhersagen.

    Einmal editiert, zuletzt von gandro (17. Juni 2016 um 01:26)


  • 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 (29. Juni 2016 um 19:53)

Jetzt mitmachen!

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