Sprachwahl im Linux-Magazin

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Mittwoch 3. September 2008, 19:47

audax hat geschrieben:sorum isses ;)


Ah ja, da habe ich wohl das not übersehen :roll: Und jetzt weiss ich auch wieder, warum ich immer ein if/then/else benutze und es nicht mit "or" nachbaue :)
lunar

Beitragvon lunar » Mittwoch 3. September 2008, 19:47

BlackJack hat geschrieben:@lunar: Es "kracht" ja gar nicht, das Original läuft halt einfach nur *ewig* ohne dabei nennenswert Speicherzuwachs zu zeigen. Ich denke es ist die `nodups()` mit der Quadratischen Laufzeit. Die Schleife innerhalb von `new.__contains__()` in Zeile 20 schaut sich bei 'sample4.txt' insgesamt schlappe ~199 *Milliarden* Elemente an.

Ich habe nur zitiert, was im Linux Magazin stand.

Meine Lösung liefert nach 10 Sekunden dass hier

Kann man sich die irgendwo ansehen?

Im Text kommt '[958378]' vor, aber es gibt keine Fussnote mit der Nummer. Hat jetzt mein Programm versagt, weil es darauf prüft, oder ist das ein Fehler in den Eingabedaten?

Nimmt man die existierenden Implementierungen als Referenz, dann hat dein Programm versagt. Die ignorieren solche nicht-existenten Fußnoten.

Ach ja, nur so nebenbei: Bei sowas ruft das LinMag üblicherweise Leser dazu auf, eigene Vorschläge einzusenden. Das ist diesmal nicht anders, wer sich berufen fühlt, kann seine Lösung an redaktion@linux-magazin.de schicken. Die drei kreativsten Lösung werden mit einem "Fachbuch" prämiert (allerdings natürlich nicht Python exklusiv). Selbst wenn man das nicht unbedingt gewinnt, so besteht ja noch die Möglichkeit, der Welt zu zeigen, dass man die Sache auch anständig implementieren kann, da das Linux Magazin auch Leserbriefe abdruckt.
BlackJack

Beitragvon BlackJack » Mittwoch 3. September 2008, 20:15

@audax: Dein Skript macht's genau falsch herum: Du nummerierst die Referenzen im Text fortlaufend von 1 an und die Fussnoten sind nicht numerisch aufsteigend. Das sollen sie aber soweit ich das verstanden habe, und die anderen implementiert haben, auf jeden Fall sein. Macht auch mehr Sinn wenn man beim Lesen den Text zu einer Referenz sucht.

@lunar: Meine Lösung kann man noch nirgends sehen. Ich trau mich nicht. :-)
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Mittwoch 3. September 2008, 20:16

ich hätte gerne ne Referenzlösungsdatei zum diffen.

Alle machen was anderes Oo
BlackJack

Beitragvon BlackJack » Mittwoch 3. September 2008, 20:22

@audax: Also die Perl und die Python-Lösung machen hier das gleiche: http://paste.pocoo.org/show/84300/

Und das macht auch wesentlich mehr Sinn als Deine Lösung. Wenn man 100te Fussnoten hat und Du die Referenzen durch nummerierst, anstatt die Fussnoten zu sortieren, ist dem Leser überhaupt nicht geholfen.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Mittwoch 3. September 2008, 20:25

BlackJack hat geschrieben:@audax: Dein Skript macht's genau falsch herum: Du nummerierst die Referenzen im Text fortlaufend von 1 an und die Fussnoten sind nicht numerisch aufsteigend. Das sollen sie aber soweit ich das verstanden habe, und die anderen implementiert haben, auf jeden Fall sein. Macht auch mehr Sinn wenn man beim Lesen den Text zu einer Referenz sucht.


hm...k, hatte mich schon gewundert :/
Dann werd ich es wohl mal umschreiben....

€dit:
Nochmal zum Mitschrieben für blöde:
Ich nummeriere die Fußnoten durch und ersetzt dann im Text die alte Referenz mit der neuen?
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Mittwoch 3. September 2008, 22:02

http://paste.pocoo.org/show/84310

So, nun isses aber richtig :D
habs noch ein bischen aufgeräumt, die eine Funktion wurde mir etwas zu groß :)
BlackJack

Beitragvon BlackJack » Mittwoch 3. September 2008, 22:22

Grundfunktion sieht okay aus, aber ``-a`` nicht. Da sollten dann die Referenzen im Text fortlaufend durchnummeriert sein und die Fussnoten dazu passend sortiert. Eben das Ergebnis was man eigentlich haben möchte.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Mittwoch 3. September 2008, 22:57

aber -a tut genau das gleiche wie das "offizielle"-python Skript :(

Also im Text[1] fortlaufend[2] nummeriert[3] und die

[1] Fußnoten dazu
[2] passend
[3] sortiert?

*alles umschmeiß*


Irgendwie bin ich heute zu doof dafür :D
BlackJack

Beitragvon BlackJack » Mittwoch 3. September 2008, 23:20

Also dieses Skript tut das nicht: http://paste.pocoo.org/show/84310/

Code: Alles auswählen

bj@s8n:~$ python audax.py -a test.txt
A great brown fox [1] jumped of a pile of lorem ipsum [2], [4]. He met
with a silver penguin, browsing the Linux Kernel Mailinglist [5]. They
debated other the question whether to start a C-program with "main
(int argc, char **argv)" or with "main (int argc, char *argv[])".
Square brackets annoyed them [3].

@footnote:
@footnotes:

[1] Al Fabetus: "On characters and animals", 1888, self published.
[2] Lorem Ipsum, <a href="http://en.wikipedia.org/wiki/Lorem_ipsum">Web Link</a>
[4] B. Fox: "More on Blind Text".
[5] Linux Kernel Maintainers: LKML
[3] Annoying Link.


Die Reihenfolge der *Texte* der Fussnoten stimmt, aber die Numerierung stimmt weder im Text, noch in den Fussnoten. Beim "offiziellen" Python-Skript sind die Nummern sowohl im Text als auch in den Fussnoten fortlaufend.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Mittwoch 3. September 2008, 23:37

% python footnotes.py --test -a
A great brown fox [1] jumped of a pile of lorem ipsum [2],
[3]. He met with a silver penguin, browsing the Linux Kernel
Mailinglist [4]. They debated whether to start a C-program with
"main (int argc, char **argv)" or with "main (int argc, char *argv[])".
Square brackets annoyed them [5]. Multiple references exist [2].


[1] Al Fabetus: "On characters and animals", 1888, self published.
[2] Lorem Ipsum, <a href="http://link.org/Lorem_Ipsum">Web
Link</a>
[3] B. Fox: "More on Blind Text".
[4] Linux Kernel Maintainers: LKML
[5] Annoying Link.

Ich hoffe doch, nun hab ich es ;)
Wenn man einmal was völlig dämliches im Kopf hat..gnargh.

Und Morgen kommt noch ein kleines Stück Redundanz raus.

http://paste.pocoo.org/show/84315
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Beitragvon helduel » Donnerstag 4. September 2008, 12:05

Moin allerseits,

hab mich auch mal dran versucht - from scratch :-).

http://paste.pocoo.org/show/84336/

Braucht bei mir für die 54MB-Datei ca. 16 Sekunden. Einen (mir bekannten) Bug hat es noch: Nicht existierende Fußnoten im Text bekommen ebenfalls eine neue Nummer.

Gruß,
Manuel
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Donnerstag 4. September 2008, 12:19

Und hast trotzdem den gleichen Ansatz wie ich, Hello World (in C++) und SidBurn (Perl) :D

Zur Rerefenz: Braucht bei mir 19s
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Beitragvon helduel » Donnerstag 4. September 2008, 12:38

audax hat geschrieben:Und hast trotzdem den gleichen Ansatz wie ich, Hello World (in C++) und SidBurn (Perl) :D

Zur Rerefenz: Braucht bei mir 19s


Ich hab mir deinen Code ehrlich gesagt noch gar nicht genau angeschaut. Aber er ist bei mir 4 Sekunden schneller :? . Die Rache kommt nicht ;-) .

Gruß,
Manuel
BlackJack

Beitragvon BlackJack » Donnerstag 4. September 2008, 14:21

Mein (unkommetierter) Versuch: http://paste.pocoo.org/show/84357/

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder