Hi,
ich starte heute mit Episode #01 zur "Dark Side of Code C&P Culture", wo
ich aufzeige warum c&p nicht immer der Anfang sondern auch das End "vom
Denken" bedeuten kann. Ich werde dazu regelmäßig C Code Snippets aus den
Embedded Bereich sezieren ... und diesen wesentlich verbessern.
#01c&p, Arduino shiftIn(), shiftOut()
Diese Funktionen sind besondern auf Small Machines grausam inefficient
bzgl. Code Size and Speed, weil hier "dynamic shifts" wie <<i/<<(7-i)
verwendet werden. Die leicht einzusehende bessere Lsg verwendet "static
shifts" !
Hannes J. schrieb:> Arduino-Müll vorführen ist wie einem Baby den Lutscher klauen. Also was> soll das?
Es soll verhindern, daß das Baby schlechte Zähne bekommt.
Zumindest shiftOut() ist keine Verbesserung zum original Arduino Code.
Im Gegenteil.
Der hier ohne jede Not verwendete (also überflüssige)
Ausdrucksverkettungsoperator, machts nur schlimmer/hässlicher.
Außerdem bleibt der Löwenanteil der Zeit (und auch der
Speicherverbrauch) nicht beim Schieben hängen, sondern bei den
digitalWrite() und digitalRead() Funktionen.
Bei einem µC mit Barrell Shifter ist das sowieso alles wurscht.
Tipp:
Falls wirklich Interesse daran besteht den Arduino Code zu verbessern,
dann ist hier der falsche Ort.
C&P_Hunter schrieb:> Ich werde dazu regelmäßig C Code Snippets aus den> Embedded Bereich sezieren ... und diesen wesentlich verbessern.
Hört sich sehr interessant an.
Arduino Fanboy D. schrieb:> Ausdrucksverkettungsoperator, machts nur schlimmer/hässlicher.
Mir scheint, du kennst dich mit hässlichen Dingen gut aus!?
Vorschauprogram:
In Episode #2 zeige ich den interessierten Kindern, z.B. wie shiftout()
weiter verbessert werden kann bzgl. Speed um z.b via SW SPI mit OLED/TFT
zu bespielen.
Ab Episode #3 gehts dann mal um Code hier bekannter Projekte
Wordclock/Transistortester/...
Gerne würde ich auch ein SW/HW Projekt von Arduino Fanboy D. sezieren.
Gibt es da was zu finden, oder kann dieser Zuschauer mal eines seiner
besseren Projekte posten?
Also bleibt eingeschaltet!
> ... und diesen wesentlich verbessern.
Gähn. Wieder einer dieser Weltverbesserer bzw. Besserwissis. Die sind
wie Kacke am Schuhhacken. Die wird man nicht so einfach wieder los. kwt.
C&P_Hunter schrieb:> In Episode #2 zeige ich den interessierten Kindern, z.B. wie shiftout()> weiter verbessert werden kann bzgl. Speed um z.b via SW SPI mit OLED/TFT> zu bespielen.
Das ist auch dringend nötig, denn Soft-SPI mit den Funktionen
digitalRead(..) und digitalWrite(..) zu vermauscheln ist schon
wahrhaft Digitale Perversion.
Wenn es konkrete Probleme sind dann kann man die als Issue und Pull
Request bei den Entwicklern einbringen. Da muss man sich aber etwas
gepflegter Ausdrücken, sonst fliegt man da gleich wieder raus. Alles
andere ist Wichtigtuerei und Kinderkacke.
Und hier wird diese Position schon vom C-Hater eingenommen. Oder hast du
dir nur einen x. Nick zugelegt?
Martin schrieb:> Gähn. Wieder einer dieser Weltverbesserer bzw. Besserwissis. Die sind> wie Kacke am Schuhhacken. Die wird man nicht so einfach wieder los. kwt.
... für Kinder, wie Martin, die lieber aus dem Fenster schauen wollen,
bitte stört nicht die anderen!
Oder Martin, liegt vielleicht die Ursache deiner Brandrede darin, dass
du zu wenig Aufmerksamkeit empfängst?
Dann würde ich dir gerne z.B. das Thema der Episode #2 oder #3
übergeben, interessiert oder spielst du lieber mit Molotowcocktail? Weil
dein Ton und deine Sprache lässt nichts Gutes vermuten.
Johannes S. schrieb:> Da muss man sich aber etwas> gepflegter Ausdrücken, sonst fliegt man da gleich wieder raus. Alles> andere ist Wichtigtuerei und Kinderkacke.> Und hier wird diese Position schon vom C-Hater eingenommen. Oder hast du> dir nur einen x. Nick zugelegt?
Der Leidensdruck einiger Zuschauer ist beeindruckend, die praktizierte
Sprache eher weniger.
Die Motivation der Sendung ist überschaubare Code Snippets zu verbessern
und davon zu lernen ...
stay tuned!
Hi
>Die Motivation der Sendung ist überschaubare Code Snippets zu verbessern>und davon zu lernen ...
Und warum machst du das dann nicht in einem Arduino Forum?
MfG Spess
Erklehr Behr schrieb:> Das ist auch dringend nötig, denn Soft-SPI mit den Funktionen> digitalRead(..) und digitalWrite(..) zu vermauscheln ist schon> wahrhaft Digitale Perversion.
Nö, es ist die offizielle Abstraktionsebene der Arduino-Libs. Wenn man
es denn WIRKLICH effizient machen wöllte, würde man separate
Assemblerdateien mit handoptimiertem ASM für JEDE Arduino-Architektur
verwenden.
C&P_Hunter schrieb:> Diese Funktionen sind besondern auf Small Machines grausam inefficient> bzgl. Code Size and Speed, weil hier "dynamic shifts" wie <<i/<<(7-i)> verwendet werden. Die leicht einzusehende bessere Lsg verwendet "static> shifts" !
Schön und gut, aber wenn man schon zeigen will daß es besser ist, dann
bitte auch mit einer Messung in der realen Welt. Sprich, mittels Oszi
oder Logicanalyzer deine Versionen vergeleichen.
Erklehr Behr schrieb:
> Das ist auch dringend nötig, denn Soft-SPI mit den Funktionen> digitalRead(..) und digitalWrite(..) zu vermauscheln ist schon> wahrhaft Digitale Perversion.
... das Thema zur Beschleunigung von Shiftout() wird nicht im direkten
Sinn IO-Read/Write sein, das wurde ja schon oft genug besprochen und die
reflektorischen Reaktionen einiger Zuhörer bestätigen das ja auch.
Es geht um eine andere viel zu wenig genutzte Technik, die gerade bei
Datentransfers zu einem Grafikdisplay immer genutz werden kann und
relativ die Übertragungsperformance beachtlich verbessert.
Stay tuned!
Falk B. schrieb:> Allerdings kann man es auch mit dem offiziellen Arduino-Konzept DEUTLICH> schneller machen, auch ohne ASM. Dazu braucht man die Macros ind> Arduino.h
Danke Falk, für deinen inhaltlichen Beitrag so macht der Blog Sinn für
mich!
Ich hoffe, die Makro-Hasser lesen hier nicht mit :-)!
Die Frage ist ja jetzt irgendwie wieso wurde die hier vorgeschlagene
Änderung ursprünglich geändert.
Es muss ja auch seine Gründe haben. Begründung waren ja "minor
optimizations"
Philipp K. schrieb:> Es muss ja auch seine Gründe haben. Begründung waren ja "minor> optimizations"
... sollte uns das interessieren? Minor ist sehr relativ, für mich war
der Issue nur ein Beispiel und Arduino stand nicht und steht nicht im
Focus.
Auf einem ATtiny war die Code Size/Speed Reduction relevant. Es geht mir
aber auch um Esthetik, weil Coding ist auch Art, wie Kochen auch, und
benötigt auch Talent. Auch wenn jeder denkt er könne das alles, nur die
Realität sieht anders dazu aus.
dataPin, clockPin und vor allem bitOrder sind in der Regel
Compilezeit-Konstanten und Arduino ist meines Wissens nach C++. Da wäre
also durch
- Pin-Definitionen durch Konstanten ersetzen und
- Loop-Unrolling durch C++17 Fold-Expressions
noch eine Menge Luft nach oben. Nachdem ich von AVR keine Ahnung hab hab
ich das grad für einen ARMv7me ausprobiert und da fällt branchless Code
raus der handgeschriebenem Assembler vermutlich sehr nahe kommt.
Hab mich mal dran gesetzt....
Noch nicht ganz optimal, aber deutlich schlanker als der Kram vom
C&P_Hunter
Vincent H. schrieb:> - Pin-Definitionen durch Konstanten ersetzen und
Done!
Vincent H. schrieb:> - Loop-Unrolling durch C++17 Fold-Expressions
Noch nicht.
C&P_Hunter schrieb:> Minor ist sehr relativ, für mich war> der Issue nur ein Beispiel und Arduino stand nicht und steht nicht im> Focus.
liest sich im Eröffungspost aber komplett anders.
Ich denke mal das ist wie beim ESP32..
Wenn ich Geschwindgkeit brauche benutze ich direkt das IDF im Arduino.
Das gleiche klappt genauso beim AVR und das wurde in den letzten 10
Jahren bestimmt 1000 mal durchgekaut. Arduino ist auch ein schlechtes
Beispiel.
ArduinoFan benutzt anscheinend die "Combie" Funktionen..(Vielleicht ist
er das ja sogar) die dem Anfänger auch noch das letzte Verständnis zum
Code rauben. Fehlen nur noch For schleifen als Library für das bessere
Verständnis.
Arduino Fanboy D. schrieb:> Noch nicht ganz optimal, aber deutlich schlanker als der Kram vom> C&P_Hunter
.. auweh, das Kellerkind taucht wieder auf!
Mit deiner negativen Attitude kann ich mir dir nur als Einzelgänger
vorstellen und das wäre Strafe genug.
Der Code wäre auch nicht optimal bzgl. Speed, da fehlt dir noch ein
wesentlicher Gedanke.
Speed Acceleration Ranking (relative):
1. unrool loop
2. Episode #2
3. IO-Access
stay runed!
Philipp K. schrieb:> ArduinoFan benutzt anscheinend die "Combie" Funktionen..(Vielleicht ist> er das ja sogar) die dem Anfänger auch noch das letzte Verständnis zum> Code rauben.
Es ist ok, dass dir das nicht schmeckt.
Ein kleiner Vergleich:
Ich nenne es mal "SPI Takt".
Verwendet wird ein UNO, also ATMega328P mit 16MHz
Da kommt meine Variante auf ca 925kHz
Die die von C&P_Hunter "optimierte" Variante auf ca 40,6kHz
(womit dann auch klar wäre, wie toll er optimieren kann)
Ach ja, der Flash Verbrauch steigt mit der von C&P_Hunter "optimierte"
Variante auf insgesamt 404 Byte, das sind mal eben 238 Byte mehr.
Dass das nicht ganz ohne Klimmzüge abgeht, sollte doch klar sein, oder?
Schließlich wollen ja auch noch die Arduino Pinnummern zu den AVR Port
und Pin Adressierungsnotwendigkeiten umgeschlüsselt werden.
Philipp K. schrieb:> ....
Zeige wie du die Umschlüsselung und die Schieberei genau so schnell hin
bekommst, und dann bitte so, das es für Anfänger leicht verständlich
ist.
Merke:
Meckern und rumkritisieren kann jeder.
Besser machen ist da schon deutlich schwieriger, nicht wahr?
Philipp K. schrieb:> liest sich im Eröffungspost aber komplett anders.
Ich denke, das liegt an der Konnotation die dem Wort Arduino hier
verleiht wird. Arduino scheint ein Reitzwort für einige Zuhörer zu sein.
Mir persönlich gefällt Arduino, die vielen Lib's sind immer wieder eine
gute Startbasis.
Der Titel war ungünstig gewählt und wird zukünftig "Dark Side of Coding"
lauten.
"Dark Side" ist doppeldeutig gemeint, darunter subsummiere ich pros and
cons Beispiele. Bedeutet, es werden kleine interessante Snippets/Ideen
vorgestellt, die mir irgendwann/irgendwo begegnet sind. Es werden Code
Snippets seziert und bessere Lsg. gesucht.
Wahrscheinlich starte ich mit der Wordclock ... da ist schon reichlich
Improvement Potential drin.
Allgemeinwissen ist doch, dass SW immer besser gemacht werden kann,
historisch wächst und es nicht um Leben und Tot geht, wie einige hier zu
denken scheinen.
Ich hoffe auch, dass die Wadenbeisser irgendwann alle satt und müde
werden!
Ich werde keine fertigen Kochrezepte anbieten, es soll immer um die
Grundidee gehen ohne Ideologie. Ich habe auch keinen pädagogischen
Anspruch, wer doof sterben will - nur zu!
stay tuned!
Arduino Fanboy D. schrieb:> Da kommt meine Variante auf ca 925kHz> Die die von C&P_Hunter "optimierte" Variante auf ca 40,6kHz> (womit dann auch klar wäre, wie toll er optimieren kann)>> Ach ja, der Flash Verbrauch steigt mit der von C&P_Hunter "optimierte"> Variante auf insgesamt 404 Byte, das sind mal eben 238 Byte mehr.
... interessant, dann lass uns mal die Nebenbedingungen abklären,
z.B. Compiler Version, ...
Mit positiver Denke könnte dir auffallen, das diese kleinen Änderungen
zum Original diese von dir genannten Zahlen nicht begründen sollten.
Viele unnette Zuhören versammeln sich hier und gehen scheinbar auf die
Jagt, ist schon bissle krank.
Aber hoffentlich nicht ansteckend!
stay tuned!
C&P_Hunter schrieb:> Ich hoffe auch, dass die Wadenbeisser irgendwann alle satt und müde> werden!
Ich hoffe auch, dass deine Rächdschraipunk noch etwas besser wird.
C&P_Hunter schrieb:> Ich denke, das liegt an der Konnotation die dem Wort Arduino hier> verleiht wird. Arduino scheint ein Reitzwort für einige Zuhörer zu sein.> Mir persönlich gefällt Arduino, die vielen _Lib's_ sind immer wieder eine> gute Startbasis.
Zu viele bewusste Falsch-Schreibungen.
Zu "Lib's" solltest auch du dich bei
http://www.deppenapostroph.info
schlau machen.
Stay ruined!
Arduino Fanboy D. schrieb:> Zeige wie du die Umschlüsselung und die Schieberei genau so schnell hin> bekommst, und dann bitte so, das es für Anfänger leicht verständlich> ist.>> Merke:> Meckern und rumkritisieren kann jeder.> Besser machen ist da schon deutlich schwieriger, nicht wahr?
Ich glaube, du bist hier im falschen Kino, wie können wir dich loswerden
ohne deinen Schmerz zu erforschen?!
Erklehr Behr schrieb:> Ich hoffe auch, dass deine Rächdschraipunk noch etwas besser wird.
Was ist dir schlimmes passiert, ach neh will ich doch nicht wissen!
Wenn das alles hier so schlimm ist, dann als Idee - mach die Augen/Ohren
zu und gehe über die Strasse. Dann ist sicher vielen Menschen geholfen
die dich bösen Kerl kennen und nicht lieben.
C&P_Hunter schrieb:> Der Code wäre auch nicht optimal bzgl. Speed,
Ach, ja ....
Das muss mir einer sagen, der bei shiftOut() nicht mal einen einzigen
Taktzyklus gegenüber dem Originalen Arduino Code herausgeholt hat.
nicht einenNULL
Weit über Faktor 20 Geschwindigkeitssteigerung sind es bei mir!
C&P_Hunter schrieb:> // improved implementation
Null Zugewinn.
Das nennst du "improved implementation".
Was für ein jämmerliches versagen.
Welche eine Blamage.
Mehr als heiße Luft kommt nicht bei dir...
Jämmerlich und aufgeblasen.
Der klassische Blender.
Arduino Fanboy D. schrieb:> as muss mir einer sagen, der bei shiftOut() nicht mal einen einzigen> Taktzyklus gegenüber dem Originalen Arduino Code herausgeholt hat.> nicht einen> NULL>> Weit über Faktor 20 Geschwindigkeitssteigerung sind es bei mir!
Bravo, dann wäre das Ziel von Episode#1 erfüllt, zumindest scheinbar!
Wer hat dir eigentlich beigebracht, dass Krieg spielen Spaß machen
soll?!
Ich mag deine Denke, Einstellung und Sprache nicht, aber sonst bis du
ganz ok, als Kontrastprogram zu den vielen guten Menschen.
Johannes S. schrieb:> Rechtschreibung ist auch Art.
Was motiviert dich zu diesen unnett gemeinten Kommentar,
Kleingeistigkeit oder so?
Damit du ruhig schlafen kannst, bin da ganz bei dir. Aber schnell runter
gehackt und keine Möglichkeit zur Korrektur machen das möglich.
Für die anderen, die mein English oder Deutsch "beneiden", zur Info
es hat gereicht zum Uni Abschluss in UK und 2xGE.
Die geistige Enge an deutschen FH könnte mir als Grund einfallen , warum
ihr Kontemplation verwechselt mit hier im Forum rumhängen.
stay tuned!
Johannes S. schrieb:> Rechtschreibung ist auch Art.> Kluge Worte zu schreiben, ist schwer.> Schon ein einziger Buchstabendreher, kann alles urinieren.
(Aus der Ratgeber-Schriftrolle)
Veit D. schrieb:> C&P_Hunter == Snafu
Sicherlich...
Ihm hangelt sich von Versagen zu Versagen.
Ich meine ja nur ihr diskutiert hier über Sachen....
Das ist alles vielleicht sogar schon ein Jahrzehnt Alter Hut und
aufgewärmter Brei das es schon in "Offtopic" fällt.
Arduino Fanboy D. schrieb:> Zeige wie du die Umschlüsselung und die Schieberei genau so schnell hin> bekommst, und dann bitte so, das es für Anfänger leicht verständlich> ist.
Das Problem ist, im Prinzip gibt es vielleicht eine Handvoll Lösungen
die wahrscheinlich schon jeder gesehen hat. Bzw. Jeder zweite fragt sich
"Wie soll das auch anders gehen", da müsste man schon mit "Wow, auch
nicht schlecht" Code auffahren und nicht irgendwelchen Basics der
letzten Pull Requests eines Arduino Codes.
Bei dem SPI Ding bin ich mal gespannt ob das irgendnem Jahre alten
Tutorial ähnelt.
Kinderkacke Entsorger schrieb:> Insbesonders wenn es> um Nutzbarkeit geht, ist 'Ästhetik' eher eine schlechte Ausrede.
Nutzbarkeit ist das Schlüsselwort, dass man hier in die Köpfe
implementiert, damit die Arbeitsklaven gut funktionieren. Aesthetic soll
da natürlich nicht vorkommen, das stört bei dem Thema Endcharakter der
Arbeit, schon mal gehört?
Philipp K. schrieb:> Das Problem ist, im Prinzip gibt es vielleicht eine Handvoll Lösungen> die wahrscheinlich schon jeder gesehen hat.
Denkbar, sollte so sein!
Bzw. Jeder zweite fragt sich
> "Wie soll das auch anders gehen", da müsste man schon mit "Wow, auch> nicht schlecht" Code auffahren und nicht irgendwelchen Basics der> letzten Pull Requests eines Arduino Codes.
Warum suchst du und wohl auch die anderen immer nach einen Wow Effekt,
vielleicht zuviel Scheinwelt aus der Klotze?
Das engt das Denken nur ein!
Das Thema wäre gewesen, dass die SW-SPI Transferrate nur besser werden
kann, wenn die SPI-Clk Rate z.B. relativ/dynamisch höher wird.
Wie soll das gehen, wenn wir annehmen, das der IO-Accress optimal von
Super Arduino Fanboy D. implementiert ist?
Offensichtlich nur, wenn wir einige IO-Zugriffe auslassen können.
Wie soll das möglich sein?
Wenn keine Bitzustandsänderung im Datenstrom stattfindet.
Bedeutet, die SPI-Clk Rate ist nicht mehr konstant sondern ändert sich
im Charakter des Datenbitstroms. Um so mehr Daten übertragen werden um
so besser der relative Performancegewinn. Daher besonders nützlich, wenn
wir an ein Interface mit Grafikdisplay denken.
Der Code dazu ist real ein Dreizeiler und setzt ein heute
fast immer anzutreffenes IO-Feature voraus.
Vorschläge/Ideen?!
Das sollte eine recht einfache Aufgabe für jene sein, die sich hier als
humane Codiermaschinen offenbart haben, weil denken muss man jetzt nicht
mehr so viel, sondern nur noch "nützlich" sein.
stay tuned
Arduino Fanboy D. schrieb:> Da kommt meine Variante auf ca 925kHz> Die die von C&P_Hunter "optimierte" Variante auf ca 40,6kHz> (womit dann auch klar wäre, wie toll er optimieren kann)>> Ach ja, der Flash Verbrauch steigt mit der von C&P_Hunter "optimierte"> Variante auf insgesamt 404 Byte, das sind mal eben 238 Byte mehr.
Ich habe mir deine Variante bis jetzt nicht angeschaut und referenziere
daher erstmal nur gegen das Arduino Orignal.
Bekannterweise gibt es viele Parameter, Plattform, Compiler Ide, ...
und was du wie gemessen hast wird zu klären sein. Auch im Sinne von wer
misst misst Mist.
So viele schöne Zahlen ..., da müssen wir ganz sicher noch genauer drauf
schauen!
Weil gute Ideen sollten ganz ganz ganz am Anfang mal im Focus stehen,
aber dann ist diese Trampelherde hier ausgebrochen.
stay tuned
Hallo,
C&P_Hunter schrieb:> Was motiviert dich zu diesen unnett gemeinten Kommentar,> Kleingeistigkeit oder so?
Ich kenne Johannes zwar nicht, ich könnte mir aber vorstellen das er
dadurch motiviert war diesen Kommentar zu schreiben, weil Johannes (wie
ich z.B. auch) erwarten würde, das man von jemandem, der sich hier
derart herablassend, arrogant und überheblich auslässt, erwarten würde
das er sich der deutschen Sprache adäquat zu bedienen weiß.
> Aber schnell runter gehackt und keine Möglichkeit zur Korrektur machen> das möglich.
So, so, "schnell runter gehackt und keine Möglichkeit zur Korrektur".
Passt aber irgend wie nicht zu deinem oberlehrerhaften Anspruch, findest
du nicht auch?
> Die geistige Enge an deutschen FH könnte mir als Grund einfallen , warum> ihr Kontemplation verwechselt mit hier im Forum rumhängen.
Du solltest daraus deine Schlüsse ziehen und dich mehr in der geistigen
Weite ausländischer Bildungseinrichtungen aufhalten.
rhf
Diesen unnützen und im Ton extrem unangenehmen Thread sollte man so bald
wie möglich entsorgen! Diesen Umgangston brauchen wir hier nämlich
nicht. Von der Thematik her nützt der Inhalt sowieso kaum jemandem.
Die wirklich hilfsbereiten, bekannten Forenteilnehmer vergreifen sich
kaum jemals so am Ton und bieten anstatt von Steinen, Brote an.
Ich hoffe, daß dieser Thread so bald wie möglich gesperrt und in den
Müll landert wo er hingehört.
Arduino Fanboy D. schrieb:> Der hier ohne jede Not verwendete (also überflüssige)> Ausdrucksverkettungsoperator, machts nur schlimmer/hässlicher.
Vor allem: Falsch. Denn es ist in C nicht definiert, welcher Ausdruck
zuerst abgearbeitet wird. Der Compiler könnte je nach Optimierungen und
Umfeld, oder je nach Version, auch mal die Reihenfolge umdrehen.
digitalWrite(dataPin, val & 0x01), val >>= 1;
könnte auch
val >>= 1, digitalWrite(dataPin, val & 0x01);
sein und ergibt dann ein anderes Ergebnis.
C&P_Hunter schrieb:> stay tuned!
Lieber nicht.
Felix schrieb:> Mir scheint das hier die Ursache für das Auftreten des TE zu sein:
Möglich.
Falk B. schrieb:> Allerdings kann man es auch mit dem offiziellen Arduino-Konzept DEUTLICH> schneller machen, auch ohne ASM. Dazu braucht man die Macros ind> Arduino.h
Durchaus. Und wenn man die Bitorder Geschichte aus der Schleife
herauszieht (was der Compiler nicht unbedingt schafft), dann wird es
noch schneller und übersichtlicher. Es gibt immer Luft nach oben.
C&P_Hunter schrieb:> Kinderkacke Entsorger schrieb:>> Insbesonders wenn es>> um Nutzbarkeit geht, ist 'Ästhetik' eher eine schlechte Ausrede.>> Nutzbarkeit ist das Schlüsselwort, dass man hier in die Köpfe> implementiert, damit die Arbeitsklaven gut funktionieren. Aesthetic soll> da natürlich nicht vorkommen, das stört bei dem Thema Endcharakter der> Arbeit, schon mal gehört?
Falsches Forum, du suchst:
https://kpf.die-linke.de/start/
Kinderkacke Entsorger schrieb:> C&P_Hunter schrieb:>> Kinderkacke Entsorger schrieb:>>> Insbesonders wenn es>>> um Nutzbarkeit geht, ist 'Ästhetik' eher eine schlechte Ausrede.>>>> Nutzbarkeit ist das Schlüsselwort, dass man hier in die Köpfe>> implementiert, damit die Arbeitsklaven gut funktionieren. Aesthetic soll>> da natürlich nicht vorkommen, das stört bei dem Thema Endcharakter der>> Arbeit, schon mal gehört?>> Falsches Forum, du suchst:> https://kpf.die-linke.de/start/
Ein Brauner, der seine niedrige Gesinnung bereits im Nick ankündigt.
Vermutlich einer der Lieblinge der Ausbeuterklasse, weil er die
pawlowschen Reflexe des Kapitals so schön gelernt und verinnerlicht hat.
PS:
So was passiert halt, wenn man Programmieren nicht als bloßes Handwerk
versteht, sondern als 'Kunst' mit der der 'Künstler' seinen Anspruch als
'Geschenk Gottes an die Menschheit' belegen will ...
MaWin schrieb:> digitalWrite(dataPin, val & 0x01), val >>= 1;>> könnte auch>> val >>= 1, digitalWrite(dataPin, val & 0x01);
Nein, der Komma-Operator stellt einen Sequence-Point dar (s. Abschnitt
6.5.17 in ISO/IEC 9899:2017).
Da hier ansonsten nur noch mit Dreck herumgeschmissen wird, dürfte das
Thread-Thema zur Genüge ausdiskutiert sein.