Deutsches Board für Art of Illusion » AOI-Programmierung » Sonstiges » under the hood (AOI Internas)
Portal Galerie Gästebuch Downloads AoI-Wiki Spenden Mitglieder Links Statistik FAQ Registrieren Kalender Suchen
Willkommen, Gast! Montag, 06. September 2010, 02:48:18
Quicklogin:   Portal · Registrieren · Login · Passwort vergessen · Aktivierungslink erneut senden
Position: Home » AOI-Programmierung » Sonstiges » under the hood (AOI Internas)
Antworten
Thema: "under the hood (AOI Internas)" [ Seite 1 2 ]

Kein neuer Beitrag DJLinux , 23.07.2010, 11:51 Beitrag #1   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Nicht das ich schon so weit wäre aber damit ich nicht in die völlig falsche Richtung abdrifte mal was generelles.

Das CounterPlugin z.B. schreibt direkt in den Canvas Text (auch GL) .
Bones werden in allen Ansichten angezeigt im AOI Format gespeicher und sind nicht renderbare "Objekte".

Was für eine Strategie wäre wohl möglich um eigene editierbare, sichtbare aber nicht renderbare Dinge
wie Gelenke, Federn, und andere physikalische Dinge in AOI zu intregieren via Plugin um nicht's
am AOI Quellcode ändern zu müssen.

Vielleicht ist das aber auch garnicht oder nur mit sehr trickreichen Mitteln zu erreichen.
Sonst wüste ich nicht warum bei der FluidPlugin Entwicklung nicht auch ein ähnlicher Weg bestritten wurde.

Nachdenkliche Grüsse :-u

DJLinux


OfflinePriv. Msg. Thema löschenEditierenZitat
 
Kein neuer Beitrag TroY , 23.07.2010, 12:54 Beitrag #2   
IP: n/a
Rang: Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren
Registrierung: 25.12.2007, 23:49
Land: Deutschland
3D Prog.: Art of Illusion
Homepage: http://www.uninformativ.de
 

AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge
 
Ich glaube, da kannst du dich am NullObject orientieren. Das ist auch eine abgeleitete Klasse von Object3D und man kann es in der Szene rumschubsen, sieht es dort und so weiter. Aber gerendert wird es nicht. Vornehmlich wohl, weil seine Methode „getRenderingMesh()“ nur „null“ zurückliefert – die Methode ist in NullObject.java gar nicht überschrieben, stammt also noch direkt aus Object3D.java.

Sprich, wenn du eine Subklasse von Object3D erzeugst ohne „getRenderingMesh()“ zu überschreiben, dann sollte es nicht rendern. =)


- github
- Warum der Begriff „Open Source“ am Kern der Sache vorbei geht

OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 29.07.2010, 21:18 Beitrag #3   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Hallo Troy,
man ist das ruhig hier auf dem Forum geworden wohl alle Ihr Konten "geplündert" und in den Urlaub geflogen. :-d

Ich bin gerade der Javamenia verfallen und "zeune" das Pferd von hinten auf.
Erst vor eineinhalb Jahren habe ich mit Elektronik angefangen und schon ein halbes Jahr später
meine ersten eigenen Komputerschaltungen entwickelt erst noch auf Breadboards
und dann als Platinenschaltungen "gebrutzel".
(bin nicht so der perfekte Löter aber er läuft)

Ein Projekt hat 3 CPU's (MCU's) mit insgesamt 24 parallel laufenden Cores und verfügt über SDCard, Video Out, VGA Out, Ethernet Anschluß , PS2 (Mouse,Keyboard) und Stereo Audioausgänge.

Wenn Du so eine Konstruktion unter Strom setzt dann passiert erstmal rein garnix wie auch ohne OS und Treiber.

Die Treiber sind nun zu 90% fertig und da ich nun (fleißig wie nun halt mal bin) schön "brav" Java lerne
kam es mir plötzlich in den Sinn das noch fehlende OS in Java zu schreiben.

Als erstes habe ich mir den Quellcode der freien und von Sun bzw. Oracle unabhängigen JAVA
Implementation "Kaffe" http://kaffe.org
angeschaut und festgestellt das die virtuelle CPU weniger Code ausmacht als eine 6502 CPU Emulation
die ich erst kürzlich geschrieben hatte.
http://www.freebasic.net/forum/viewtopic.php?t=10692&highlight=c64
Der C64 emulator muste sein weil ich mir einfach nicht vorstellen konnte wie ein Software
PC Emulator ein ganzes Motherborad und all dessen Komponenten (Timer, BUS, VGA, BIOS, ...) emuliert.
Nun weiss ich wie es geht :ddaumen:

Ich rede jetzt nicht von einer JVM mit JIT Compiler und Codeoptimizer das ist ein
"ganz anderes Kaliber und spielt in einer anderen Liga", was für ein Reim. =)

Also Treiber in Assembler fast fertig, VM nicht wirklich ein Problem für mich das könnte klappen
aber der Classloader entpupt sich als das eigentliche Software "Monster" bei diesem Vorhaben.

Ich habe ein Programm geschrieben welches "nur" die Aufgabe hat sich durch kompelierte *.class Files
zu "hangeln" und all dessen Geheimnisse mir preis gibt.

Wenn man so an die Sache heran geht lernt man JAVA im Vorbeiflug.

Nur schade das der Tag nicht 32 Stunden hat und die meiste Zeit für meine Spielentwicklung drauf geht.

Hast Du Dich (ich vermute als überzeugter) JAVA Entwickler auch mal auf die "low level" Ebene von
JAVA begeben und kanst mir den ein oder anderen "heißen" Tip geben ?

Grüsse DJLinux

edit:
Damit Du Dir solch eine Konstruktion besser vorstellen kannst habe ich mal ein Bild angehangen.
So sieht das erste größere von mir gelötete Teil aus. ( ~1000 Lötpunkte auf der Rückseite)
Alle Bauteile sind absichtlich nicht in SMD Form damit man noch "on the fly" Änderungen machen kann.
Eine zukünftige kleinere SMD Version welche dann industriell gerfertigt würde hätte die Ausmaße einer
Zigarettenschachtel und wäre so flach wie eine Tafel Schokolade.
(Leider sind da noch die ganzen Anschlüsse welche man nicht einfach weiter miniaturiesieren kann.)

Die drei senkrechten Chips sind die MCU's, sehr stromsparend und brachen keine Kühlung.
Links sieht man zwei Speicherchips rechts unten in der Ecke den SD Cardslot.
Obere Reihe Audio, Video, PS2 Mouse,Keyboard, VGA, Netzwerk, PC-Anschluss, Stromversorgung.
Die drei kleineren "Käfer" sind serielle EEPROMS wo ich die Treiber dauerhaft Speichern kann.
Das eigentliche OS welches noch nicht Existiert wird von SDCard geladen.


Anhänge:
475.347 Bytes 2 Downloads



Dieser Beitrag wurde insgesamt 14 mal editiert. Das letzte mal 30.07.2010, 05:07 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag TroY , 30.07.2010, 00:01 Beitrag #4   
IP: n/a
Rang: Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren
Registrierung: 25.12.2007, 23:49
Land: Deutschland
3D Prog.: Art of Illusion
Homepage: http://www.uninformativ.de
 

AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge
 
Wow. Wenn Leute anfangen, einfach mal Sachen zu bauen, dann beeindruckt mich das jedesmal auf’s Neue. Ich hab leider noch keinen richtigen Zugang zu Hardware gefunden, bin immer nur auf der Software-Seite. Vermutlich auch, weil ich Software nach Belieben erstellen und zerstören kann – einen Chip muss man erstmal haben. :pfeifen:

Insofern kann ich das, was du gebaut hast, noch gar nicht so richtig begreifen und einordnen. Was sind das zum Beispiel für CPUs, hast du da vielleicht den ein oder anderen Link zum Lesen? Auf dem Bild kann man leider nicht erkennen, was auf den Chips draufsteht. Wo kriegst du die Einzelteile her, lässt du das irgendwo fertigen, …? Du siehst, ich hab keine Ahnung. :-d


DJLinux hat folgendes geschrieben:
Hast Du Dich (ich vermute als überzeugter) JAVA Entwickler auch mal auf die "low level" Ebene von JAVA begeben und kanst mir den ein oder anderen "heißen" Tip geben ?

*hust*

In derartige Untiefen bin ich noch nicht vorgedrungen. Und als Java-Fan würde ich mich auch nicht gerade bezeichnen. Die Sprache ist überaus sperrig, verlangt nach unendlich viel Boilerplate-Code und so weiter. Die C-Syntax mag ich sowieso nicht besonders. Die Java-Plattform hat halt den Vorteil, dass sie vergleichsweise schmerzneutral auf den gängigen Systemen läuft und ziemlich oft schon installiert ist, aber da endet meine Euphorie dann auch schon. ;-) Im Falle von AoI ist es sicherlich für alle Beteiligten die beste Wahl, aber abseits von AoI habe ich (mittlerweile) größtenteils Abstand von Java genommen.

Sprich, nein, leider keinen heißen Tipp. :unsure:


DJLinux hat folgendes geschrieben:
man ist das ruhig hier auf dem Forum geworden wohl alle Ihr Konten "geplündert" und in den Urlaub geflogen. :-d

Ja, das ist lustig. Ab und an gibt es hier Ausbrüche katastrophal hoher Aktivität – und dann herrscht Totenstille. Klingt komisch, ist aber so.


- github
- Warum der Begriff „Open Source“ am Kern der Sache vorbei geht

OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 30.07.2010, 04:38 Beitrag #5   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Aslo wenn nicht JAVA als Hochsprache deine Mastersprache ist und Du auch kein C Style magst
Linux ohne C das geht doch garnicht :-)
dann bleibt ja nicht mehr viel übrig oder sind Scriptsprachen Bash, PHP, Phyton und Co Deine Favoriten ?

Es handelt sich bei den 3 Chips um MCU's (MicroControllerUnits) mit dem Namen "Propeller"
von der Firma Parallax die Chips bekommt man schon ab 5€.

Hier mal eine schöne Darstellung mit den 8 Cores per Chip.
http://www.parallax.com/Portals/0/Images/Prod/P/PropellerBlock-L.jpg

Hersteller: http://www.parallax.com/Microcontrollers/PropellerGeneralInformation/tabid/407/Default.aspx

Es gibt von anderen Herstellern auch sehr schöne CPU's und MCU's mit modernem Konzept
aber die haben z.B. 160 Konntakte auf der Unterseite und da ist nichts mit "ich baue mir einen Computer"
solche Teile können nur noch industriell auf Motherboards verlötet werden.
Das geht nicht mehr zu Hause mit Lötkolben (leider).

Den ganzen anderen elektronischen Kram bekommt recht günstig im Elektronik Handel.
z.B. http://Pollin.de und http://Reichelt.de.

Heutige digital Elektronik ist nicht so schwierig wie man annehmen könnte.
Die meisten Chips laufen etweder mit 5V oder 3.3V unter einander kommunizieren die ja nur mit 0 und 1
hat man die Grundlagen einmal verstanden dann steht einem ein riesiger "Baukasten" mit Tausenden
von digitalen Bauteilen zur Verfügung.

Das hat nicht viel mit anloger Elektronik zu tun sondern eher mit Software und Protokollen.

Soll heissen das ich einen modernen Komputer "Bauen" kann aber keinen blassen Schimmer habe
wie man z.B. einen guten HiFi Verstärker entwickelt oder einen alten Fernseher repariert.

Grüsse DJLinux



Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 30.07.2010, 05:11 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag TroY , 30.07.2010, 17:34 Beitrag #6   
IP: n/a
Rang: Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren
Registrierung: 25.12.2007, 23:49
Land: Deutschland
3D Prog.: Art of Illusion
Homepage: http://www.uninformativ.de
 

AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge
 
Sehr gut, danke. Die Handbücher dort sind ja nicht gar so kurz, da wird bestimmt das ein oder andere Licht aufgehen. =) Und:

DJLinux hat folgendes geschrieben:
Das hat nicht viel mit anloger Elektronik zu tun sondern eher mit Software und Protokollen.

Soll heissen das ich einen modernen Komputer "Bauen" kann aber keinen blassen Schimmer habe
wie man z.B. einen guten HiFi Verstärker entwickelt oder einen alten Fernseher repariert.

Das macht mir Hoffnung. :-d

Bloß mit GNU/Linux sieht’s jetzt bei deiner speziellen Hardware etwas düster aus, oder? Lese überall nur Windows. Aber pinguinfreundliche Bastelhardware dieser Art gibt es ja bestimmt auch – vom Arduino habe ich schon öfter mal gehört, aber das ist wohl nicht mit dem vergleichbar, was du da hast.

Wenn ich das jetzt richtig verstehe, dann willst du auf deiner Büchse eine eigene, einfache JVM zum Laufen bringen und in der soll dann erst das „richtige“ OS laufen? Also quasi ein OS im OS?


DJLinux hat folgendes geschrieben:
Aslo wenn nicht JAVA als Hochsprache deine Mastersprache ist und Du auch kein C Style magst
Linux ohne C das geht doch garnicht :-)
dann bleibt ja nicht mehr viel übrig oder sind Scriptsprachen Bash, PHP, Phyton und Co Deine Favoriten ?

Naja, was heißt „Mastersprache“? ;-) Eigentlich habe ich die nicht, ich fahre eher nach dem Motto „für jedes Problem das geeignete Werkzeug.“ Ans Herz gewachsen ist mir zwar eindeutig Python, aber für alles ist das auch nicht zu gebrauchen. Oft dreht es sich zum Beispiel nur um kleine Alltagsprobleme, die sich durch Kombination existierender Programme lösen lassen. In solchen Fällen wird dann ein Bash-Skript daraus, das einfach nur andere Programme miteinander verbindet. Wenn es etwas spezieller wird und mehr eigene Logik ins Programm muss, dann kommt Python zum Zug. Bei Sachen, wo es auf die letzte Millisekunde ankommt, dann C. Java mache ich hauptsächlich dann, wenn ich weiß, dass es auf Windows, GNU und/oder Mac laufen muss und wenn die Leute dort nicht so vertraut mit dem Selbst-Kompilieren sind. Das ist dann quasi Faulheit meinerseits, denn mit einer JAR können die meisten etwas anfangen, ohne dass man ihnen noch großartig Sachen erklären muss. :-d


- github
- Warum der Begriff „Open Source“ am Kern der Sache vorbei geht

OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 30.07.2010, 18:20 Beitrag #7   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Da Linux für diverse kommerziellen Sachen wie C und Basic Kompiler nicht die richtige Plattform ist
lassen manche Unternehmen es einfach unter den Tisch fallen und bewerben nur Win und Mac.

Aber für den Propeller Chip und all den anderes MC's ist Linux schon eine gute Wahl.

Es gibt die mitgelieferte kostenlose Sprache Spin objektorientierter Interpreter ca. 12-15 mal langsamer als Assembler
und einen freien C Kompiler jeweils für Linux und Windows.

Das ist ganz brauchbares Zeug wenn man einen MC hat der allein vor sich her werkelt.

Aber für das Design wie ich es habe 3 MC's Video-TV, VGA-RGB, Sound, Netzerk, Keyboard, Mouse
und das alles parrallel (ohne Interrupts) da bracht es schon eigene Tools.

Ein weiterer Vorteil eigener Tools ist das man diese dann hinterher auf dem eigenen OS benutzen kann.

Spin und das freie C ist nur dafür da um auf PC' für MC's programmieren zu können.

Ich möchte aber natürlich auf meinem eigenem OS auch programmieren können
ohne den Stromfresser PC einschalten zu müssen.

Ich als Single verballere 70€ Strom im Monat weil mein Entwickler PC 16 Stunden und zwischenzeitlich noch
ein zweit PC jeweils mit Monitor laufen.

Die 3 MC's brauchen gerade mal 450 mA (ohne aktives Netzwerk) und ich werde wohl auch ein stromsparendes Touch-Display noch in Betriebnehmen.

Wirklich brauchen tue ich es nicht aber "he" man lebt nur einmal und eien eigenes OS hat auch nicht jeder :-d

Dann fehlt nur noch ein UMT's Chip und GPS und Appel kann einpacken :w00t:

Grüsse DJLinux

edit:
Weiss nicht ob du es schon wustest aber es gibt Jasmin und JAS das sind Java Assembler.
Alle nicht Interpreter-Sprachen haben einen Assembler Emitter und ein Assembler erstellt daraus
Object Files welche mit dem Linker zu ausführbaren Programmen mit runtime Libs gebunden werden.

Wen man nun einen eigenen Kompiler schreibt dann erzeugt der JAVA Assembler Code
und Jasmin bzw. JAS erstellen daraus die *.class files. Als ich das erstemal "JAVA Assembler"
gelesen habe hatte ich gedacht "was ist das denn für ein Schertz". Wie man sich doch irren kann.





Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 30.07.2010, 18:35 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag vidiot , 30.07.2010, 21:31 Beitrag #8   
IP: n/a
Rang: Admin Admin Admin Admin Admin Admin Admin Admin Admin
Registrierung: 26.12.2007, 20:07
Wohnort: Hamburg
Land: n/a
3D Prog.: Art of Illusion u.a.
 

AoI-Board Inventar mit 1735 Punkte, 1521 Beiträge
 

DJLinux hat folgendes geschrieben:
Hallo Troy,
man ist das ruhig hier auf dem Forum geworden wohl alle Ihr Konten "geplündert" und in den Urlaub geflogen. :-d


Noch nicht! :-d
Ich denke die meisten (außer mir) halten es mit "Wenn man nichts zu sagen hat, einfach mal..."

Keine Angst also - ich verfolge auch diesen Thread und denke andere tun das auch.

LG
Vid


OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 30.07.2010, 23:15 Beitrag #9   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 

vidiot hat folgendes geschrieben:
Ich denke die meisten (außer mir) halten es mit "Wenn man nichts zu sagen hat, einfach mal..."
So kann man es auch sehen, dabei sitzen "die Leute" im stillen Kämmerlein und "spielen" mit Blender. :-d


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 30.07.2010, 23:19 Beitrag #10   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Sag mal TroY
welche Pakete muss man in JAVA importieren und warum manche nicht ?

z.B. ein System.out.println("not imported"); geht ohne irgend ein Import.

Sind alle Unterklassen und dessen Methoden vom Paket "System.*;" immer automatisch verfügbar oder wie oder was ?

Danke und Grüsse

DJLinux



Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 30.07.2010, 23:44 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag TroY , 30.07.2010, 23:45 Beitrag #11   
IP: n/a
Rang: Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren
Registrierung: 25.12.2007, 23:49
Land: Deutschland
3D Prog.: Art of Illusion
Homepage: http://www.uninformativ.de
 

AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge
 
Willst du etwa der Firma mit dem Obst Konkurrenz machen? :-d ;-)

(An Jasmin bin ich irgendwann mal vorbeigestolpert, aber aus irgendwelchen mysteriösen Gründen hat das keine allzu große Anziehungskraft auf mich ausgewirkt. :-u )


DJLinux hat folgendes geschrieben:
Sind alle Unterklassen und dessen Methoden vom Paket "System.*;" immer automatisch verfügbar oder wie oder was ?

Nein, aber die von java.lang, soweit ich weiß.


- github
- Warum der Begriff „Open Source“ am Kern der Sache vorbei geht


Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte mal 30.07.2010, 23:47 von TroY.


OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag Siri , 31.07.2010, 00:04 Beitrag #12   
IP: n/a
Rang: Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren
Registrierung: 26.12.2007, 12:02
Land: Deutschland
3D Prog.: AoI, 3DC, Blender, Bryce &a...
 

AoI-Board Inventar mit 1777 Punkte, 1540 Beiträge
 

Zitat:
So kann man es auch sehen, dabei sitzen "die Leute" im stillen Kämmerlein und "spielen" mit Blender. :-d


:blink:
...kannst du hellsehen DJ? Ich lausche nämlich gerade Helge Maus :teufel:

LG
Siri


Extra3: Willkommen bei Facebook :squint:

OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 31.07.2010, 00:34 Beitrag #13   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Ach so ist das danke TroY


Siri hat folgendes geschrieben:
:blink: ...kannst du hellsehen DJ?
Keine ahnung aber Ich wuste das Du mich das heute fragen würdest. :laola:

Euch Allen ein schönes Wochenende und geniest den warmen Samstag im freien
könnte vorerst der letzte schöne Wochenendtag sein.

Ich werde wohl mal den Rasenmäher anschmeißen und danach Freunde am Grill verwöhnen.

DJLinux



Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 31.07.2010, 15:10 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 31.07.2010, 15:09 Beitrag #14   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Also Metrologen sind echt schlechte "Hellseher" und meiner Meinung nach überbezahlt
hier ist absolut nichts mit Sonne im Garten. :daumend:

Nicht grillende Grüsse

DJLinux


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 31.07.2010, 17:18 Beitrag #15   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Hallo TroY,
ich habe mal meinen Class Reader über Dein "OFFExporter.class" laufen lassen
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
magic CAFEBABE
version 50.0
constant_pool_count 147
access_flags &H21 class public super
this_class artofillusion.translators.OFFExporter
super_class java.lang.Object
interfaces_count 0
fields_count 0
methods_count 3
method[0]
public <init>()V
method attributes 1
attribute[0] Code size 29
byte code >&H2A,&HB7,&H00,&H01,&HB1<
nCodeExceptions 0
nCodeAttributes 1
LineNumberTable 1
end code attributes

method[1]
public  static exportFile(Lbuoy.widget.BFrame;Lartofillusion.Scene;)V
method attributes 1
attribute[0] Code size 144
byte code >&H03,&H3D,&H1C,&H2B,&HB6,&H00,&H02,&HA2,&H00,&H46,&H2B,&H1C,&HB6,&H00
,&H03,&H4E,&H2D,&HB6,&H00,&H04,&HC1,&H00,&H05,&H99,&H00,&H30,&HBB,&H00,&H06,&H59
,&HBB,&H00,&H07,&H59,&HB7,&H00,&H08,&H12,&H09,&HB6,&H00,&H0A,&H1C,&HB6,&H00,&H0B
,&H12,&H0C,&HB6,&H00,&H0A,&HB6,&H00,&H0D,&HB7,&H00,&H0E,&H3A,&H04,&H19,&H04,&H2D
,&HB6,&H00,&H04,&HC0,&H00,&H05,&HB8,&H00,&H0F,&H84,&H02,&H01,&HA7,&HFF,&HB8,&HB1
<
nCodeExceptions 0
nCodeAttributes 2
LineNumberTable 7
end code attributes

method[2]
private  static exportObjectToFile(Ljava.io.File;Lartofillusion.object.FacetedM
esh;)V
method attributes 1
attribute[0] Code size 510
byte code >&HBB,&H00,&H10,&H59,&H2A,&HB7,&H00,&H11,&H4D,&HBB,&H00,&H12,&H59,&H2C
,&HB7,&H00,&H13,&H4E,&H2D,&H12,&H14,&HB6,&H00,&H15,&H2D,&HB6,&H00,&H16,&H2B,&HB9
,&H00,&H17,&H01,&H00,&HBE,&H36,&H04,&H2B,&HB9,&H00,&H18,&H01,&H00,&H36,&H05,&H2D
,&HBB,&H00,&H07,&H59,&HB7,&H00,&H08,&H15,&H04,&HB6,&H00,&H0B,&H12,&H19,&HB6,&H00
,&H0A,&H15,&H05,&HB6,&H00,&H0B,&H12,&H1A,&HB6,&H00,&H0A,&HB6,&H00,&H0D,&HB6,&H00
,&H15,&H2D,&HB6,&H00,&H16,&H2B,&HB9,&H00,&H17,&H01,&H00,&H3A,&H06,&H03,&H36,&H07
,&H15,&H07,&H19,&H06,&HBE,&HA2,&H00,&H54,&H2D,&HBB,&H00,&H07,&H59,&HB7,&H00,&H08
,&H19,&H06,&H15,&H07,&H32,&HB4,&H00,&H1B,&HB4,&H00,&H1C,&HB6,&H00,&H1D,&H12,&H19
,&HB6,&H00,&H0A,&H19,&H06,&H15,&H07,&H32,&HB4,&H00,&H1B,&HB4,&H00,&H1E,&HB6,&H00
,&H1D,&H12,&H19,&HB6,&H00,&H0A,&H19,&H06,&H15,&H07,&H32,&HB4,&H00,&H1B,&HB4,&H00
,&H1F,&HB6,&H00,&H1D,&H12,&H19,&HB6,&H00,&H0A,&HB6,&H00,&H0D,&HB6,&H00,&H15,&H2D
,&HB6,&H00,&H16,&H84,&H07,&H01,&HA7,&HFF,&HAA,&H03,&H36,&H07,&H15,&H07,&H15,&H05
,&HA2,&H00,&H5F,&H2B,&H15,&H07,&HB9,&H00,&H20,&H02,&H00,&H36,&H08,&H2D,&HBB,&H00
,&H07,&H59,&HB7,&H00,&H08,&H15,&H08,&HB6,&H00,&H0B,&H12,&H19,&HB6,&H00,&H0A,&HB6
,&H00,&H0D,&HB6,&H00,&H15,&H03,&H36,&H09,&H15,&H09,&H15,&H08,&HA2,&H00,&H29,&H2D
,&H2B,&H15,&H07,&H15,&H09,&HB9,&H00,&H21,&H03,&H00,&HB8,&H00,&H22,&HB6,&H00,&H15
,&H15,&H09,&H15,&H08,&H04,&H64,&HA2,&H00,&H09,&H2D,&H12,&H19,&HB6,&H00,&H15,&H84
,&H09,&H01,&HA7,&HFF,&HD6,&H2D,&HB6,&H00,&H16,&H84,&H07,&H01,&HA7,&HFF,&HA0,&H2D
,&HB6,&H00,&H23,&HA7,&H00,&H0B,&H4D,&HB2,&H00,&H25,&H2C,&HB6,&H00,&H26,&HB1<
nCodeExceptions 1
nCodeAttributes 2
LineNumberTable 28
end code attributes

end methods runtime code overall 384
class attributes_count 1
attributes[0] Sourcefile OFFExporter.java


Von den 2384 Bytes des class files braucht die VM zur Ausführung nur 384 Bytes "Code"

Um abhängige Pakete laden zu können bedarf es noch vollgende Bytes
artofillusion.translators.OFFExporter //<37>
java.lang.Object //<16>
<init>()V // <9>
exportFile(Lbuoy.widget.BFrame;Lartofillusion.Scene;)V //<54>
exportObjectToFile(Ljava.io.File;Lartofillusion.object.FacetedM //<63>

Code = 384 Bytes
Skriptoren = 179 Bytes
Benötigt = 563 Bytes

Somit bräuchte eine eigene VM nur 563 Bytes um OFFExporter.class fehlerfrei ausführen zu können.

Das ist natürlich prima für Geräte die nicht über so viele MB's Speicher Verfügen wie ein heutiger PC.

In den class files ist meiner Meinung nach so viel "Balast" das die JR6 Runtime classes (60MB gepackt)
auch in ein 20MB *.jar file passen würden.

In den class files sind z.B. Tabellen drin die die Zeilennummern speichern "LineNumberTable"
wo der kompelierte Byte code aus den source codes herkommt.
Das ist toll für einen einzelschritt debuger und sollte auch in der "Runtime" des JDK's vorhanden sein
aber in der Java Runtime JRE6 des Users hat das aber nichts zu suchen.

Nur mal so als Info

Grüsse DJLinux





Dieser Beitrag wurde insgesamt 3 mal editiert. Das letzte mal 31.07.2010, 17:29 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 05.08.2010, 02:41 Beitrag #16   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Hallo TroY,
Du als Scriptprofessor :-d
kannst mir vielleicht weiter helfen.

Kannst du ein Script über den Ordner mit JAVA Doc laufen lassen welches
alle Klassen bzw. Methoden mit dem Attribute native in eine Text-Datei schreibt ?

für Dich ist der Aufwandt bestimmt nur Minuten ich müste mich erst mal einlesen
und bis das Script fehlerfrei läuft bracht es Stunden. :rot:

Wäre echt prima.

Grüsse DJLinux




Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte mal 05.08.2010, 02:44 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag TroY , 05.08.2010, 15:32 Beitrag #17   
IP: n/a
Rang: Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren
Registrierung: 25.12.2007, 23:49
Land: Deutschland
3D Prog.: Art of Illusion
Homepage: http://www.uninformativ.de
 

AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge
 
Muss ich mal blöd fragen: Was meinst du mit „Attribute native“? Und welches Javadoc-Verzeichnis, das von AoI?

:wacko:


- github
- Warum der Begriff „Open Source“ am Kern der Sache vorbei geht

OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 05.08.2010, 21:23 Beitrag #18   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
1) Methoden die im JDK als NATIVE deklariert sind.
Z.B. Eine Methode die das Direktory eier Festplatte (oder was auch immer) anfordert
wird irgend wann in einer Methode enden die das Attribute "Native" hat.

Java selbst "weiss" nicht was Festplatten sind und erst recht nicht was ein Dateisystem ist.
Deshalb deligiert es den Job an eine Methode die unter Linux z.B. in einer *.so oder unter windows in einer *.dll
implementiert wurde.

In einer *.so oder *.dll läuft kein Java Code sondern "nativer" CPU Code (meistens das Ergebniss eines C Kompilers)

In der Regel müsten das alle Hardware nahen Sachen sein wie Filesystem, Mouse, Sound. ...

2) Im JDK hast Du sicherlich einen Ordner wo alle klassen in HTML dokumentiert sind.
Da diese so viel ich weiss mit javadoc erstellt werden meinte ich den ordner JAVA Doc kann aber auch anders heissen.

Dein Script müste sich "nur" rekursive durch alle *.html Dateien "hangeln" und Zeilen in dem das Word "native",
vorkommt in eine Datei schreiben.

So könnte eine Zeile aussehen

public native void methodenName();

(muss aber nicht das suche ich mir dann schon selbst zusammen)

Ich muss einen Überblick bekommen was alles unter Java CPU/OS abhängiger Code ist und was JAVA code ist.

Nächstes Beispiel:
Java läuft ja auch auf vielen kleinen tragbaren Geräten wenn dessen CPU z.B. eine Einheit für Floatingpoint's
hat dann müste die Methode Math.Cos() irgendwann in eine "native" Methode enden.

Hat das Gerät aber keine Unterstützung für Fließpunktzahlen dann endet Math.Cos() in einer Java Methode
die dann ohne Hardware Unterstützung den Cosinus berechnet.

Auf Linux und Windows müsten daher sämtliche Mathe Methoden "native" sein weil eine FPU z.V. steht.

Ich glaub Das Du nun weiss was ich meinte.

Also ab an die Konsole und mich glücklich machen :-d

Native also "echte" Grüsse

DJLinux






Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 07.08.2010, 19:37 von DJLinux.


OfflinePriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag TroY , 06.08.2010, 15:01 Beitrag #19   
IP: n/a
Rang: Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren Moderatoren
Registrierung: 25.12.2007, 23:49
Land: Deutschland
3D Prog.: Art of Illusion
Homepage: http://www.uninformativ.de
 

AoI-Board Inventar mit 1418 Punkte, 1251 Beiträge
 
Ich befürchte, ich stehe auf dem Schlauch. Was du prinzipiell mit den „native“-Deklarationen meinst, ist mir jetzt klar. Aber wo finde ich diese Information?


DJLinux hat folgendes geschrieben:
2) Im JDK hast Du sicherlich einen Ordner wo alle klassen in HTML dokumentiert sind.

Den habe ich nicht. Hast du den? Ich benutze dafür immer die Online-Version. Das meinst du doch, oder? Das jedenfalls finde ich partout nicht als durchsuchbaren Download. Kann mich zwar erinnern, dass es das irgendwann mal gab, aber heute finde ich das nicht mehr. :wacko:

Da stünde es aber auf jeden Fall nicht drin. Dein Beispiel mit „java.lang.Math.cos()“ als Wrapper für „java.lang.StrictMath.cos()“, was dann wiederum nativen Code ausführt, kann man anhand der Online-JavaDocs nicht nachvollziehen – da stehen keine „native“-Attribute drin. Nur im Fließtext wird erwähnt, dass das vermutlich „native“ sein könnte.

Es gibt hier den Sourcecode des JDK. Wenn man da in den Java-Dateien nach „native“ sucht, kommt die Datei im Anhang heraus. Bringt dir das was? Suche ich darin nach „cos“, dann sehe ich, dass „java.lang.StrictMath.cos()“ nur eine „native“-Deklaration ist – so weit, so gut. Mehr als einmal „find“ mit „grep“ ist das aber auch nicht, das hättest du auch selbst hingekriegt. Irgendwie schwant mir, dass du etwas anderes haben willst. :-d

– edit: Tippen ist heute nicht meine Stärke.

Anhänge:
native.zip 85.866 Bytes 1 Downloads


- github
- Warum der Begriff „Open Source“ am Kern der Sache vorbei geht


Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 06.08.2010, 15:02 von TroY.


OfflineEmailPriv. Msg. LöschenEditierenZitat
 
Kein neuer Beitrag DJLinux , 07.08.2010, 23:01 Beitrag #20   
IP: n/a
Rang: User User User User User User User User User
Registrierung: 08.07.2010, 07:31
Land: Deutschland
Homepage: http://Shiny3D.de
 

Erfahren mit 171 Punkte, 129 Beiträge
 
Hi TroY,
"Source Code des JDK's" da hätte ich eigentlich auch selbst drauf komen können. :rot:

Danke für die Datei jetzt weiss ich schon mal wo ich da ansetzen kann.

Wuste gar nicht das es unter Windows "findstr" in der Konsole gibt,
ist zwar nicht so mächtig wie "grep" aber nach (("public" OR "private") AND "native") in *.html suchen geht schon.

By the way.

Ich habe herraus bekommen wie ich unter Windows "ohne Linker" Linux Programme (nicht JAVA) erzeugen kann
auch ist es mir gelungen unter Linux ein Windows programm zu erzeugen welches ohne Probleme auf windows lief.

Beide öffnen ein Fenster (nicht Konsole) mit der beliebten "Hello, World." Message.

Win32 Binary = 1380 und Linux Binary 980 Bytes.

Als Kompiler "backend" wäre das echt der Hit:

Neues Projekt erzeugen ...

Bitte wählen Sie die Zielplattform(en)
Windows 32 [X]
Linux x86 [x]

Wählen sie die Art Ihrer Applikation ...
Konsole ( )
GUI (x)
OpenGL ( )

Wie schon angemerkt "schade das der Tag keine 32 Stunden hat"

Grüsse DJLinux



OfflinePriv. Msg. LöschenEditierenZitat
Abonnieren Druckansicht Antworten

1 2    ( Anzeige: 1 - 20 , Gesamt: 23 )

User in diesem Thema: 0 Registrierte, 1 Gast, 0 Bots
Keine
Legende: Admin, User, SuperMod, Coder, Moderatoren

Thema-Aktionen: Beiträge verschieben


Ähnliche Themen zu "under the hood (AOI Internas)"
  Antworten Aufrufe Themeneröffnung Letzter Beitrag

Thema Speicherzuweisung für Aoi 19 460 09.02.2009, 05:30
Von: voolger
14.08.2010, 13:52
Von: Thora

  Helix-Script: Ringelschwänzchen für AoI   [ Seiten: 1 2 3 ] 44 1136 17.03.2008, 20:05
Von: TroY
24.07.2010, 00:05
Von: vidiot

  thread or not thread this is the questio ... 7 128 21.07.2010, 06:57
Von: DJLinux
23.07.2010, 12:46
Von: TroY

  AOI ist vergesslich oder was mache ich f ... 11 150 15.07.2010, 01:44
Von: DJLinux
15.07.2010, 23:16
Von: Siri

  Schönheitsfehler der OpenGL AOI engine. ... 1 85 14.07.2010, 22:46
Von: DJLinux
14.07.2010, 23:07
Von: vidiot
 
0.215433 Sek. 8 DB-Zugriffe
Boardsolution v1.36 | © Nils Asmussen 2003-2007 AoI-Board Design | © www.digi-design.de 2010
Neue Seite 1

[Impressum] [Spenden] [Kontakt] [Zugriffsstatistik]

Pagerank