Scripting Contest

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von r4pt0r » 05.12.2015 13:41:35

Meillo hat geschrieben:
Gesucht ist also ein Programm/Script, das eine beliebige natürliche Zahl in Binärform darstellt.
Na, sagen wir lieber mal: Eine natuerliche Zahl kleiner 2^15. ;-) (Das erlaubt naemlich auch Implementierungen mit 16-bit signed int ... fuer die Kleinlichen.)
Wer das ganze auf nem 8bit AVR lösen will darf natürlich auch auf kleinere Zahlen gehen ;)
Also einfach: signed int der verwendeten Architektur.

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

Re: Scripting Contest

Beitrag von heisenberg » 06.12.2015 16:53:40

Zu einer Aufgabe wäre noch gut auch ein Abgabezeit zu haben.

Also:
  1. Klare Aufgabenbeschreibung
  2. Ggf. Testdaten
  3. Zeitpunkt der Auflösung/Veröffentlichung
----

Ich habe es mal mit Haskell versucht. Das habe ich leider nicht hinbekommen. Deswegen habe ich's dann nochmal mit PHP funktional+rekursiv umgesetzt.

Code: Alles auswählen

<?PHP 
        # Berechnung
        function d2b($x) {return(($x<2)?"$x":d2b(floor($x/2)).($x%2));}  

        # Ausgabe
        print((count($argv)>1)?d2b($argv[1]):"Kein Parameter angegeben!");
?>
So, jetzt noch mal etwas entzerrt:

Code: Alles auswählen

<?PHP
        # Berechnung
        function d2b($x) {
            return (
                        ($x<2)                                     
                             ?"$x"                          # dez 0 -> bin 0; dez 1 -> bin 1 
                             : d2b(floor($x/2)) . ($x%2));  # Alles ws grösser ist: Modulo 2 ergibt die aktuelle
                                                            # Stelle, Rest wird nach vorne hin aufgefüllt
         } 

        # Ausgabe der Binärzahl oder Fehlermeldung wenn kein Parameter angegeben wurde.
        print((count($argv)>1)?d2b($argv[1]):"Kein Parameter angegeben!");
?>
Zuletzt geändert von heisenberg am 06.12.2015 22:22:32, insgesamt 3-mal geändert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: Scripting Contest

Beitrag von MoonKid » 06.12.2015 20:42:59

Aufgabe:
  • Häufigkeit aller vorkommenden Wörter in einem Text zählen
  • auszuschließende Wörter festlegbar (z.B. 'und', 'and', 'for')
  • absteigend sortiert darstellen
  • für Menschen lesbarer und wartbarer und somit für mäßig technikaffiene Menschen überprüfbarer Code
  • Effizienz ist hier definitiv kein Kriterium und ist Benutzbarkeit und Überprüfbarkeit untergeordnet
Besonders letzter Punkt bedeutet, das RegEx, sed und ähnlich kryptische Lösungen nicht zählen. Ja ich bin hier im Debian-Forum und erwarte schon den shitstorm.
Denkt euch folgendes Szenario: obiger Code ist Bestandteil eines Selektionsverfahrens in einer wissenschaftlichen Studie. Der Prozess muss daher für viele verschiedenen Leute (andere Wissenschaftler, Geldgeber, Nutzer, Reviewer) mit sehr unterschiedlichen IT-fachlichen Niveaus überprüfbar bleiben. Das bedeutet nicht, dass jeder dieser Menschen den Code lesen können muss. Aber er soll nicht in den Keller seiens Instituts steigen müssen, um einen Nerd/Admin (der wiederum keinen Bezug zur Studie und ihren Anforderungen hat) zu finden, der den Code versteht.

Mit Python3 ist das schnelle machbar.
Aber mein Gedanke ist eigentlich, dass es sowas doch schon geben muss.

Bisherige Lösungen, die ich finden konnte, zielen aber auf Word oder die Bash-Komponenten und bieten auf die Schnelle (Code-Verständnis!) keine Möglichkeit der Erweiterung (z.B. Punkt 2 oben).
Zuletzt geändert von MoonKid am 07.12.2015 17:24:16, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: Scripting Contest

Beitrag von DeletedUserReAsG » 06.12.2015 21:53:07

Besonders letzter Punkt bedeutet, das RegEx, sed und ähnlich kryptische Lösungen nicht zählen. Ja ich bin hier im Debian-Forum und erwarte schon den shitstorm.
Naja, nicht direkt Shitstorm, aber: genannte Sachen sind nicht automatisch kryptisch, andere sind nicht automatisch DAU-lesbar. Und Effizienz kann durchaus auch ein positives Kriterium sein (wo Python dann naturgemäß verlieren würde). Nein, das scheint mir alles nicht recht durchdacht.

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

Re: Scripting Contest

Beitrag von heisenberg » 06.12.2015 22:05:03

Ich würde jetzt auch Mal sagen, dass vor allem Wissenschaftler sich üblicherweise zumindest ein Basislevel an Scripting aneignen, da wissenschaftliche Arbeiten vermehrt auch mit Testreihen und deren Auswertung also Zahlen und Statistiken zu tun haben. Dafür sind Scripting und Textanalysetools(Perl, sed, awk, Regex,....) sehr hilfreich.

Aber ich bin schon gespannt auf Deine Python3-Lösung und ob ich da als alter Kellernerd noch etwas lernen kann.
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 » 07.12.2015 07:06:17

Mit sed/tr Wortweise zerlegen, sortieren und zählen mit uniq -c und rauswerfen was man nicht haben will mit

Code: Alles auswählen

 grep -v -w  "and\|or\|for" 
Gibt nen hübschen kleinen Einzeiler, ich seh beim besten Willen nicht, was daran unwartbar sein soll
(ausser Konkurenz gepostet, sonst hätt ich dafür ja extra bis zum Wochenende warten müssen ;))

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Scripting Contest

Beitrag von Meillo » 07.12.2015 09:59:37

Haben wir hier denn nun Regeln oder nicht?

Entweder wir spielen diesen Scripting-Contest nach einem gemeinsam vereinbarten Schema oder jeder macht was er will. Ich kann mit beidem leben, ich wuerde nur gerne wissen welcher Art wir vorgehen, damit ich mich nicht umsonst bemuehen muss.
Use ed once in a while!

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

Re: Scripting Contest

Beitrag von eggy » 07.12.2015 13:38:41

@Meilo: Die Frage ist doch viel eher ne ganz normale Frage fürs Forum als was für "hier". Wenn man sagt, "löst es für mich, aber benutzt blos nicht all die coolen Dinge" hat das doch nichts mehr mit dem eigentlichen Grund des Scriptingcontestes zu tun.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von r4pt0r » 07.12.2015 14:24:07

Huch, gehts schon weiter? Ich dachte Mittwoch wäre die Deadline gewesen...

Hier noch meine beiden Lösungen - "leider" ebenfalls beide funktional/rekursiv, jeweils als komplettes ausführbares script.
Assembler erschien mir dann doch irgendwie sinnfrei - ins Register schieben und dann bitweise/binär wieder auslesen :roll:

Scala:

Code: Alles auswählen

#!/usr/bin/env/ scala

def binary(n: Int): String = { if ( n <= 1 ) n.toString else binary((n/2).toInt).toString + (n%2).toString }
println(binary(args(0).toInt))
entzerrt:

Code: Alles auswählen

def binary(n: Int): String = { 
  if ( n <= 1 ) { n.toString }
  else { binary((n/2).toInt).toString + (n%2).toString }
}

Perl:

Code: Alles auswählen

#!/usr/bin/perl -w

use strict;
use warnings;
use 5.020;

sub binary {
  my ($n) = @_; 
  $n <= 1 ? return $n
          : return binary(int($n/2)).($n%2);
}
say binary(@ARGV);
Ich muss dazu sagen, dass mir trotz identischem Algorithmus der Perl-code besser gefällt und IMHO lesbarer ist als Scala, das ja eigentlich so viel klarer sein soll... Klar lässt sich der Scala-Code noch weiter auf mehrere Zeilen entzerren - das Java-Typisch grausige, endlose aneinanderreihen von Funktionen mit Punkten bleibt trotzdem, ebenso wie die notwendigen Typumwandlungen (toInt, toString) die Perl automatisch erledigt...
Ist mir aber die letzten ~10 Tage seit ich mich mit Scala befasse öfter aufgefallen: Vieles was da als revolutionär, neu und "hip" verkauft wird ist in Perl zumindest ähnlich und/oder oft in besserem (=besser lesbarem) Code machbar und ein alter Hut... Beispiel: anonyme Funktionen. Das den Java-Umsteigern als DIE Weltneuheit schlechthin Verkauft :roll:


@MoonKid: Das klingt irgenwie nach einer Auftragsarbeit!? Zudem: Wordcount/-sort ist eigentlich das "hello world" jeder Sprache die sich irgendwie mit "data science" verbunden fühlt bzw in jedem quickstart-manual für frameworks wie Apache Spark... Wenn dann auch noch alternative Lösungen (regex) ausgeschlossen werden bleiben nur noch langweilige/offensichtliche Lösungen z.B. in Scala das für alle Kriterien fertige Funktionen hat (map/flatMap, reduceByKey, count, sort). IMHO nicht wirklich eine Aufgabe für diesen Thread.
eggy hat geschrieben:@Meilo: Die Frage ist doch viel eher ne ganz normale Frage fürs Forum als was für "hier". Wenn man sagt, "löst es für mich, aber benutzt blos nicht all die coolen Dinge" hat das doch nichts mehr mit dem eigentlichen Grund des Scriptingcontestes zu tun.
So sehe ich das auch...

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Scripting Contest

Beitrag von Meillo » 07.12.2015 15:01:13

r4pt0r hat geschrieben:Huch, gehts schon weiter? Ich dachte Mittwoch wäre die Deadline gewesen...

Hier noch meine beiden Lösungen [...]
Seht ihr, genau das meinte ich! Es ist ein einziges Chaos. :-(
Use ed once in a while!

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

Re: Scripting Contest

Beitrag von heisenberg » 07.12.2015 15:17:22

Kann man da vielleicht irgendeine Wikiseite(weiss nicht ob das im Debian-Wiki passt) oder so etwas ähnliches schreiben, die jeder bearbeiten kann?

Da können wir dann ein paar Rahmenbedigungen festlegen.

Ideen:
  • Ideen für Aufgaben sammeln (Das passt zur Sammlung gut als Thread)
  • Generelles Zeitschema: Veröffentlichung der Aufgabenstellung jeweils Sonntags Abends 18:00 Uhr. Einreichung bis folgende Woche zur gleichen Zeit.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von r4pt0r » 07.12.2015 15:48:03

heisenberg hat geschrieben:Kann man da vielleicht irgendeine Wikiseite(weiss nicht ob das im Debian-Wiki passt) oder so etwas ähnliches schreiben, die jeder bearbeiten kann?

Da können wir dann ein paar Rahmenbedigungen festlegen.

Ideen:
  • Ideen für Aufgaben sammeln (Das passt zur Sammlung gut als Thread)
  • Generelles Zeitschema: Veröffentlichung der Aufgabenstellung jeweils Sonntags Abends 18:00 Uhr. Einreichung bis folgende Woche zur gleichen Zeit.

Evtl reicht schon (im ersten Beitrag) eine Erklärung mit "Musterbeitrag" für die Aufgabenstellung. Darin enthalten sind dann:
- Aufgabendefinition
- ggf Auswahlkriterien oder zusätzliches Ziel (z.B. minimale CPU-Zeit, Speicherverbrauch, Codezeilen...)
- Deadline (Abgabe und Auswahl)

Ansonsten schaden sicher auch ein paar Grundregeln, die für alle Aufgaben gelten, nicht, wenn man schon dabei ist:
- keine "Fragen" oder "Aufträge" ("wie löst man Problem X", "implementiere Y in Sprache Z" usw...)
- Lesbarkeit, Kommentare?
- Verwendung von Libraries, Modulen etc?

Eine Ideensammlung ist aber sicher auch interessant - wenn einem Gewinner nichts einfällt kann er davon wählen.

Ich glaube das ganze sollte man dann aber als frischen Thread anfangen - oder sogar für jede Aufgabe nen Neuen, damit auch später noch über Lösungen diskutiert werden kann? Dann nutzen wir diesen Thread einfach vollends für die erstellung des "Regelwerks" bzw des Muster-/Erstbeitrags für den neuen Thread

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von catdog2 » 07.12.2015 16:41:20

Klar lässt sich der Scala-Code noch weiter auf mehrere Zeilen entzerren - das Java-Typisch grausige, endlose aneinanderreihen von Funktionen mit Punkten bleibt trotzdem, ebenso wie die notwendigen Typumwandlungen (toInt, toString) die Perl automatisch erledigt...
Ist mir aber die letzten ~10 Tage seit ich mich mit Scala befasse öfter aufgefallen: Vieles was da als revolutionär, neu und "hip" verkauft wird ist in Perl zumindest ähnlich und/oder oft in besserem (=besser lesbarem) Code machbar und ein alter Hut... Beispiel: anonyme Funktionen. Das den Java-Umsteigern als DIE Weltneuheit schlechthin Verkauft :roll:
Beim scala code kann ich immerhin auch ohne scala zu können recht gut erahnen was er tut. Was z.B. bedeutet my ($n) = @_;
? Allerdings muss ich sagen so aus "dem Auge gefällig" Aspekten gefällt mir was ich bis jetzt an scala gesehen habe auch nicht so recht. Ansonsten: Automatisches, heuristisches Typecasting (wie ich es mal nennen würde) kommt direkt aus der Hölle. Und in python siehts nochmal schöner aus 8) :

Code: Alles auswählen

#!/usr/bin/env python3
import sys

def binary(n): return binary(n//2) + str(n % 2) if n > 0 else ''

print(binary(int(sys.argv[1])))
Am Schluss noch etwas schamlose Werbung weils ganz gut rein passt: https://ieee.uni-passau.de/advent
Vom Schwierigkeitsgrad sicher meist über dem was in diesem Thread kam aber vielleicht trotzdem interessant für den ein oder anderen.
Unix is user-friendly; it's just picky about who its friends are.

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

Re: Scripting Contest

Beitrag von heisenberg » 07.12.2015 16:58:53

Es gibt im Internet ja auch Programmieraufgaben zu Hauf. Als zusätzliche Info könnte man bei der Aufgabe noch die Info Schwierigkeitsgrad angeben.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

MoonKid
Beiträge: 513
Registriert: 12.03.2012 22:36:43

Re: Scripting Contest

Beitrag von MoonKid » 07.12.2015 17:37:06

Erstmal Danke an Alle für die Sachlichtkeit (*ernstmeint*).
r4pt0r hat geschrieben:@MoonKid: Das klingt irgenwie nach einer Auftragsarbeit!? Zudem: Wordcount/-sort ist eigentlich das "hello world" jeder Sprache die sich irgendwie mit "data science" verbunden fühlt bzw in jedem quickstart-manual für frameworks wie Apache Spark... Wenn dann auch noch alternative Lösungen (regex) ausgeschlossen werden bleiben nur noch langweilige/offensichtliche Lösungen z.B. in Scala das für alle Kriterien fertige Funktionen hat (map/flatMap, reduceByKey, count, sort). IMHO nicht wirklich eine Aufgabe für diesen Thread.
"Auftragsarbeit"? Meinst du ich habe den Auftrag bekomme, oder ich gebe ihn an euch? Beides stimmt nicht ganz.

Im Rahmen meiner derzeitigen Studie bastle ich ständig so kleine Python3-Scripte, die mir so kleine Aufgaben lösen. :D
Und immer denke ich: Ja mit der Bash geht das ja auch. Ich verstehe sed/tr, grep ausreichend gut, um einschätzen zu können, dass das sicher geht.
Und wie ihr selbst sagt, ist das eine mega banale Aufgabe. Ich dachte dafür gibt es eigentlich schon eine Lösung und ich erfinde das Rat nicht nochmal neu. Daher hatte ich hier eigentlich nicht auf Code, sondern auf ein "Das gibts doch schon!" gehofft.

Aber ich kenne meinen eigenen Bash-Kram. Hab hier selber Scripte am Laufen, die ich nach einer Woche schon selbst nicht mehr verstehe. Deswegen will ich nicht schon wieder die gleichen manpages und Handbücher lesen (die ich vorher auch schon gelesen, vergessen bzw. nie verinnerlicht habe) udn Code schreiben, den ich in einer Woche nicht mehr begreife - geschweige den, meine Kollegen.

IMO ist eine shell nicht für Menschen, sondern für Maschienen: Die Shell ist ein Raum, wo sich viele nette kleiner Prozesse (jeweils mit einerm Job) treffen, quatschen, Infos austauschen (über Pipes und Co) usw. Ab und zu kommt ein echter Mensch als Chef rein, "redet" ganz merkwürdig, gibt Anweisungen und verschwindet wieder. Lesbarkeit und all die Dinge, die ich da so vermisse, waren offensichtlich nie Teil des Entwurfskonzepts - das ist auch in Ordnung so. Es mag Leute geben, die das eingängig finden - ich nicht.
Bin auch kein WinDAU-Mäuseschuppser. Arbeite fast vollständig mit vim, XeTeX und so n Zeug, wo Effizienz halt einen anderen Stellenwert hat. Jedes use case hat eben andere Anforderungen.
Es ist so schon gerade schwierig, meinen Kollegen im Team zu erklären, was ich hier so eigentlich gerade anstelle mit den ganzen scripten und ihren Daten - da kann ich nicht noch mit Bash kommen.
Da fällt mir noch ein sehr wichtiger Grund ein: Fehleranfälligkeit ist deutlich niedriger wenn ich von Bash die Finger lasse. Wenn ich eine sed-tr-grep-dingsbums-Lösung nehmen würde, hätte ich nie das Gefühl, so wirklich sicher zu sein, dass die Dinger auch das machen was ich will. Nicht weil sie etwas falsches tun, sondern weil ich ihre Sprache nicht adäquat beherrsche.

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

Re: Scripting Contest

Beitrag von heisenberg » 07.12.2015 17:53:03

Daher hatte ich hier eigentlich nicht auf Code, sondern auf ein "Das gibts doch schon!" gehofft.
Die grösste Häufigkeit, bei der ich diesen Satz gehört habe, war immer an dem Punkt, nachdem ich mir sehr viel Mühe gegeben habe, eine eigene Lösung zu schreiben. Da kam dann immer: Das ist aber aufwendig, wieso nimmst Du nicht einfach .... ! Davor kam das irgendwie nie.

Vielleicht auch deswegen, weil eine Darstellung der Aufgabe als tatsächlicher Code eine sehr präzise Art ist, sein Problem zu beschreiben. :)
Jede Rohheit hat ihren Ursprung in einer Schwäche.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von r4pt0r » 07.12.2015 20:06:12

MoonKid hat geschrieben: IMO ist eine shell nicht für Menschen, sondern für Maschienen:
[...]
Es ist so schon gerade schwierig, meinen Kollegen im Team zu erklären, was ich hier so eigentlich gerade anstelle mit den ganzen scripten und ihren Daten - da kann ich nicht noch mit Bash kommen.
Da fällt mir noch ein sehr wichtiger Grund ein: Fehleranfälligkeit ist deutlich niedriger wenn ich von Bash die Finger lasse. Wenn ich eine sed-tr-grep-dingsbums-Lösung nehmen würde, hätte ich nie das Gefühl, so wirklich sicher zu sein, dass die Dinger auch das machen was ich will. Nicht weil sie etwas falsches tun, sondern weil ich ihre Sprache nicht adäquat beherrsche.
Die shell ist dazu da, dass menschen kurz und exakt der maschine sagen können was getan werden soll (anstatt ellenlang in beschränkten GUI-menüs rumzuklicken...)

Ich weiß nicht welches Aufgabengebiet Du und Deine Kollegen haben - aber wenn Serververwaltung/Administration oder ähnliches dazugehört, muss sicherer Umgang mit der Shell gegeben sein - egal ob interaktiv oder als script. Man schickt auch keinen Aussendienstler der nur Spanisch kann zum Kundentermin nach Indien...
Wenn man sich täglich (oder für ein Projekt) in einer Umgebung bewegt, muss man sich auch mit dem nötigen Grundwissen und ggf Sprachen auseinandersetzen, sonst endet das ziemlich schnell in Frust und Chaos. Mindestens eine Skriptsprache sollte also sicher beherrscht werden. In Linuxumgebungen idealerweise (Ba)sh oder grundlegendes Perl als "Shellskripte auf Steroiden" (auch wenn Perl _viel_ mächtiger ist als das...)

Um annähernd zurück zum Topic zu kommen:
Genau solche Anfragen sollten durch "Grundregeln" ausgeschlossen werden - das gehört als Anfrage in einen eigenen Thread...
Evtl sollten Aufgabenstellungen auch grundsätzlich nur Einzelprobleme behandeln - also z.B. nur einen Algorithmus zum Ziel haben, ggf benötigter I/O und Boilerplate-code kann (sollte?) zwecks Übersichtlichkeit weggelassen werden.

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

Re: Scripting Contest

Beitrag von heisenberg » 08.12.2015 00:27:30

Ich habe mal einen Entwurf zum Thema:

Entwurf: Scripting Contest HOWTO

Lasst uns das hier ausdiskutieren und anschliessend können wir unsere Ergebnisse zunächst auf der Seite dort festhalten. Jeder hat dort
Bearbeitungsrechte.
Jede Rohheit hat ihren Ursprung in einer Schwäche.


r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von r4pt0r » 08.12.2015 12:46:22

:THX:
Der Code soll direkt per Copy+Paste in eine Datei übernommen werden können und nach setzen des Ausführrechtes direkt zum Ergebnis führen.
Den Punkt würde ich etwas ändern/erweitern.
Für manche Aufgaben kann ggf ein schlanker Algorithmus mit nur wenigen Zeilen ausreichen, der "Sprachen-Overhead"/Boilerplate-code verschlingt aber je nach Sprache schnell den doppelten Platz. Gerade wenn die Lösungen im Forum gequotet werden, wird das eher Unübersichtlich. Bei einer Lösung in C scrollt man sich dann nen Wolf bis man endlich zur eigentlichen Lösung des Problems kommt.
Beispiel: meine Perl-Lösung zum binärumrechner - knapp doppelte Anzahl Zeilen für den Overhead der sowieso per script (oder von ner IDE) erstellt wird - "wichtig" sind eigentlich nur 3 Zeilen...

IMHO "schöner":
Die Komplettlösung (ggf mit makefile etc) ins repo, der für die Lösung relevante Teil des Codes wird im Thread gequotet und (kann) dort noch etwas ausführlicher erklärt werden.

Vorteile:
- Verlinkungen (auch zu github) sind irgendwann tot - wenn in 5 Jahren jemand per suche auf den Thread stößt und die Links sind tot, kann er keine Lösung mehr anschauen, so bleibt zumindest der Lösungsrelevante Teil erhalten.
- Anfänger/"nur Interessierte" können direkt im Thread die Lösungen ansehen (mit Erklärung) und ggf direkt fragen stellen und müssen sich nicht mit github, makefiles und compilern auseinandersetzen.
- Der Thread enthält den gesamten Kontext und man muss bei Erklärungen nicht zwischen Code und Thread wechseln - auch angenehm wenn man mal per Tablet oder Smartphone im Forum mitliest.

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

Re: Scripting Contest

Beitrag von heisenberg » 08.12.2015 20:58:08

@r4pt0r:

Stimme Dir zu.

Wäre ja vielleicht hübsch das git hier auf dem DF-Server zu haben und -- träum -- jeder der einen Forenaccount hat, hat auch gleich einen zugehörigen Git-User mit synchronisiertem Passwort.

Bei github finde ich schön, dass es auch direkt eine Weboberfläche hat. Falls man kein Bock auf den Git-Kommandozeilen-Kram hat, kann man sich das per
Browser in eine Datei pasten.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

DeletedUserReAsG

Re: Scripting Contest

Beitrag von DeletedUserReAsG » 08.12.2015 21:19:02

Hier gibt es doch genug Leute mit unterbeschäftigten Servern. Könnte da nicht einer die Ressourcen zur Verfügung stellen? Ich meine: ob uptime nun ’ne Load von 0,05 0,04 0,02 oder 0,1 0,09 0,1 anzeigt […]

Mit einem zusätzlichen Account samt PW oder Schlüssel werden die Meisten auch nicht überfordert sein, denke ich.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von catdog2 » 08.12.2015 21:32:34

Hier gibt es doch genug Leute mit unterbeschäftigten Servern. Könnte da nicht einer die Ressourcen zur Verfügung stellen?
Wäre natürlich kein Problem, allerdings ist eine Garantie, dass es über viele Jahre an seinem Platz bleibt bleibt auch da schwierig.
Unix is user-friendly; it's just picky about who its friends are.

DeletedUserReAsG

Re: Scripting Contest

Beitrag von DeletedUserReAsG » 08.12.2015 21:43:07

Da böte sich die Backupstrategie von Herrn Torvalds an: zusammenpacken, hochladen und jeden runterladen lassen, den’s interessiert. Mit einiger Wahrscheinlichkeit wird sich dann auch in zehn Jahren noch irgendwo ’ne Kopie auftreiben lassen – das Schwierige wird möglicherweise eher, dann einen kompatiblen Interpreter für die betreffende Sprache zusammenzubasteln …

Abgesehen davon könnte man Herrn Feltel fragen, ob das regelmäßige Sichern eines kompakten Archivs auf den Servern des Forums möglich wäre. Würde er vielleicht eher machen, als da groß git und Co. draufzubasteln.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Scripting Contest

Beitrag von r4pt0r » 08.12.2015 22:17:07

catdog2 hat geschrieben:
Hier gibt es doch genug Leute mit unterbeschäftigten Servern. Könnte da nicht einer die Ressourcen zur Verfügung stellen?
Wäre natürlich kein Problem, allerdings ist eine Garantie, dass es über viele Jahre an seinem Platz bleibt bleibt auch da schwierig.
Genau diese langfristige Verfügbarkeit dürfte bei privaten Servern das Problem sein. Da ist github schon die optimalere Lösung, auch wegen der sehr komfortablen weboberfläche in der sich auch nicht-git-user zurechtfinden. Ich denke die Kombination github für vollständigen Code und Forum für den essentiellen Codeteil ist ziemlich perfekt - wer nur mitliest hat alles Wichtige im Thread, wer ausprobieren will kann sich alles im repo holen inkl ggf makefile.

@Kompatibler Interpreter/Compiler:
Das Problem werden wir sicher nicht lösen können und will sicher auch keiner - wenn eine Sprache mal so weit fortgeschritten ist dass sich der Code nicht mehr ohne Verrenkungen interpretieren/compilieren lässt, ist der Code meist auch schon völlig überholt und nicht mehr empfehlenswert (siehe globale Variablen!!)... Zudem gehts hier ja eher um die grundlegenden Ideen und Gedankengänge hinter den Lösungen, nicht um in alle Ewigkeiten funktionierenden "fertig-Code zur Selbstbedienung". Daher ist es IMHO auch Sinnvoller im Thread nur essentiellen Code einzubinden


...und wenns ne Sprache in 10 Jahren nicht mehr gibt war die Lösung sowieso Falsch :mrgreen:

Antworten