Developer92
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
Können wir nicht einfach eine SQLite Datenbank verwenden? Jemand müsste die halt zugänglich machen aber im Endeffekt wärst doch echt am Besten, oder? Und ich käme endlich mal mit Datenbanken in Berührung ☺ mfg EDIT: Soll die Anwendung in deutsch oder englisch werden, oder beides. Wenn beides: Wie macht man das, evtl. mit gettext? Habe noch nie Projekte mit mehreren Sprachen entwickelt, entschuldigt also die vielen Fragen ☺
|
deadtronic
Anmeldungsdatum: 18. Februar 2010
Beiträge: 762
|
TDeveloper schrieb: Können wir nicht einfach eine SQLite Datenbank verwenden? Jemand müsste die halt zugänglich machen aber im Endeffekt wärst doch echt am Besten, oder? Und ich käme endlich mal mit Datenbanken in Berührung ☺
Doch, natürlich nehmen wir eine Datenbank. Aber man kann nicht eine Datenbank herumschicken, man muss die auch irgendwo editieren. 😉 Wobei mich das auf die Idee bringt, das das genauso gut mit einem Webbasierten Tool gehen würde, das wäre dann auch ähnlich augebaut wie mit Excel. @Torri: Ich lade mir jetzt mal so ein Tool auf meinen Webspace hoch und poste hier gleich den Link, dann kannst du es dir mal anschauen ob du damit klarkommst. Wobei es gut wäre wenn hier jemand einen (V)Server hätte, auf dem er noch Ressourcen über hat.
|
deadtronic
Anmeldungsdatum: 18. Februar 2010
Beiträge: 762
|
So hier. Aber so super Benutzerfreundlich ist das Teil nicht. Viel besseres habe ich auch nicht gefunden, hmm. Wäre zwar praktisch, wenns direkt in SQLite speichert, aber so wichtig dann auch wieder nicht. Geb mir am besten mal Rückmeldung, ob du mit sowas in der Art klarkommen würdest. Sonst nehmen wir halt ein Wiki, ich glaube ich würde mit dem Teil auch nicht ernsthaft arbeiten wollen. Ist aber das Problem, sämtliche SQL-Konfigurationsprogramme sind halt Admintools und eigentlich nicht zum mit Daten eintragen gemacht...
|
Torri
Anmeldungsdatum: 29. Mai 2008
Beiträge: 824
|
Finde ich spontan nicht so grandios. Wenn wir Einträge in Massen produzieren wollen, bräuchten wir wirklich etwas wie Calc, wo man schnell mit Tab durchklicken kann und nicht jeden Eintrag einzeln abschicken muss. Das frisst einfach Zeit. Wie würde es denn im Wiki aussehen?
|
Developer92
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
Wie wärs mit einem seperatem Tool um Daten in die DB einzutragen? Müsste halt auch schnell jemand programmieren ☺ Mit Python und GTK sollts machbar sein ☺ Aber wir sollten uns echt mal klar machen welche Daten wir in der DB brauchen mfg
|
deadtronic
Anmeldungsdatum: 18. Februar 2010
Beiträge: 762
|
Torri schrieb: Finde ich spontan nicht so grandios. Wenn wir Einträge in Massen produzieren wollen, bräuchten wir wirklich etwas wie Calc, wo man schnell mit Tab durchklicken kann und nicht jeden Eintrag einzeln abschicken muss. Das frisst einfach Zeit.
Ja, du hast recht, das bringt nichts.
Wie würde es denn im Wiki aussehen?
Besser. 😀 Wobei ein Wiki auch Mist ist, weil sich das Zeugs nicht in SQLite importieren lässt. So wie es aussieht, werden wir wohl wirklich etwas eigenes aufziehen müssen, ich finde absolut nichts passendes. Ich mache mich mal dran, mal schauen ob ich PHP noch einigermaßen drauf hab. @ TDeveloper Ich lade mal die GUI und ne rudimentäre Start-Datei dazu in Launchpad hoch. Kannst dir ja mal ziehen und mal anfangen, wenn du Zeit hast. Ich kümmere mich jetzt mal um ne gescheite GUI zum Hinzufügen von Einträgen. Übrigens habe ich den Refresh-Button von dir geklaut, ich habe keine Ahnung, wofür der ist, siehe Code. 😀
|
Torri
Anmeldungsdatum: 29. Mai 2008
Beiträge: 824
|
Nur um das nochmal klarzustellen, ich hab's nicht verstanden: Muss ich mir das also so vorstellen, dass wir in den Zeilen den jeweiligen Eintrag haben und in den Spalten dann zum Beispiel eine Spalte "weiblich" und eine "real" und wir dann nur noch ja/nein oder binäre 1/0 oder sowas eintragen? Bedenkt bitte bei eurer Programmierung, dass (hoffentlich) mehrere Leute gleichzeitig an der Datenbank schreiben und man Dopplungen vermeiden sollte. Außerdem würde ich mir von vornherein die Möglichkeit offen halten, das mehrsprachig zu machen, schließlich wollen wir das ja weit verbreiten ☺
|
deadtronic
Anmeldungsdatum: 18. Februar 2010
Beiträge: 762
|
Torri schrieb: Nur um das nochmal klarzustellen, ich hab's nicht verstanden: Muss ich mir das also so vorstellen, dass wir in den Zeilen den jeweiligen Eintrag haben und in den Spalten dann zum Beispiel eine Spalte "weiblich" und eine "real" und wir dann nur noch ja/nein oder binäre 1/0 oder sowas eintragen?
Kommt darauf an. Es kann Spalten geben, wo eben es nur Ja/Nein gibt, wie bei Real, oder eben andere Werte, wie das Alter/Geburtsdatum. Je nach Spaltentyp.
Bedenkt bitte bei eurer Programmierung, dass (hoffentlich) mehrere Leute gleichzeitig an der Datenbank schreiben und man Dopplungen vermeiden sollte. Außerdem würde ich mir von vornherein die Möglichkeit offen halten, das mehrsprachig zu machen, schließlich wollen wir das ja weit verbreiten ☺
Ich denke ich werde das mit Administration aufbauen. Also dass jeder Vorschläge machen kann, diese aber erst von Authorisierten Benutzern bestätigt werden müssen (bei denen selber aber die Einträge sofort angenommen werden). Habe das schonmal gemacht, also sollte ich das diesmal auch hinbekommen. Geht das so klar oder was hast du für eine Vorstellung?
|
Torri
Anmeldungsdatum: 29. Mai 2008
Beiträge: 824
|
Mir ist im Schlaf noch eingefallen, dass wir ja jederzeit noch weitere Spalten hinzufügen müssen, um die Genauigkeit zu erhöhen. Zum Beispiel werden wir irgendwann die Frage stellen müssen
"Ist die Person ein Klingone?"
allerdings auch wieder nur bei Personen, die vorher schon zu Star Trek hinzugeordnet wurden. Aber schreib mal ein Eingabeprogramm 😉 Wie geht das denn eigentlich, wenn neue Personen von Benutzern vorgeschlagen werden: Inwieweit lernt Tuxnator davon?
|
Developer92
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
Stimmt, eine Kategorie "Ist die Person real?" brauchen wir auch. Sonst machts ja keinen Sinn. Ich häng eh schon am Suchalgorithmus für die Fragen. mfg EDIT: Mal ne blöde Frage: Ich hab mit Launchpad bisher nicht wirklich viel am Hut gehabt. Deshalb: Gibts dafür ein Tutorial? Ich mein, wie kann ich so einfache Dinge erledigen wie eine neue Version deines Codes hochladen? Oder allgemein was am Projekt verändern?
|
deadtronic
Anmeldungsdatum: 18. Februar 2010
Beiträge: 762
|
So, endlich wieder daheim. 😛 TDeveloper schrieb: Stimmt, eine Kategorie "Ist die Person real?" brauchen wir auch. Sonst machts ja keinen Sinn.
Ich habe das Teil zum eingeben mal so gebaut, dass es sich über den Code relativ einfach Kategorien hinzufügen lassen, sollte kein Problem sein. Ich habe übrigens bald eine erste Version fertig, es gibt nur momentan ein winziges Problem und ich werde den Code noch ein bisschen umstrukturieren. Der ist momentan einfach nur grässlich aufgebaut. 😀 Wobei es eigentlich auch egal ist, das ist ja nicht das Hauptprojekt. @Torri ich gebe ich heute Abend noch einen Link, dann kannst du dir das mal anschauen und mir sagen, was man noch verbessern kann. Man kann bis jetzt zwar nur anschauen und eintragen, sollte aber erstmal reichen. Ich häng eh schon am Suchalgorithmus für die Fragen.
👍 EDIT: Mal ne blöde Frage: Ich hab mit Launchpad bisher nicht wirklich viel am Hut gehabt. Deshalb: Gibts dafür ein Tutorial? Ich mein, wie kann ich so einfache Dinge erledigen wie eine neue Version deines Codes hochladen? Oder allgemein was am Projekt verändern?
Also für den Anfang kannst du den Bazaar Explorer nehmen, gibts im Repo und der is ziemlich einfach.
Per Konsole geht so:
bzr branch lp:tuxinator # branch klonen
bzr commit # änderungen "speichern"
bzr push lp:tuxinator # änderungen hochladen
Wenn was nicht klappt, gibt bzr eigentlich auch immer verständliche Meldungen warum. Und ich weiß nicht, wie du das siehst, aber ich halte es für besser wenn man von vornherein alles, also Variablen, Kommentare, commit-Nachrichten auf Englisch macht, oder? Wir wollen ja eh mal mehrsprachig werden, wenn sonst niemand den Code versteht wäre das nicht so toll. Das Problem habe ich übrigens bei dem Akinator-Klon von SF. Der sieht zwar nicht gerade fertig aus, aber ich peile da auch einfach mal null durch, weil sämtliche Variablen etc in irgendeiner östlichen Sprache sind. Und falls es dich beruhigt, mein Englisch ist auch ziemlich mies. 😉
|
deadtronic
Anmeldungsdatum: 18. Februar 2010
Beiträge: 762
|
Achja, das hatte ich irgendwie überlesen: TDeveloper schrieb: EDIT: Soll die Anwendung in deutsch oder englisch werden, oder beides. Wenn beides: Wie macht man das, evtl. mit gettext? Habe noch nie Projekte mit mehreren Sprachen entwickelt, entschuldigt also die vielen Fragen ☺
Gettext wäre ich auch dafür. Ich ziemlich einfach. Zuerst gettext importieren:
from gettext import gettext as _
Dann jedesmal wenn du irgendwo nen String ausgeben willst schreibst du statt
print "Hallo"
einfach
print _("Hallo")
|
Developer92
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
Ahja, dankeschön für die Hilfe ☺ Hoffe ich schaff morgen den Algorithmus für die Fragen. Problem könnte sein, dass das ganze ziemlich lahm wird ☹ Ja, also von mir aus können wir alles auf Englisch machen. Ist kein Problem. Aber ich für mich progge erst mal schnell auf deutsch. Dann denkt es sich leichter 😉 Wenn ich den Code hochlade dann ist der natürlich auf Englisch. Achja, die DB braucht ein paar Optimierungen. D.h., man kann zum Beispiel die Muttersprache einer Person einstellen und nicht direkt reinschreiben. Weil mein Programm noch aufwändiger werden würde, wenn ich auch noch "German" und "german" als Sprache gleichwertig behandeln müsste. Übrigens: Sollte man eine Person in die DB aufnehmen, wo man nicht alle Daten weiß (sprich: wenn man zum Beispiel nicht weiß, welchen Beruf die Person ausübt), so wärs praktisch wenn wir "none" als String verwenden. Lässt sich im Prog. leichter auswerten ☺ mfg EDIT: Achso, jetzt versteh ich wie bazaar funktioniert (jedenfalls grundlegendst 😬 )
|
deadtronic
Anmeldungsdatum: 18. Februar 2010
Beiträge: 762
|
TDeveloper schrieb: Ahja, dankeschön für die Hilfe ☺ Hoffe ich schaff morgen den Algorithmus für die Fragen. Problem könnte sein, dass das ganze ziemlich lahm wird ☹
So schlimm? Ich denke, das lässt sich sicher Optimieren. Z.b. indem wir nicht von anfang an intensiv auf die Datenbank zugreifen. Man könnte einen Pool mit Fragen anlegen, die am meisten ausschliessen, und dann erst in die Datenbank richtig durchsuchen, sodass dann nicht mehr so viel gelesen werden braucht. Wenn Akinator das mit einer Webbasierten Lösung hinbekommt, werden wir das schon mit mehr Speed für den Desktop schaffen. 😀 (und später vielleicht auch Webbasiert, ist ja Python ☺) Notfalls machen wir den halt noch in C++, von Python kann ich das recht gut umschreiben denke ich. (auch wenn es kein "for" wie in Python gibt *heul*).
Ja, also von mir aus können wir alles auf Englisch machen. Ist kein Problem. Aber ich für mich progge erst mal schnell auf deutsch. Dann denkt es sich leichter 😉 Wenn ich den Code hochlade dann ist der natürlich auf Englisch. Achja, die DB braucht ein paar Optimierungen. D.h., man kann zum Beispiel die Muttersprache einer Person einstellen und nicht direkt reinschreiben. Weil mein Programm noch aufwändiger werden würde, wenn ich auch noch "German" und "german" als Sprache gleichwertig behandeln müsste.
upper()? 😉
Übrigens: Sollte man eine Person in die DB aufnehmen, wo man nicht alle Daten weiß (sprich: wenn man zum Beispiel nicht weiß, welchen Beruf die Person ausübt), so wärs praktisch wenn wir "none" als String verwenden. Lässt sich im Prog. leichter auswerten ☺
Was ich mir überlegt habe, ist folgendes: Wenn bei einer Frage keine Antworten eingetragen werden, wird automatisch Ja/Nein/Weiß nicht oder so eingetragen. Somit sparen wir uns hunderte eigentlich nutzloser Einträge, sind schneller beim auslesen und sparen Speicherplatz. Und warum none? Verbaucht doch ebenso sinnlos Speicherplatz, und ich will nicht derjenige sein, der zu den Leuten rennt und sagt, ihr dürft die Felder nicht leer lassen da muss none rein. 😉 Wenn sqlite3 einen leeren String zurückgibt, kann man doch sicher mit len() zählen. Sonst halt die exception abfangen, je nach dem, habe mich damit noch nicht befasst.
|
Developer92
Anmeldungsdatum: 31. Dezember 2008
Beiträge: 4101
|
Hey hey, du schreibst ja halbe Romane^^ Hast Recht, statt none einfach frei lassen. Problem ist nur, immer wenn du dich entscheidest muss ich den Code anpassen 😉 lower() ist übrigens schon im programm drinne (will alles in kleinbuchstaben haben, hehehe) Ich mach dann morgen weiter mfg
|