Seite 1 von 3

5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 10:43 am
von Xin
Moin :-)

Heute wird proggen.org 5 Jahre alt. Oder wie nufan meinte: Das halbe Jahrzehnt ist geschafft. ;-)
5 Jahre ist ein kleines Jubiläum, aber auch eine lange Zeit im Internet, wie auch in der Bevölkerung.

Was verändert sich in 5 Jahren?

Vor 5 Jahren gab es Google+ zum Beispiel noch nicht. Das ist sicherlich keine besondere Nachricht.
Google+ beschreibt aber ein interessantes Phänomen: Menschen äußern sich in Kurzform über ihre Interessen und Meinungen. Und Menschen tun das immer häufiger. Häufig auch mobil.


Am 11. Juli 2008 wurde die zweite Generation des iPhones vorgestellt, dass sich alleine im ersten Verkaufs-Quartal besser verkaufte als die erste Generation über 5 Quartale zusammen. Smart-Phones sind heute die Regel.

2008 gab es noch eine große Diskussion darüber, wie groß Bilder sein dürfen und ob Bilder überhaupt verwendet werden sollten. Heute bieten Telefone bereits Übertragungsraten bis 150MBit/s an.

Menschen konsumieren heute eher kleine Informationshappen, aber Programmierung ist eine Beschäftigung, die vom Lernenden verlangt, sich mit einem großen Ganzen zu beschäftigen, welches zusätzlich dazu immer weiter
wächst. So habe ich als Kind noch auf einer Textkonsole programmieren gelernt, wobei die Grafikausgabe etwas besonderes war - heute ist die GUI selbstverständlich und die Textkonsole außergewöhnlich.

Programmieren lernen kostet Zeit und sich Zeit zu nehmen und sie zu investieren ist in einer schnelllebigen Zeit eher ungewöhnlich. Erfolge müssen schnell und billig sein. Das wird beim Programmieren nie der Fall sein, Kenntnisse muss man sich über lange Zeiträume aneignen. Entsprechend sinkt das Interesse, Programmieren zu lernen. Damit steigt aber auch der Wert des Wissen derer, die Programmieren können.

Gleichzeitig steigen die Erwartungen: Man muss Programmieren mal eben beiläufig lernen können. Und wenn das nicht sofort klappt, kommt Frust auf. So werde ich in letzter Zeit häufiger gefragt, ob man überhaupt intelligent genug ist, Programmieren zu lernen, wenn sich nicht sofort Erfolg einstellt. Ähnlich sieht es bei den Tutorials aus. Die meisten Schreiber haben oder nehmen sich nicht die Zeit, die Tutorials voranzubringen und brechen irgendwann ab.

Bemerkenswert finde ich, dass die "Nerd-Brille" inzwischen Hipp ist. Serien wie "Big Bang Theory" ziehen einerseits über die Klitschees von Nerds her; Nerd, also intelligent, zu sein wird cool. Sogar so cool, dass sich heute Leute stolz als "Nerd" bezeichnen.

Ich denke, proggen.org ist eine Insel für Menschen, die bereit sind auch mal Frust zu ertragen, um etwas zu erreichen und deswegen dranbleiben. Gleichzeitig ist es für die Zukunft unsere Aufgabe, Menschen entgegen des Zeittrends dazu zu motivieren, sich längerfristig mit einer herausfordernden Aufgabe auseinander zu setzen. Dazu gehört auch, die Nerd-Brille wieder abzusetzen und den Kopf als das coole Accessoire zu verstehen.

Wo sind wir und wo geht's hin?

proggen.org steht irgendwo zwischen diesen Bewegungen und ich finde es gut, dass es hier durchaus eine Konstante darstellt. Wir vermitteln und diskutieren vorrangig "altmodisches", aber zeitloses Wissen und darauf möchte ich auch in den nächsten 5 Jahren den Fokus legen. Gerade Assembler ist mir hier ein wichtiges Anliegen.

Aber wir müssen auch "hippere" Wege einschlagen. nufan arbeitet nun am Java-Tutorial und ich hoffe, dass wir von dort aus gut in Richtung Android-Entwicklung kommen werden. Ich selbst möchte mich mit der Entwicklung auf Mac und iOS auseinander setzen und werde dazu sicher auch schreiben.

Im Hintergrund laufen - wenn auch sehr langsam - die Entwicklungen zum neuen CMS parallel zu und mit anderen Projekten weiter.
Bzgl. des Designs habe ich einen (hauptberuflichen) Designer in der Bekanntschaft gefunden, der sich mit mir am Design der Website versuchen möchte und den ich für zuverlässig erachte. Auch wenn er wenig Zeit hat, sehe ich da durchaus Chancen, dass da was kommt.

Wer programmieren lernen möchte googlet nach "programmieren", da ist der erste Vorschlag von Google "programmieren lernen". Der magische Begriff "Programmieren lernen" listet proggen.org inzwischen auf Platz 9. Das ist Seite 1. Letztes Jahr waren wir noch in der oberen Hälfte der eher undankbaren Seite 2.

Ein anderes Thema, dass uns die ersten vier Jahre begleitet hat, wurde im letzten Jahr vermutlich unbemerkt abgehakt:

Code: Alles auswählen

xin@prgn:~$ uptime
 11:11:07 up 421 days, 15:47,  1 user,  load average: 0.44, 0.43, 0.33
Der proggen.org-Server läuft seitdem wir vor 421 Tagen umgezogen sind wurde ohne nennenswerte Probleme.

Kleiner Wettbewerb gefällig?

In den letzten Jahren haben wir die Erfahrung gemacht, dass die Wettbewerbe im Sommer eher nicht so gut ankommen. Tutorial oder Artikelwettbewerbe wurden solange nach hinten verschoben, bis die Deadline überzogen war oder die Qualität litt. Das Blöde daran, eine Programmierer-Website am 5. Juli zu gründen ist, dass es genau ins Sommerloch fällt, wo am wenigsten los ist. ;-)

Also machen wir keinen Tutorial oder Artikelwettbewerb, sondern einen kleinen Programmierwettbewerb, der uns etwas Arbeit beim neuen CMS abnimmt.

Zu schreiben ist eine Funktion in C, die einen Text erhält und einen überarbeiteten Text zurückgibt:
Sie soll alle vorhandenen BB-Codes, wie sie hier im Forum vorkommen in Wiki-Text übersetzen. Also beispielsweise

Code: Alles auswählen

[b]bold[/b]
nach

Code: Alles auswählen

**bold**
oder

Code: Alles auswählen

[url=http://www.proggen.org]Unsere Website[/url]
nach

Code: Alles auswählen

[[http://www.proggen.org|Unsere Website]]
Die Übersetzungen sollten im Quelltext so aufgelistet sein, dass sie leicht zu finden und zu ändern sind.
Die verwendeten Strings sollten also oben im Quelltext zu konfigurieren sein, bzw. in einer Konfigurationsdatei stehen und eben nicht im Quelltext zu suchen sein.

Die Signatur der Funktion sollte

Code: Alles auswählen

char const * translate( char const * input )
sein, die Rückgabe werde ich anschließend mit free() löschen. Die Rückgabe sollte also mit malloc() alloziiert sein.

Ob die C-Funktion dafür ein Python oder Perl-Skript ansteuert, spielt dabei keine Rolle, solange die Ausgabe korrekt ist, ist sie im Rennen. Gewinner ist, wer das Problem bis zum 31. August am schnellsten gelöst hat. Es ist erlaubt mehrere Versionen einzureichen (z.B. eine Perl Version und später eine schnellere C-Version).
In jedem Fall muss ich jedoch eine C-Funktion geliefert bekommen, die ich ansprechen kann und Kompilieranweisungen, wie ich das Projekt ans Laufen bekomme (make-Skript, batch, Studio-Projekt...)

In die Funktion wird zum Beispiel der Quelltext dieses Postings als Parameter übergeben, zurück kommt ein String, der den entsprechenden Wiki-Text enthält.

Gewinner ist, wessen Programm die Aufgabe am schnellsten korrekt löst.

Was wird damit geschehen?
Ich möchte die Datenbank des aktuellen Forums mit umziehen, aber in Zukunft nur noch Wiki-Code verwenden. Dafür müssen die Texte übersetzt werden. Und hier kommt ihr ins Spiel.

Als kleinen Anreiz werfe ich einen Amazon-Gutschein über 100 Euro ins Rennen. Dieser Wettbewerb ist dann erfolgreich, sobald eine funktionierende Lösung eingereicht wurde, denn dann muss ich sie nicht selbst schreiben :-)

Alles klar, dann ran!
Fragen jeglicher Art einfach hier anfügen.

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 3:35 pm
von nouseforname
Schöne Aufgabe, würde gerne dabei mitmachen. Aber ich habe soviel anderen Kram und KEINE Ferien, so dass ich sicher nicht als erster fertig bin. Und somit ist es für mich relativ sinnfrei. Letzten endes ist es ein simples durchsuchen und austauschen. Regex käm hier wahrscheinlich echt gut. Dabei fällt mir ein, geht nicht auch ein einfaches Shell Script, das könnte wahrscheinlich auch recht schnell sein ;) (sed)

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 6:00 pm
von darksider3
Bestimmte Sachen gibt es bei Dokuwiki einfach nicht, die es bei BB gibt. Z.B können hier Farben verwendet werden => Bei Dokuwiki gibsch das nicht. Selbiges bei Zitaten. Wie soll man das Lösen?
Bis auf die Formatierung der Größen, fällt mir aber ein PHP-Kommandozeilen-Skript ein(sed wollte ich mal lernen, kann ich aber nicht...^^)

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 6:30 pm
von nouseforname
darksider3 hat geschrieben:Bestimmte Sachen gibt es bei Dokuwiki einfach nicht, die es bei BB gibt. Z.B können hier Farben verwendet werden => Bei Dokuwiki gibsch das nicht. Selbiges bei Zitaten. Wie soll man das Lösen?
Einfach ganz löschen oder eben eine eigene Formatierung.
darksider3 hat geschrieben: Bis auf die Formatierung der Größen, fällt mir aber ein PHP-Kommandozeilen-Skript ein(sed wollte ich mal lernen, kann ich aber nicht...^^)
Mit PHP ginge das auch super, wird aber nicht das schnellste sein ;)

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 7:49 pm
von darksider3
Mein Basis-Skript wäre dann auch schon fertig. Es unterstützt alles(Smilies nicht, da diese schon durch DokuWiki geparst werden..?) bis auf die Farben(Welche nicht einsetzbar sind, Zitate und die Größen, da es keine wirkliche Textgrößen bei DokuWiki gibt, bis auf die Gleich-zeichen.(Dies füge ich später hinzu).
Bei mir auf dem Rechner braucht das Skript bei diesem Text...http://pastebin.com/H9Y9q7gb
Genau 0.068 Sekunden(mit ausgabe der Konvertierung). Ich bin hier übrigens auf einem ziemlich alten Pentium M mit(ich glaube) 1,6GB-Ram.
Sollte also überall anders viel schneller laufen :->
real 0m0.068s
user 0m0.016s
sys 0m0.008s
Hier mein Skript: http://pastebin.com/VdhJzy1R
Ich war so frei, dass ganze auszukommentieren und für sachen, wo ich keine Ahnung habe was ich einsetzen soll, habe ich entsprechende HTML-Codes oder gar nichts genutzt.
(PHP aufruf aus der Kommandozeile: php ./NAME --text "CODE")
---
Es ist jedenfalls auch nicht gerade Langsam :P
---

MfG

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 10:17 pm
von Xin
nouseforname hat geschrieben:Schöne Aufgabe, würde gerne dabei mitmachen. Aber ich habe soviel anderen Kram und KEINE Ferien, so dass ich sicher nicht als erster fertig bin. Und somit ist es für mich relativ sinnfrei.
Dein Skript muss schnell sein und per C-Funktion ansprechbar. Du hast bis zum 31. August Zeit.
darksider3 hat geschrieben:Bestimmte Sachen gibt es bei Dokuwiki einfach nicht, die es bei BB gibt. Z.B können hier Farben verwendet werden => Bei Dokuwiki gibsch das nicht. Selbiges bei Zitaten. Wie soll man das Lösen?
Du kannst im Wiki mit <html> arbeiten. Die Sachen sollten aber leicht austauschbar sein, da Dokuwiki eine Vorlage für das neue Wiki ist, aber eben nicht das Ziel.

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 11:06 pm
von darksider3
[quote=Xin]
Du kannst im Wiki mit <html> arbeiten. Die Sachen sollten aber leicht austauschbar sein, da Dokuwiki eine Vorlage für das neue Wiki ist, aber eben nicht das Ziel.[/quote]
Also für Zitate <blockquote></blockquote> und für Farben? <span style="color: Farbe">?

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Fr Jul 05, 2013 11:28 pm
von cloidnerux
Gibt es da nicht nen Plugin für Dokuwiki?

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Sa Jul 06, 2013 6:58 am
von Xin
darksider3 hat geschrieben: Also für Zitate <blockquote></blockquote> und für Farben? <span style="color: Farbe">?
Zum Beispiel. Der Username sollte bei Blovkquote aber dabei sein - notfalls als Class.
cloidnerux hat geschrieben:Gibt es da nicht nen Plugin für Dokuwiki?
Das kann sein, aber das Zielwiki ist kein Dokuwiki.

Re: 5 Jahre proggen.org und Programmierwettbewerb

Verfasst: Sa Jul 06, 2013 2:17 pm
von nufan
Bin natürlich dabei und hab schon ein paar interessante Ideen im Kopf :) Brauchen wir eine Teilnehmerliste oder machen wir das einfach so, dass jeder dabei ist der was abgibt?

Zu der Übersetzung:
Ich hab mit Xin schon kurz drüber diskutiert. Der Ergebnis-Syntax ist jetzt nicht sooo streng zu sehen, solange die Muster auch wirklich einfach austauschbar sind. Notfalls kann man sich ja auf ein Übersetzungsschema einigen, um das Testen zu erleichtern (und auch fairer zu gestalten).