Der Code-Schnippsel-Thread
-
-
-
Eine App-Übersicht auf Android als CSV bauen:
Externer Inhalt gist.github.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.(Beispiel)
-
Bash
Alles anzeigen#!/bin/bash BASEDIR="$(dirname "$(realpath "$0")")" ############################################################################## # path to text file with line separted list of feed urls FEED_FILE="${BASEDIR}/feeds.txt" # path to folder where the downloaded files are stored DOWNLOAD_DIR="${BASEDIR}/PODCASTS" # maximum number of files to download from a feed MAX_FILES=5 ############################################################################## LOG_FILE="${DOWNLOAD_DIR}/podcasts.m3u" BAD_CHARS="!#$^&=+{}[]:;\"\\'<>?|" CURL_ARGS="--location --continue-at - --progress-bar" ############################################################################## function parse_feed { xsltproc - "$1" <<< '<?xml version="1.0"?> <stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform"> <output method="text"/> <template match="/"> <apply-templates select="/rss/channel/item/enclosure"/> </template> <template match="enclosure"> <value-of select="@url"/><text> </text> </template> </stylesheet>' } function filename_from_url { basename "$1" | cut -d'?' -f1 | tr "$BAD_CHARS" "-" } function prepend_to_logfile { local tmp_logfile=$(mktemp "${LOG_FILE}.XXXXX") trap 'rm "$tmp_logfile"' INT TERM EXIT echo "$1" | cat - "$LOG_FILE" > "$tmp_logfile" mv "$tmp_logfile" "$LOG_FILE" trap - INT TERM EXIT } ############################################################################## : >> "${LOG_FILE}" while read feed ; do echo "Parsing feed: $feed" parse_feed "$feed" | head -$MAX_FILES | while read item ; do filename=$(filename_from_url "$item") filepath="${DOWNLOAD_DIR}/$filename" grep -q -F "$filename" "$LOG_FILE" && continue 2 echo "Downloading \"${filename}\"..." curl $CURL_ARGS -o "$filepath" "$item" || break 2 prepend_to_logfile "$filename" done done <"$FEED_FILE"bash Podcast-Client auf unter 100 Zeilen. Inspiriert von bashpodder, funktioniert jedoch leicht anders, meinem Workflow entsprechend.
Grundannahme ist dass jeder Feed seine Podcasts nach Erscheinungsdatum sortiert (neuste zuerst). Das Skript arbeitet dann den Feed von oben nach unten ab und prüft ob die aktuelle Datei in der "podcasts.m3u" existiert. Falls nicht wird die Episode runtergeladen und in die Playlist aufgenommen; ansonsten wird zum nächsten Feed gegangen.
-
Python
Alles anzeigen#!/usr/bin/python def aussprechen(zahl): klein = ['null', 'eins', 'zwei', 'drei', 'vier', 'fünf', 'sechs', 'sieben', 'acht', 'neun', 'zehn', 'elf', 'zwölf', 'dreizehn', 'vierzehn', 'fünfzehn', 'sechzehn', 'siebzehn', 'achtzehn', 'neunzehn'] einer = klein[0:10] einer[1] = 'ein' zehner = [None, klein[10], 'zwanzig', 'dreißig', 'vierzig', 'fünfzig', 'sechzig', 'siebzig', 'achtzig', 'neunzig'] if 0 <= zahl < 20: return klein[zahl] elif 20 <= zahl < 100: erg = zehner[zahl // 10] if zahl % 10: erg = einer[zahl % 10] + 'und' + erg return erg else: raise NotImplementedError ist_das_richtig = "Commodore 64" zahlen = [int(s) for s in ist_das_richtig.split() if s.isdigit()] print('Ja, {}.'.format(aussprechen(zahlen[0]))) wenn_man_das_durch_zwei_teilt = zahlen[0] // 2 print('Das ist {}.'.format(aussprechen(wenn_man_das_durch_zwei_teilt))) und_wenn_man_das_umdreht = int(str(wenn_man_das_durch_zwei_teilt)[::-1]) print('Dann ist das {}!'.format(aussprechen(und_wenn_man_das_umdreht).upper()))Fze mboplbkifze cfkab gx Dbyroqpqxdp-Qeobxap kfzeq pl moxii.
-
Python
Alles anzeigen#!/usr/bin/python def aussprechen(zahl): klein = ['null', 'eins', 'zwei', 'drei', 'vier', 'fünf', 'sechs', 'sieben', 'acht', 'neun', 'zehn', 'elf', 'zwölf', 'dreizehn', 'vierzehn', 'fünfzehn', 'sechzehn', 'siebzehn', 'achtzehn', 'neunzehn'] einer = klein[0:10] einer[1] = 'ein' zehner = [None, klein[10], 'zwanzig', 'dreißig', 'vierzig', 'fünfzig', 'sechzig', 'siebzig', 'achtzig', 'neunzig'] if 0 <= zahl < 20: return klein[zahl] elif 20 <= zahl < 100: erg = zehner[zahl // 10] if zahl % 10: erg = einermod[zahl % 10] + 'und' + erg return erg else: raise NotImplementedError ist_das_richtig = "Commodore 64" zahlen = [int(s) for s in ist_das_richtig.split() if s.isdigit()] print('Ja, {}.'.format(aussprechen(zahlen[0]))) wenn_man_das_durch_zwei_teilt = zahlen[0] // 2 print('Das ist {}.'.format(aussprechen(wenn_man_das_durch_zwei_teilt))) und_wenn_man_das_umdreht = int(str(wenn_man_das_durch_zwei_teilt)[::-1]) print('Dann ist das {}!'.format(aussprechen(und_wenn_man_das_umdreht).upper()))Fze mboplbkifze cfkab gx Dbyroqpqxdp-Qeobxap kfzeq pl moxii.
Traceback (most recent call last):
File "/tmp/asdf.py", line 24, in <module>
print('Ja, {}.'.format(aussprechen(zahlen[0])))
File "/tmp/asdf.py", line 17, in aussprechen
erg = einermod[zahl % 10] + 'und' + erg
NameError: global name 'einermod' is not defined -
NameError: global name 'einermod' is not definedDas kommt davon, wenn man Änderungen in letzter Sekunde am Beitrag macht. Repariert.
-
Da ich Python überhaupt nicht blicke und wohl die ganzen Hardware-Nerds nur C oder Python können und nur die hippen Webdesign Schönlinge node.js geil finden, hab ich mal einen HD 44780 Treiber für node.js gefummelt: HD44780 LCD on a Raspberry Pi controlled by node.js with onoff and sleep.
Display wird im 4-bit-Modus angesteuert.
E (Pin 6) geht an GPIO8,
RS (Pin 4) an GPIO7
D4 (Pin 11) an GPIO25,
D5 (Pin 12) an GPIO24,
D6 (Pin 13) an GPIO23,
D7 (Pin 14) an GPIO18.Kann man aber im Javascript noch anpassen, wie man es gern selbst hätte.
-
Alles anzeigen
Da ich Python überhaupt nicht blicke und wohl die ganzen Hardware-Nerds nur C oder Python können und nur die hippen Webdesign Schönlinge node.js geil finden, hab ich mal einen HD 44780 Treiber für node.js gefummelt: HD44780 LCD on a Raspberry Pi controlled by node.js with onoff and sleep.Display wird im 4-bit-Modus angesteuert.
E (Pin 6) geht an GPIO8,
RS (Pin 4) an GPIO7
D4 (Pin 11) an GPIO25,
D5 (Pin 12) an GPIO24,
D6 (Pin 13) an GPIO23,
D7 (Pin 14) an GPIO18.Kann man aber im Javascript noch anpassen, wie man es gern selbst hätte.
warum sollte man sowas über javascript machen wollen?

ist javascript das neue java? lahm und zieht viel power -
Beim aus Spaß anne Freud' ein Retro Spiel cracken.....
Code
Alles anzeigen005EEEC0 50 PUSH EAX 005EEEC1 51 PUSH ECX 005EEEC2 52 PUSH EDX 005EEEC3 B8 97F48F00 MOV EAX,OFFSET 008FF497 005EEEC8 B9 FFE78F00 MOV ECX,OFFSET 008FE7FF 005EEECD 40 INC EAX 005EEECE 41 INC ECX 005EEECF 8A10 MOV DL,BYTE PTR DS:[EAX] 005EEED1 8811 MOV BYTE PTR DS:[ECX],DL 005EEED3 08D2 OR DL,DL 005EEED5 ^ 75 F6 JNE SHORT 005EEECD 005EEED7 C601 5C MOV BYTE PTR DS:[ECX],5C ; \ 005EEEDA 41 INC ECX 005EEEDB C601 44 MOV BYTE PTR DS:[ECX],44 ; D 005EEEDE 41 INC ECX 005EEEDF C601 61 MOV BYTE PTR DS:[ECX],61 ; A 005EEEE2 41 INC ECX 005EEEE3 C601 74 MOV BYTE PTR DS:[ECX],74 ; T 005EEEE6 41 INC ECX 005EEEE7 C601 61 MOV BYTE PTR DS:[ECX],61 ; A 005EEEEA 41 INC ECX 005EEEEB C601 00 MOV BYTE PTR DS:[ECX],0 005EEEEE 5A POP EDX 005EEEEF 59 POP ECX 005EEEF0 58 POP EAX 005EEEF1 68 04010000 PUSH 104 005EEEF6 68 00E88F00 PUSH OFFSET 008FE800 005EEEFB 68 9DF58F00 PUSH OFFSET 008FF59D 005EEF00 E8 5ba7FBFF CALL 005A8820 005EE0C5 ^\E9 23A5EDFF JMP 004C85EDLeider am Ende doch nutzlos, weil nicht nötig.
-
warum sollte man sowas über javascript machen wollen?

ist javascript das neue java? lahm und zieht viel powerJo, das stimmt schon, aber für meine Box hier und was ich vor hab ist das perfekt.
-
Javascript ist doch nicht lahmer als Python, im Gegenteil. Und nicht-performance kritischen Code in C zu schreiben halte ich, obwohl ich Fan von C bin und es momentan regelmässig programmiere, für eine schlechte Idee. Dazu gibt es zu viele Dinge die man in C richtig fies falsch machen kann.
-
Dazu gibt es zu viele Dinge die man in C richtig fies falsch machen kann.Amen
-
Javascript ist doch nicht lahmer als Python, im Gegenteil. Und nicht-performance kritischen Code in C zu schreiben halte ich, obwohl ich Fan von C bin und es momentan regelmässig programmiere, für eine schlechte Idee. Dazu gibt es zu viele Dinge die man in C richtig fies falsch machen kann.Was gibt es denn da an sinnvollen Alternativen mit C-Syntax (über Pascal reg ich mich ja dauernd auf), die keine solche Fallen haben? Und wehe du sagst Java

-
Pascal is doch ne schöne Sprache?!

-
Pascal is doch ne schöne Sprache?!
Pascal ist totaler Krieg. Will die ganze Zeit C-Zeugs machen, z.B. Strings in doppelte Gänsefüßle setzen, oder if foo == bar oder foo != bar, so Zeugs.
-
Dann hast du's nicht verdient, Pascal zu nutzen!

-
Was gibt es denn da an sinnvollen Alternativen mit C-Syntax
php
-
Was gibt es denn da an sinnvollen Alternativen mit C-Syntax (über Pascal reg ich mich ja dauernd auf), die keine solche Fallen haben? Und wehe du sagst Java
Go(srsly kein Plan von der Sprache aber hat C-like Syntax)
-
-
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!