Autor Thema: euro2004  (Gelesen 16514 mal)

Hernan Cortez

  • Gast
euro2004
« am: 30.05.04 - 15:40:05 »
Schaun mer mal.  ??? ;D
I never promised you a rose garden.
In den nächsten 18 Stunden wird hier geheimnisvoller (und sehr unfertiger) Java code für ein Tipp-Spiel gepostet. Da muß dann noch weiter dran gearbeitet werden. Wir haben noch 12 Tage.



Hernan Cortez

  • Gast
Zustimmen ja/nein
« Antwort #1 am: 30.05.04 - 16:07:43 »
ihr kennt das von Installationsprogrammen,

man kann das lesen, muß man aber nicht:

Hi,

Das ist jetzt mal so ein Versuch.

Disclaimer1:
Ich bin Angestellter einer kleinen und/aber kompetenten Consulting namens IMG. Ich arbeite da gerne. Die Organisation, das Management und die Kollegen haben eine langjährige Erfahrung in der erfolgreichen Umsetzung von IT Projekten. Unsere besondere Stärke besteht in der wirklich Mehrwert stiftenden Integration von neueren Technologien wie z.B. Java, J2EE, XML und Webservices in bestehende Systemlandschaften, insbesondere aber nicht nur im Zusammenspiel mit Lotus Notes.

Nun kann ich da natürlich nicht irgendwelche mühsam während der Arbeitszeit erarbeiteten code so mal einfach ins Internet stellen. Deshalb soll es hier um Themen gehen, die nicht strategische Bestandteile unserer Projekte und Produkte sind (Eclipse plug-ins, J2EE unterstützte Workflow Systeme, pragmatisches J2EE auf Basis von open Source und/oder IBM-Produkten sowie der Ausbau von bestehenden, erfolgreichen Produkten meist auf Domino Basis).

Eine Art serverlose verteilte Anwendung, die den Thread eines Internetforums als Art Datenbank verwendet, gehört sicherlich nicht zu den Dingen, die wir kommerziell ausschlachten wollen, bzw. die Geschäftsführung wäre vermutlich an einem Vertriebler interessiert, der das kann.
Das ist nicht mit der Geschäftsführung abgesprochen ausser der Aussage, dass ich während der Freizeit machen kann was ich will (ausser natürlich kriminelle Sachen  :-[ ).

Als GUI wird Swing verwendet. Als Datenbank bekommt jeder Mitspieler sein eigenes RDBMS in Form einer HSQLDB (oder wie das heisst, sehr neu für mich). Für die xml-Verarbeitung JDOM, ein paar packages aus jakarta-commons für Kleinkram sowie Hibernate für Objekt-Relationales Mapping.
Lediglich Hibernate wird von IMG als strategische Komponente angesehen. Ich war an den Projekten, wo das eingesetzt wurde, nicht beteiligt und setze es nur muy básico ein. Wer von Java programmiert und von Hibernate nix gehört hat, sollte die Tomaten aus den Ohren holen.   ::)

Disclaimer2:
Das folgende ist aus gewissen Auseinandersetzungen von mir mit ein paar openSource Projekten entstanden. Es ist nix großes und wichtiges. Einfach so ein bischen einarbeiten in das Zeug und dann sah ich eine Möglichkeit, dass zu einem Spiel zusammenzufügen. Das sind eben so Freizeit-Aktivitäten.
Dies ist nicht auf Basis eines bei IMG und mir in realen Kundenprojekten üblichen vernünftigen Projekt-Management gewachsen sondern mehr so wildwuchernd. Setz mich eben mit neuen Technologien auseinander. Bei diesem explorativ-spielerischen Umgang, weiss ich nicht unbedingt, wo ich am nächsten Tag lande. Die dort angeeignete Sicherheit mit den Dingen kann ich dann für reale Projekte als Ressource abrufen.
Übrigens habe ich va. während der Phase der dot-com bubble schon Projekte mit einem schlechteren Projektmanagement als diesem hier gesehen.

Disclaimer3:
Weiss nicht, ob wir für die Europameisterschaft fertig werden. Auf mich wartet eine anstrengende Arbeitswoche. Ich mache das während meiner Freizeit und ich schulde meinen Kollegen und Kunden ein optimales Maß an Aufgewecktheit während der Arbeitszeit. Wenn wir nicht fertig werden, schlage ich vor, dies für das olympische Fußballtunier zu nutzen.  ;D

Disclaimer4:
Dies ist hier auch als Entgegnung zu verstehen zu den vielen Missverständnissen bezüglich Java, denen ich gerade in Domino-Kreisen immer wieder glaube zu begegnen.
Das ganze gipfelt dann irgendwie im Todschlag-Argument: „Das mit der Plattformunabhängigkeit funktioniert nicht“. Dies wird gerne v.a. von wirklich kompetenten Domino Programmierern vorgebracht. Da könnte ich die Wände hochgehen.  
@Brothers: Oracle setzt auf Java, IBM setzt auf Java, Sun setzt auf Java, SAP setzt auf Java, viele ungenannte setzten auf Java und Microsoft hat in .NET auch eine Virtual Maschine, die (s. Mono) auch teilweise für Linux umgesetzt ist.
C# ist so was von einem Java clone, dass ich sogar beim lustige Klassennamen- und Methodenraten mit der automatic code completion von MS.Visual Studio ziemlich gute Trefferquoten erziele.
Da hab ich doch glatt so einen bösartigen Kommentar : Wenn das alles so unausgereift und einfach falsch ist. Fangt heute an, mit Hilfe des Einsatzes von altbewährter Technologie zum Bill Gates des 21. Jahrhunderts zu werden. Laßt die Looser wie IBM, Microsoft, Oracle, SAP, etc. ihr Geld für etwas verbrennen, das nicht funktioniert.

Disclaimer5:
Ich bin kein Java Teacher. Es gibt Leute, die haben Java gelernt und sich didaktische Kompetenz erworben. Diese Leute kosten Geld. Ich habe keinen Ehrgeiz diesen Markt kaputt zu machen. Ein guter Java Teacher gibt euch eine strukturierte Einführung. Hier ist ernsthafte Mitarbeit erforderlich. Ich beantworte gerne Fragen. Ich werde höflicher sein, als ich das teilweise in der Vergangenheit war. Der real existierende Widerspruch zwischen „gerne über Java zu reden“ und „keine Freizeit-Energie darin zu stecken, als didaktisch wertvoller Lehrer zu agieren“ hat mich dazu bewogen, nicht mehr Moderator dieses Forums zu sein.
Wir entwickeln hier kein für kommerzielle Zwecke einsetzbares out-of-the-box-freeware-tool. Dies ist ein unkommerzielles open Source Projekt Yust-For-Fun.
Jeder ist herzlich eingeladen:
-   meinen code zu kritisieren (er ist weeiiiit davon entfernt perfekt zu sein)
-   etwas beizutragen (sehr gerne)
-   Projekt-Management bashing zu betreiben
-   Fragen zu stellen (müssen keine „Guru(was immer das ist)-Fragen“ sein. Ich kann hier übringens mal eine Liste von Threads posten, wo ich auf Javaranch nicht so tolle Beiträge geliefert habe und teilweise die Reaktionen. Dabei ist Javaranch ein freundliches Forum. @Brothers: Life is not fair. Der Kapitalismus ist wie ein alter Hering: Er glänzt, aber er stinkt.

in diesem Sinne

Axel
« Letzte Änderung: 30.05.04 - 16:19:20 von El Indio Mapuche »

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #2 am: 30.05.04 - 16:23:28 »
her damit jetzt endlich :D
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:euro2004
« Antwort #3 am: 30.05.04 - 20:05:47 »
genau, dann mal los, Axel.  ;)



Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Hernan Cortez

  • Gast
Re:euro2004
« Antwort #4 am: 30.05.04 - 22:49:34 »
Bevor ihr vor der Code Lawine erschlagen werdet, hier erstmal ein Screen Shot und dann ein paar UML Diagramme mit Erläuterungen.
Mit dem code müsst ihr dann noch eine Menge open Source packages runterladen, die ich benutze. Das geht aber problemlos. Ich poste einfach die ganzen URLs.

Also erstmal Screenshot:


Hm. Fehlt was. Egal. Man sollte nicht mit Disketten arbeiten. Reicht aber erstmal. Also ihr seht da oben die Tabs Spielplan und Einstellungen. Fehlt noch der Tab Highscoreliste. Zur Zeit kann man da Ergebnisse eingeben und er rechnet dann die Tabellen inklusive Positionen der Teams aus*, sobald der Anwender auf Speichern drückt.
Der Spielplan wird aus einer xml-Datei gelesen. Dafür habe ich ein eigenes XML-Binding (?) framework geschrieben. xLooser 0.2. Das muss da unbedingt raus, weil es Mist ist. Der Spielplan als xml ist ok. Er soll aber in die Relationale Datenbank geschrieben werden.

Der User gibt also die Spiele ein und kann Zwischenspeichern (Persistierung muss noch realisiert werden, mit Hibernate).

Vor dem ersten Spiel kann der User über irgendeinen Button  aus seinen in der Datenbank zwischengespeicherten Tipp-Daten eine XML-Datei erzeugen, die er an einen bestimmten Thread in Atnotes attached. Dabei ffolgt der Name der xml-Datei einer bestimmten Konvention (Spielername.xml.txt oder so.
Ich weiss nicht, inwieweit man das posten der xml Datei vollständig automatisieren kann. Man muss sich ja per Cookie authentifizieren. Das müsste aber gehen. Für diese HTTP-Geschichten werde ich apache jakarta HTTP-Client verwenden (sehr cool).

OK. Die Tipps der Mitspieler sind jetzt also als xml-Dateien an den Thread in Atnotes attached. Für LAN-User können wir alternativ anbieten, dass die Dateien in einem gemappten Laufwerk gespeichert werden. Alles eine Frage der konkreten Adapter.
Per Apache-HTTP-Client wird nun aus der Anwendung der besagte Thread geparsed. Will das mit Regular Expression machen. Sollte möglich sein.
Gesucht wird nach xml Dateien. Von allen neuen xml Dateien wird die URL dieses attachement eingesammelt und per http-Client runtergeladen in ein Verzeichnis innerhalb des Programms.
Die xml Daten der Tipps werden in die Datenbank geschrieben.

Nun beginnt die Vorrunde. Datumsgesteuert werden nun die Ergebnisfelder (s. Screenshot) zu Eingabefeldern, die Tipps sind nicht mehr bearbeitbar (schon da). Der User gibt dann die Ergebnisse ein (oder ich finde noch einen Webservice). Das Programm errechnet automatisch die Punkte, die die Mitspieler mit ihren Tipps gewinnen.
So geht das immer weiter bis die Vorrunde zu Ende ist.

Das Programm errechnet aus den Ergebnissen der Vorrunde automatisch
die Spielpaarungen des Viertelfinales.
Nun beginnt der Zyklus von neuen. Die User geben Tipps ein, posten diese automatisiert oder halbautomatisiert als vom Programm erzeugten xml ins Forum. Die werden dann von den Clients der Mitspieler automatisch eingesammelt. Die wirklichen Ergebnisse werden eingegeben. Das Programm vergibt für die Tipps Punkte. Das Halbfinale wird ermittelt. usw.

Ich würde sagen technologisch 100% machbar.

Später mehr zu dem was da ist und was noch zu tun ist.

gruss Axel




* Wie ich jetzt aus dem Kicker-Sonderheft erfahren habe, nicht ganz korrekt. Aber das kommt noch.
« Letzte Änderung: 31.05.04 - 00:01:17 von El Indio Mapuche »

Hernan Cortez

  • Gast
Re:euro2004
« Antwort #5 am: 31.05.04 - 02:52:52 »
Apache Http Client? Datenbank?
Der unbedarfte Leser wird sich jetzt vielleicht fragen, ob das nicht für den Anwender total kompliziert wird, weil ja die sooo einfach zu verstehende Plattform Lotus Notes fehlt.
Nein. Das sind alles Komponenten, die mit seeeeehhhhr wenig Administration von der Anwendung gemanaged werden. Der User bekommt diese Teile nie zu Gesicht.

Es geht darum sich aus Teilen sein eigenes "Enterprise"-System zusammenzustecken. So verstehe ich komponenten-orientierte Software-Entwicklung.

Hernan Cortez

  • Gast
Source code
« Antwort #6 am: 31.05.04 - 10:51:43 »
hier ist source code.
In Eclipse ein Projekt machen und dann dieses Paket importieren über Datei//Importieren.
Dummerweise habe ich bei der Anlage des Projekts keinen src Folder erstellt. Ist aber nicht so schlimm.

Die ganzen openSource Packages sind nicht dabei. Die Links zu den downloads poste ich in Kürze.

Hernan Cortez

  • Gast
Re:euro2004
« Antwort #7 am: 31.05.04 - 12:32:48 »
JGoodies Forms und JGoodies Looks von http://www.jgoodies.com/downloads/libraries.html
jdom-b9.zip   von http://www.jdom.org/dist/binary/
hsqldb_1_7_1.zip von http://sourceforge.net/project/showfiles.php?group_id=23316&package_id=16653

Jakarta: http://jakarta.apache.org/site/binindex.cgi (nur stable releases nehmen)
Commons HttpClient  
Commons Lang 2.0
Log4j 1.2.8

hibernate-2.1.3.zip von http://www.hibernate.org/6.html

MySQL  (benutze ich wegen mehr Erfahrung damit und vermutlich besserer unterstützender Tools für Entwicklung)
http://dev.mysql.com/downloads/
MySQL 4.0 stable
MySQL Control Center
MySQL Connector/J 3.0 -- production release




Hernan Cortez

  • Gast
Re:euro2004
« Antwort #8 am: 31.05.04 - 13:00:30 »
ok. Das ist Entwickler-Nightbird Version.
Den Usern kann später ein zip-File zur Verfügung gestellt werden, dass beim Entpacken den ganzen Krempel an die richtige Stelle legt. Installer ist übertrieben für so ein einfaches Projekt.

Na. Ihr Flußschiffer. Spielt noch einer mit  ???

Bienvenido en el Oceano Atlántico  ;D

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #9 am: 31.05.04 - 13:21:59 »
habe looks-1.2.2 heruntergeladen

in MainWindow.java Zeile 38
muss es scheinbar

LookUtils.IS_LOW_RESOLUTION

statt

LookUtils.lowRes

heißen
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #10 am: 31.05.04 - 13:26:33 »
Cannot resolve com.jgoodies.uif_lite.panel.SimpleInternalFrame;

in GameScheduleTab Zeile 39
und in UserSettingsTab Zeile 34

ich kann com.jgoodies.uif_lite.* nicht finden
« Letzte Änderung: 31.05.04 - 13:44:43 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #11 am: 31.05.04 - 13:35:58 »
in ObjectGraphFromXMLBuilder.java

ist ein catch block, der nie erreicht wird in Zeile 63ff.

*hat sich erledigt mit richtiger Version von jdom*
« Letzte Änderung: 31.05.04 - 19:08:36 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #12 am: 31.05.04 - 13:42:25 »
in GroupSchedulePersistence.java Zeile 72 und
GameSchedulePersistence.java Zeile 73

List children = element.getContent();

scheints die Methode getContent() nicht zu geben

ich tausch das jetzt mal durch getMixedContent() aus

*hat sich erledigt mit richtiger Version von jdom*
« Letzte Änderung: 31.05.04 - 19:08:58 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #13 am: 31.05.04 - 14:04:21 »
Indio, ¿ donde eres tu?

ok, das Problem mit dem SimpleInternalFrame hat sich erledigt.
die Klasse ist
Zitat
located in package com.jgoodies.uif-lite.panel that you can find in folder src/examples/demo/ of the Looks 1.2 distribution
(demo.jar)
« Letzte Änderung: 31.05.04 - 16:11:17 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Hernan Cortez

  • Gast
Re:euro2004
« Antwort #14 am: 31.05.04 - 17:42:57 »
Thomas, du bist wirklich schnell.
Wie gesagt. Ich habe keine Zeit ein didaktisch korrektes Projektmanagement durchzuführen.  
Du musst die Pakete:
com.jgoodies.uif.lite.component
und
com.jgoodies.uif_lite.panel importieren
(aus der Looks Demo von Carsten Lentzsch).
Beide befinden sich in looks-1.21/src/eamples/demo
Einfach mit
rechte Maustaste auf Projekt
Import im Kontextmenü
File System auswählen
Dann Browse: looks-1.2.1 root/src/examples/demo.
com auswählen und die beiden Pakete sollten dann im Projekt drin sein.

Dann de.aja.em2004.gui.MainWindow starten.

Sollte dann funktionieren. Geh davon aus, dass sich seit Version 1.2.1 nix großes geändert hat.

Gruß Axel
« Letzte Änderung: 31.05.04 - 17:51:24 von El Indio Mapuche »

Hernan Cortez

  • Gast
Re:euro2004
« Antwort #15 am: 31.05.04 - 18:00:58 »
in GroupSchedulePersistence.java Zeile 72 und
GameSchedulePersistence.java Zeile 73

List children = element.getContent();

scheints die Methode getContent() nicht zu geben

ich tausch das jetzt mal durch getMixedContent() aus

Ich glaube, du hast jdom.jar nicht im Classpath:
Im Classpath, dh. Java-build-path sind bei mir (in dieser Reihenfolge)
commons-lang-2.0.jar
dom4j-1.4.jar
forms-1.0.4.jar
hibernate2.jar
hsqldb.jar
jdbc2_0-stdext.jar
jdom.jar
jta.jar
log4j-1.2.8.jar
looks-1.2.1.jar
mysql-connector-java-2.0.12-production-bin.jar
odmg-3.0.jar
xalan-2.4.0.jar
xerces-2.4.0.jar
xml-apis.jar

Die meisten der jars erschliessen sich aus dem Namen und den oben genannten Downloads. Der Rest kommt aus dem lib Verzeichnis von Hibernate.

Auf das Projekt, rechte Maustaste, Properties, Java Build Path, aber das weisst du glaub ich.
Dann als Add External JARs.

« Letzte Änderung: 31.05.04 - 18:02:45 von El Indio Mapuche »

Hernan Cortez

  • Gast
Re:euro2004
« Antwort #16 am: 31.05.04 - 18:13:19 »
Das sollte so aussehen, wenn du fertig bist:

« Letzte Änderung: 31.05.04 - 18:15:24 von El Indio Mapuche »

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #17 am: 31.05.04 - 18:15:52 »
ich hab jdom im Classpath. jdom-b6. da gibts die Methode nicht für diese Klasse.

naja, also das Anwendungsfenster geht jetzt schonmal auf. mal schaun, ob ichs weiter schaffe.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Hernan Cortez

  • Gast
Re:euro2004
« Antwort #18 am: 31.05.04 - 18:27:53 »
gibts definitiv in b9. und ist ganz sicher eine Methode von org.jdom.Element


Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:euro2004
« Antwort #19 am: 31.05.04 - 18:47:52 »
da ham wirs schon. b9. ich hab b6 gelesen. :-[
da gibts das noch nicht :)
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz