Scripting Contest

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 01.06.2019 21:06:03

Nein! Ich verrate es. Ich habe einen RegEx dafür: ^.{8,16}$

Code: Alles auswählen

grep -E "^.{8,16}$"
Oder wenn man die Zeichenanzahl wissen will:

Code: Alles auswählen

awk '/^.{8,16}$/ {printf("%d\t%s", length($0), $0)}'
Nun dürfen bessere Lösungen mit Begründung veröffentlicht werden. Oder meine kritisiert^^

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Scripting Contest

Beitrag von eggy » 02.06.2019 07:58:29

@inne: die Idee hinter der Woche Wartezeit ist, dass Leute sich unabhängig von einander Gedanken machen und daher auf völlig unterschiedliche Ansätze kommen, statt dem sonst üblichen "gute Lösung, aber das lässt sich noch optimieren". Für helft-mal-schnell haben wir ja noch den Rest vom Forum :mrgreen:

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 02.06.2019 15:17:37

Du hast rechts eggy! Nun habe ich vorgelegt und Ihr müsst nachlegen. Wobei ich auch vergessen habe die Kriterien für den Sieg mit anzugeben, Schnelligkeit oder möglichst kurzer/unlesbarer Quellcode.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Scripting Contest

Beitrag von ThorstenS » 03.06.2019 16:24:56

nicht besonders kurz, dafür aber sehr gut lesbar:

Code: Alles auswählen

awk 'length > 7 && length <17' $DATEI
Und die obligatorische Verbesserung bzgl. kürzerer Schreibweise:

Code: Alles auswählen

egrep "^.{8,16}$" $DATEI

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 03.06.2019 17:40:29

ThorstenS hat geschrieben: ↑ zum Beitrag ↑
03.06.2019 16:24:56
Und die obligatorische Verbesserung bzgl. kürzerer Schreibweise:

Code: Alles auswählen

egrep "^.{8,16}$" $DATEI
Das egrep wird es aber wohl bald nicht mehr gegeben (zumindest in Debian)?

Benutzeravatar
TRex
Moderator
Beiträge: 8068
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Scripting Contest

Beitrag von TRex » 03.06.2019 17:53:23

dann eben grep -e?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Scripting Contest

Beitrag von eggy » 13.12.2019 06:48:12

Inspiriert durch ottonormal viewtopic.php?f=15&t=175788
Erzeuge ein PDF aus den dort eingescannten Doppelseiten, bei dem im PDF dann die Seiten richtig sortiert sind.
Klingt auf den ersten Blick nicht so komplex, aber mir fallen auf den ersten Blick bereits drei mögliche Lösungsansätze ein und ich bin sicher, dass einer von Euch was schöneres baut :mrgreen:
Deadline wäre von mir aus Sonntagabend 20:00h, falls jemand mitmachen will und mehr Zeit will, gerne auch später.

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 03.02.2021 10:51:03

Hallo Zusammen,

angeregt durch die Diskussion hier:
viewtopic.php?f=15&t=180104
der daraus entstandenen "Scriptaufgabe" von eggy hier:
viewtopic.php?f=15&t=180104#p1262803,
und den Kommentaren anderer Teilnehmer:
Meillo hat geschrieben: ↑ zum Beitrag ↑
27.01.2021 12:12:17
Bitte einen Scripting-Contest starten! Ich bin auch dabei. :-)
starte ich hier mal den Versuch den Scripting Contest wieder zu beleben.

Die Aufgabenstellung von eggy:
ich hatte zuletzt die Situation, dass völlig überraschend einfach mal so der Jahreswechsel stattfand und ich, wie jedes Jahr, keinen aktuellen Papierkalender hatte. Das Problemchen (A4 landscape, 2x7 Felder pro Seite (mo-so), Datum incl. Wochentag, Kennzeichnung von Feiertagen (Bundesland abhängig) sowie Angabe der KW) ist inzwischen gelöst: Script macht Kalender-PDF. Mein Ansatz ist etwas, aka "mehr als", chaotisch und das Ergebnis noch weit davon entfernt perfekt zu sein. Mir reicht das jedoch so und wahrscheinlich werd ich frühestens 2022 wieder daran rumbasteln. Vermutlich dann, wenn ich, schon wieder, von nem plötzlich vor der Tür stehenenden Januar überrascht werde.
Ich hatte gehofft, dass es nen Generator gibt, wo man einfach den gewünschten Zeitraum und das Layout angibt, vielleicht noch ein zwei Farben dazunimmt, die Feiertage auswählt und ne Druckdatei rausfällt. Und hatte, bevor ich angefangen habe das Script zu erstellen, mal gesucht, was es an schönen Vorlagen gibt und nichts passendes gefunden. Keine Ahnung, ob ich falsch gesucht hab, meine Ansprüche zu ungewöhnlich sind oder wirklich niemand mehr schöne funktionale Papierkalender braucht (ok, schön ist meiner nun auch nicht geworden, funktioniert aber).
Es gibt ne Menge Ansätze wie man das Problemchen noch anders lösen könnte, von daher wäre das schon etwas wo sicherlich kreative und sehr unterschiedliche Lösungen bei entstehen, nur ist es vermutlich auch zu umfangreich für nen kleinen bis-zum-Wochenendeende-Scriptingcontest.
Da eggy und meine Wenigkeit schon "ein wenig" Vorsprung haben koennen wir den "Abgabetermin" auch gerne um einiges verlängern. (Vorschlaege sehr willkommen...)

In der Hoffnung um rege Teilnahme,
heinz

Benutzeravatar
heisenberg
Beiträge: 3530
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von heisenberg » 03.02.2021 16:06:01

Könnt Ihr nicht pro Scripting Contest Aufgabe einen neuen Thread aufmachen? Ich finde diese Mega-Threads ziehmlich unangenehm zum nachvollziehen; d. h. da zig Unterseiten durchblättern zu müssen.

Also konkret bitte eine Thread aufmachen z. B. mit dem Titel:

Scripting Contest - Kalender zum Drucken
Jede Rohheit hat ihren Ursprung in einer Schwäche.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Scripting Contest

Beitrag von eggy » 03.02.2021 16:26:43

Für den "endlos" Thread spricht: man abonniert den einmal und verpasst so keinen neuen tollen Contest, alles bleibt hübsch zusammen. (Eintragen im Wiki hat aufgrund mangelndes Interesses ja nicht funktioniert.)

@heisenberg: klick einfach auf die letzte Zahl der Seitenangaben

Benutzeravatar
heisenberg
Beiträge: 3530
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von heisenberg » 03.02.2021 17:07:16

eggy hat geschrieben: ↑ zum Beitrag ↑
03.02.2021 16:26:43
Für den "endlos" Thread spricht: man abonniert den einmal und verpasst so keinen neuen tollen Contest, alles bleibt hübsch zusammen. (Eintragen im Wiki hat aufgrund mangelndes Interesses ja nicht funktioniert.)
Ja. Das mit dem Abonnieren und informiert werden ist tatsächlich ein brauchbarer Vorteil. Wiki-Eintrag ist wohl Zusatzarbeit, die sich niemand machen möchte.
@heisenberg: klick einfach auf die letzte Zahl der Seitenangaben
Das es verschiedene Seiten gibt, dass weiss ich. Ich hatte es aber schon öfters gehabt, dass ich etwas gesucht habe und wusste gerade nochmal so den Threadtitel. Wenn dann in der Suche so ein 30 Seiten-Monster als Ergebnis auftaucht, dann muss ich evtl. sehr lange und viel lesen, wenn ich die passenden Suchbegriffe nicht mehr parat habe - das kostet viel Zeit.

Vorschlag(freibleibend): Wie wäre es, wenn es einen Master Thread gibt, in den man einen Link auf den jeweiligen Script-Contest verlinkt. Dann bekommt jeder Abonennt des Hauptthreads auch eine Benachrichtigung?
Jede Rohheit hat ihren Ursprung in einer Schwäche.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Scripting Contest

Beitrag von eggy » 03.02.2021 19:11:48

@heisenberg: deswegen der Wikiartikel
https://wiki.debianforum.de/Scripting_Contest
und schau mal in die Versionsgeschichte :)

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 07.02.2021 10:17:39

Hier tut sich wohl nichts mehr.
Schade... :(

Liegt es am Thema Kalender, welches im Zeitalter der Smartphones und Computer uninteressant ist?
Liegt es an der Zeit, weil kaum noch jemand welche hat?
Liegt es daran, dass eggy und ich schon einen Vorsprung hatten?
Liegt es daran, weil das hier als "endlos" Thread empfunden wird?
Oder ist das Thema Kalender zu aufwendig fuer einen Scripting Contest?

Fragen ueber fragen...

Naja, vlt. beim Naechsten mal...

Gruss,
heinz

Benutzeravatar
TRex
Moderator
Beiträge: 8068
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Scripting Contest

Beitrag von TRex » 07.02.2021 22:00:27

Würde dir eine Stichprobe helfen?

1. benötige ich keinen Kalender. Zumindest keinen physischen. Die Arbeitswelt erinnert mich auch an Feiertage und mein Privatleben ist (zur Not mithilfe des Whiteboards hier) überschaubar.
2. ist mir das Thema ohne eigenen Mehrwert zuviel Aufwand.
3. hab ich das Gefühl, dass das auf latex als sinnvollste Lösung rausläuft, und dem geh ich lieber aus dem Weg (ohne das jetzt diskutieren zu wollen - ich zeig da einfach auf 2. ).

Die Threadgröße und ob jemand anderes schon was hat, ist mir völlig egal. Und Zeit ist was, das man für spaßige Dinge gerne investiert, sofern man welche nach nicht vermeidbaren anderen Dingen (Arbeit, Kinder, sonstiges) noch welche hat. Ich würds einfach nicht so schwer nehmen, dass das eine Thema keinen Anklang findet. Ich würde mich weiterhin auch nicht querstellen, wenn du nen weiteren Thread aufmachen willst (mit nem konkreten Contest im Titel). Sorgt auf jeden Fall für mehr Sichtbarkeit. Ne Garantie für mehr Beteiligung ists aber nicht ;)
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 07.02.2021 22:40:44

@TRex
Vielen lieben Dank fuer Deine Einschaetzung und die aufmunternden Worte...
Ist halt immer schwierig, wenn man sich fuer etwas begeistert und sich so "garniemand" dafuer interessiert... :)
TRex hat geschrieben: ↑ zum Beitrag ↑
07.02.2021 22:00:27
Ich würde mich weiterhin auch nicht querstellen, wenn du nen weiteren Thread aufmachen willst......
Nee, passt schon. Ich hatte Spass am Coden und war beschaeftigt.
Das ist es ja was eggy im Ursprungs-Post erreichen wollte. :mrgreen:

Gruss,
heinz

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 08.02.2021 19:19:47

Wann ist nochmal Stichtag? Ich würde auch eine "Lösung" anmelden wollen :arrow: :mrgreen:

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 08.02.2021 19:47:39

Hey wow,

vlt. wirds ja doch noch was... :D
inne hat geschrieben: ↑ zum Beitrag ↑
08.02.2021 19:19:47
Wann ist nochmal Stichtag?
Keine Ahnung... Aber da bis jetzt alle die mitmachen wollen wohl schon eine fertige Loesung haben, koennten wir es zeitnah machen...
Oder wir warten noch, vlt. findet der ein oder andere ja doch noch gefallen an der Idee.

Wie waehre es mit Sonntag der 14'te, so gegen 18:00 Uhr?
Was meint Ihr? Wann habt Ihr Zeit?

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 08.02.2021 19:56:39

heinz hat geschrieben: ↑ zum Beitrag ↑
08.02.2021 19:47:39
Wie waehre es mit Sonntag der 14'te, so gegen 18:00 Uhr?
Ja, wenn keiner bis dahin etwas anderes sagt!

Eine nächste Aufgabe habe ich dann auch für euch/uns :-)

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 14.02.2021 13:23:34

Wer nur immer sporadisch mal einen Kalender braucht und ausdrucken will. Also immer von Heute und für die nächsten 30 Tage, um das Papier auszunutzen. Man hat so die Feiertage usw. aus calender(1). Das wäre eher meine Lösung wie ich einen Kalender brauche :-)
Vlt. mag das noch wer Aufgreifen.

Dabei ist mir aufgefallen, das cal kennt den Schalter -h nicht, obwohl in der Manpage erwähnt. Das ncal schon.

Code: Alles auswählen

#!/usr/bin/env bash
# calprint.bash | lp

tmp="$(mktemp)"

trap "rm -f -- $tmp.txt $tmp.pdf" SIGTERM SIGINT

_gencal() {
ncal -h -A 2
echo
echo -en {0..30}\\n | while read; do
	local d="today + $REPLY days"
	local cal=/usr/share/calendar/calendar.german
	calendar -A 0 -t $(date --date "$d" +"%y%m%d") -f $cal | grep \*
	# TODO Schraffierung nur bis zum Zeilenende?
	date --date "$d" +"%a %d. %b: __________, __________, __________, __________, __________."
!
done # | column -s "."
echo
}

# auskommentieren, um mit libreoffice weiterzumachen...
_gencal; exit

libreoffice --pt "$PRINTER" "$tmp.txt"

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 14.02.2021 16:51:02

Hallo Zusammen,

nach der sehr kompakten Vorlage von inne, traue ich mich kaum mein Script loszulassen... :oops:

Trotzdem, hier ist mein "Codemonster", um Kalender zu erstellen.
Es ist viel umfangreicher geworden als urspruenglich geplant und es erfuellt auch leider nicht alle urspruenglichen Anforderungen von eggy:
z.B. Zwei Wochen auf einer Seite.
Es kommt ein Monat auf eine Seite, die je nach eingestellter Tagesgroesse auch ziemlich gross werden kann...
Das Aussehen kann in grossen Teilen angepasst werden.

Das Script verwendet ein paar Tools von ImageMagic >convert, montage und identify< um den Kalender zu erstellen.

Es ist vorgesehen, das Sie sich ein Monats-Bild Ihrer Wahl in jedes Kalenderblatt einfuegen lassen koennen.
Diese Bilder sind optional. (Siehe: >Zusaetzliche Bilder auf jedem Kalenderblatt:< in der Anleitung.)


Es besteht aus 2-5 Dateien:
1. Das eigentliche Script. NoPaste-Eintrag41269
(Speichern als >kal.sh<)

2. Die Anleitung. NoPaste-Eintrag41270
(Speichern als >anleitung.txt<)

3. Die Farbeinstellungen fuer die Oberflaeche. (Optional, das Script hat sonst das Standardaussehen von dialog.) NoPaste-Eintrag41242
(Speichern als >dialogrc<)

4. Eine Feiertagsliste fuer BaWue. (Optional, kann man auch selbst Erstellen oder ganz weglassen.) NoPaste-Eintrag41272
(Speichern als >feiertagliste.txt<)

5. Die Kalender einstellungen. (Optional, kann man auch aus dem Script erstellen lassen.) NoPaste-Eintrag41271
(Speichern als >einstellungen.txt<)


Meine Empfehlung:
Alle Dateien in einem eigenen Verzeichnis ablegen.
So sind alle Daten, die das Script anlegt/benoetigt (Einstellungen, Feiertage, Farbeinstellungen und Anleitung) an einer Stelle versammelt.
Wenn man es von ueberall her nutzen moechte, einfach einen symbolischen Link in >~/bin< legen.


Starten mit:
kal.sh [JAHR] (JAHR = Jahreszahl (4-Stellig) z.B. 2021.)

Optionen:
----------
kal.sh = Startet das Menue.
kal.sh JAHR = Startet das Menue und setzt das Jahr.
kal.sh -e JAHR = Erstelle Kalender fuer das angegebene Jahr ohne das Menue zu nutzen.
kal.sh --fonts = Erzeugt im aktuellen Verzeichnis eine Datei in der alle verwendbaren Fonts aufgefistet sind. (fonts.png)
kal.sh --help = Diese Kurzhilfe.


Gruss,
heinz

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 14.02.2021 18:12:46

@inne

Hey klasse, calendar und das Verzeichnis /usr/share/calendar/ kannte ich noch nicht.
Wieder was gelernt, Danke!

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 14.02.2021 19:06:31

WAAAAAHHHHHH...
Unglaublich! Die Begeisterungsstuerme ueber diese Thema scheinen kein Ende zu nehmen...

Etwas geknickte Gruesse,
heinz :cry:

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 15.02.2021 08:22:43

Ich hätte eine neue Aufgabe

Fibonacci-Folge

Dazu kam neulich eine Doku, wie oft Zahlen aus der Fibonacci-Folge doch in der Natur vorkommen, wie auch der Goldene Schnitt und am WE kam auch The Da Vinci Code in TV.

Aufgabe: Berechnen der Fibonacci-Folge bis zu einem vom User gegebenen Wert.
Schreibe ein Skript das die Fibonacci-Folge bis zu einem vom Benutzer angebenden Wert berechnet und prüfe ob der Wert eine Fibonacci-Zahl ist.
Rückgabewert soll 0 bei ja und nicht 0 bei nein sein.

Zusatzaufgabe: Finde eine Klasse von Objekten deren Anzahl eine Fibonacci-Zahl ist. Schummle dabei nicht ;-)

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Scripting Contest

Beitrag von heinz » 15.02.2021 10:53:43

inne hat geschrieben: ↑ zum Beitrag ↑
15.02.2021 08:22:43
Ich hätte eine neue Aufgabe
Fibonacci-Folge
Super, klingt sehr interessant.
Ich hoffe es ueberfordert meine geringen Mathekenntnisse nicht... :oops:
inne hat geschrieben: ↑ zum Beitrag ↑
15.02.2021 08:22:43
und prüfe ob der Wert eine Fibonacci-Zahl ist.
Oha, geht schon los...
Wie prueft man das denn?
inne hat geschrieben: ↑ zum Beitrag ↑
15.02.2021 08:22:43
Finde eine Klasse von Objekten deren Anzahl eine Fibonacci-Zahl ist. Schummle dabei nicht ;-)
Ist Schummeln schon "sich im Netz darueber informieren"?
Dann wird es fuer mich sehr schwer... (Die Fibonacci-Zahlen bekomm ich noch hin aber der Test... Hmmm...)

Wann ist Abgabetermin? Naechster Sonntag 21-02-2021?

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scripting Contest

Beitrag von inne » 15.02.2021 11:05:53

Stimmt, ich habe nicht erklärt was die Fibonacci-Folge ist. Hintergrund findet man in der Wikipedia. Kurzum: Die Folge beginnt immer mit 0, 1 und wird dann fortgesetzt in dem man aus den letzten zwei Ziffern der Folge die Summe bildet. Also 0 + 1 = 1, dann 1 + 1 = 2, dann 1 + 2 = 3, dann 2 + 3 = 5, dann 3 + 5 = 8 usw. Das ganze hat keinen tieferen Sinn und ist wohl einfach ein Mathematische Spielerei.

Schummeln bezog sich nur auf die Zusatzaufgabe :-)

Gewinner dieser Aufgabe könnte sein, wessen Skript die höchste Zahl/längste Folge berechne kann?
Zuletzt geändert von inne am 15.02.2021 11:28:15, insgesamt 1-mal geändert.

Antworten