Your SlideShare is downloading. ×
0
Java-Linux-Mobile Platform
Status <ul><li>Increasing number of small mobile Linux devices </li></ul><ul><li>Java on mobile mobile and embedded device...
Java embedded? <ul><li>What is Java? </li></ul><ul><ul><li>J2ME CLDC </li></ul></ul><ul><ul><li>J2ME CDC </li></ul></ul><u...
Java and Java-like Implementations <ul><li>Sun J2SE – (GPL and proprietary) </li></ul><ul><li>Sun J2ME PhoneME (GPL) </li>...
As always - the GUI makes it! <ul><li>Except J2ME CLDC everything is ~ Java 1.3. </li></ul><ul><li>Concise: The different ...
Pocket-Size Linux <ul><li>Distributions </li></ul><ul><ul><li>Familiar (OpenEmbedded, ipkg) </li></ul></ul><ul><ul><li>Ång...
Java @ Pocket-Size Linux <ul><li>mostly sporadic:  </li></ul><ul><ul><li>e.g. jamvm and the old gnu classpath </li></ul></...
Which problems exist? <ul><li>at the Java-Porting </li></ul><ul><ul><li>the Build Process is different, mostly </li></ul><...
JaLiMo <ul><li>JaLiMo is an initiative to build a complete free Java-Stack for mobile Linux devices. </li></ul><ul><li>the...
JaLiMo - Who? <ul><li>sponsored by the Tarent GmbH </li></ul><ul><ul><li>Sebastian Mancke </li></ul></ul><ul><ul><li>Rober...
JaLiMo - What? Integration Integration GUI Runtime Build Plattform CACAO JVM JamVM GNU Classpath phoneME MIDPath Swing/esc...
Build Strategies - Cross Compiling <ul><ul><li>Cross Toolchain (gcc, ld, .. for arm) </li></ul></ul><ul><ul><li>Rootstrap ...
Build Strategies - Scratchbox <ul><ul><li>an emulator based on Qemu </li></ul></ul><ul><ul><li>integrated with Toolchain a...
Build Strategies - maven2 <ul><ul><li>established Java Build environment  </li></ul></ul><ul><li>Advantages: </li></ul><ul...
maven packaging plugin <ul><li>Packaging </li></ul><ul><ul><li>IzPack installer (for desktop) </li></ul></ul><ul><ul><li>....
maven packaging plugin <ul><li>Java package for maemo in 5 minutes! </li></ul><ul><li>.. writing of code and adaptation of...
maven with JNI code <ul><li>normal maven packaging project + makefile </li></ul><ul><li>Process:  mvn pkg:deb </li></ul><u...
Java-gnome <ul><li>Java-gnome a project, that already exists for 9 years </li></ul><ul><li>the 2 nd  version has a quite h...
Java-gnome - concept <ul><li>Code Generation of the JNI layer </li></ul><ul><ul><li>Object definitions are built from the ...
Java-gnome <ul><li>Why Java-gnome </li></ul><ul><ul><li>high-performance, small </li></ul></ul><ul><ul><li>Possibility of ...
Java-gnome - coverage <ul><li>very low in the upstream: </li></ul><ul><ul><li>Window, Widget, Button, Label, Hbox, VBox </...
libmaemo <ul><li>Enhancements of the java-gnome components with bindings to the Hildon framework. Necessary steps: </li></...
MIDPath <ul><li>MIDPath is a MIDP2 implementation based on MIDP </li></ul><ul><li>code of Sun's PhoneME. </li></ul><ul><li...
MIDPath - architekture <ul><li>By different Backends, the MIDPath is quite portable. </li></ul><ul><li>For the use on smal...
MIDPath - Status <ul><li>Status: </li></ul><ul><ul><li>quite stable </li></ul></ul><ul><ul><li>APIs: JSR-118 + FileConnect...
Swing/Escher <ul><li>Swing/AWT Support of GNU Classpath in maemo would require a higher gtk version. </li></ul><ul><li>Alt...
Swing/Escher – Difficulty of Maemo Input <ul><li>Soft Keyboard doesn't activate any X Key-Events </li></ul><ul><ul><li>tex...
lib-JaLiMo <ul><li>the JaLiMo project ist still getting off the ground </li></ul><ul><li>completeness of a 1.0 is planned ...
lib-JaLiMo concepts <ul><li>Messaging </li></ul><ul><ul><li>Asynchrone messaging as the application's basis </li></ul></ul...
lib-JaLiMo concepts <ul><li>Data-Binding </li></ul><ul><ul><li>Bindung of data and view through messages to each other </l...
lib-JaLiMo Konzepte <ul><li>GUI Templating </li></ul><ul><ul><li>Creation of parts of the GUI by using description languag...
JaLiMo - Robots <ul><li>Why? To clarify how easy open standard components are for comlpex architectures. </li></ul><ul><li...
Jazelle DBX (Direct Bytecode eXecution) <ul><li>The N770 and the N800 have the proprietary Jazelle enhancement in their pr...
 
Jazelle DBX (Direct Bytecode eXecution) <ul><li>To change to the DBX-Modus seems to be no problem </li></ul><ul><li>Debugg...
JaLiMo Resources <ul><li>www.jalimo.org </li></ul><ul><li>Soon in addition: www.elvolvis.org </li></ul><ul><ul><li>Gforge ...
Upcoming SlideShare
Loading in...5
×

Jalimo Slides Linuxtag2007 (English)

2,389

Published on

Jalimo Slides Linuxtag2007

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,389
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
108
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Jalimo Slides Linuxtag2007 (English)"

  1. 1. Java-Linux-Mobile Platform
  2. 2. Status <ul><li>Increasing number of small mobile Linux devices </li></ul><ul><li>Java on mobile mobile and embedded devices </li></ul><ul><li>Classpath & friends are 'grown up' </li></ul>but! <ul><li>Free java on Linux-embedded is rarely in use </li></ul>
  3. 3. Java embedded? <ul><li>What is Java? </li></ul><ul><ul><li>J2ME CLDC </li></ul></ul><ul><ul><li>J2ME CDC </li></ul></ul><ul><ul><li>J2ME CDC + AGUI (JSR 209) </li></ul></ul><ul><ul><li>J2SE </li></ul></ul><ul><li>Only certified platforms (JVMs+class libraries) are allowed to be named 'Java'. </li></ul><ul><li>The alternative, free JVMs are not certified </li></ul>
  4. 4. Java and Java-like Implementations <ul><li>Sun J2SE – (GPL and proprietary) </li></ul><ul><li>Sun J2ME PhoneME (GPL) </li></ul><ul><li>J2ME IBM J9 (proprietary) </li></ul><ul><li>Gnu Classpath (GPL) with different JVMs </li></ul><ul><ul><li>cacaojvm (GPL) </li></ul></ul><ul><ul><li>jamvm (GPL) </li></ul></ul><ul><ul><li>kaffe (GPL) </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><ul><li>Aonix, Perc (proprietary) </li></ul></ul><ul><ul><li>Aicas, JamaicaVM (proprietary) </li></ul></ul><ul><li>... </li></ul>} <ul><ul><ul><li>Realtime capable </li></ul></ul></ul>
  5. 5. As always - the GUI makes it! <ul><li>Except J2ME CLDC everything is ~ Java 1.3. </li></ul><ul><li>Concise: The different GUI attempts. </li></ul><ul><ul><li>MIDP 2.0 (minimal) </li></ul></ul><ul><ul><li>AWT (small amount of features) </li></ul></ul><ul><ul><li>Swing (problems in performance) </li></ul></ul><ul><ul><li>SWT (with GTK peer: many dependencies) </li></ul></ul><ul><ul><li>SWT (with QT peer: proprietary) </li></ul></ul><ul><li>further possibilities </li></ul><ul><ul><li>Java-gnome </li></ul></ul><ul><ul><li>escher (pure java X library) </li></ul></ul><ul><ul><li>jsdl (java sdl bindings) </li></ul></ul>
  6. 6. Pocket-Size Linux <ul><li>Distributions </li></ul><ul><ul><li>Familiar (OpenEmbedded, ipkg) </li></ul></ul><ul><ul><li>Ångström (OpenEmbedded, ipkg) </li></ul></ul><ul><ul><li>Maemo (Scratchbox, apt, dpkg) </li></ul></ul><ul><ul><li>OpenMoko (OpenEmbedded, ipkg) </li></ul></ul><ul><li>Environments </li></ul><ul><ul><li>Opie (Framebuffer/QT embedded) </li></ul></ul><ul><ul><li>GPE (Xserver/GTK) </li></ul></ul><ul><ul><li>Maemo (Xserver/GTK + Hildon + Osso) </li></ul></ul><ul><ul><li>OpenMoko (Xserver/GTK + libmokoui + libmokocore) </li></ul></ul>
  7. 7. Java @ Pocket-Size Linux <ul><li>mostly sporadic: </li></ul><ul><ul><li>e.g. jamvm and the old gnu classpath </li></ul></ul><ul><ul><li>seldomly updated </li></ul></ul><ul><ul><li>no concept for packaging and further integration </li></ul></ul><ul><ul><li>GUI: mostly AWT (with gtk peer) </li></ul></ul><ul><li>OpenEmbedded: jamvm 1.4.2/classpath 0.90 </li></ul><ul><li>Maemo: </li></ul><ul><ul><li>jamvm 1.4.2/classpath 0.91 (without 'hildonizing') </li></ul></ul><ul><ul><li>sun PhoneME (as tar.gz, without gui) </li></ul></ul><ul><ul><li>JaLiMo </li></ul></ul>
  8. 8. Which problems exist? <ul><li>at the Java-Porting </li></ul><ul><ul><li>the Build Process is different, mostly </li></ul></ul><ul><ul><li>dependencies for the GUI </li></ul></ul><ul><li>missing optimisation for the embedded area </li></ul><ul><ul><li>size & modularization </li></ul></ul><ul><ul><li>startup-speed </li></ul></ul><ul><li>in development </li></ul><ul><ul><li>Embedded Java is different </li></ul></ul><ul><ul><li>missing integration in the environments </li></ul></ul><ul><ul><li>packaging + dependency management </li></ul></ul><ul><ul><li>missing dependencies and bindings </li></ul></ul><ul><ul><li>bad framework/toolchain support </li></ul></ul>
  9. 9. JaLiMo <ul><li>JaLiMo is an initiative to build a complete free Java-Stack for mobile Linux devices. </li></ul><ul><li>the integration and completion of existing projects has the focus. </li></ul>&quot;Java-like environment for mobile Linux devices&quot; Main tasks are the problems after porting the JVM!
  10. 10. JaLiMo - Who? <ul><li>sponsored by the Tarent GmbH </li></ul><ul><ul><li>Sebastian Mancke </li></ul></ul><ul><ul><li>Robert Schuster (Gnu Classpath) </li></ul></ul><ul><ul><li>Fabian Köster </li></ul></ul><ul><li>Unterstützt durch </li></ul><ul><ul><li>Christian Thalinger (cacaojvm.org) </li></ul></ul><ul><ul><li>Roman Kennke (Gnu Classpath, escher) </li></ul></ul><ul><ul><li>Guillaume Legris (MIDPath) </li></ul></ul><ul><ul><li>Andrew Cowie (java-gnome) </li></ul></ul><ul><ul><li>... </li></ul></ul>
  11. 11. JaLiMo - What? Integration Integration GUI Runtime Build Plattform CACAO JVM JamVM GNU Classpath phoneME MIDPath Swing/escher java-gnome SWT maven packaging plugin OpenEmbedded integration mvn2deb libjalimo-core libopenmoko libmaemo maemo ...?... openmoko
  12. 12. Build Strategies - Cross Compiling <ul><ul><li>Cross Toolchain (gcc, ld, .. for arm) </li></ul></ul><ul><ul><li>Rootstrap </li></ul></ul><ul><ul><li>setting: PATH, CC, LD, AR, PKG_CONFIG_PATH </li></ul></ul><ul><ul><li>wrapper for: dpkg-architecture and pkg-config </li></ul></ul><ul><li>Advantages: </li></ul><ul><ul><li>the host tools (z.B. javac, javah, jar) are available. </li></ul></ul><ul><ul><li>useage in combination with dpkg-buildpackage </li></ul></ul><ul><li>Problems: </li></ul><ul><ul><li>keeping Rootstrap up to date </li></ul></ul><ul><ul><li>prone to errors by missing chroot </li></ul></ul>
  13. 13. Build Strategies - Scratchbox <ul><ul><li>an emulator based on Qemu </li></ul></ul><ul><ul><li>integrated with Toolchain and Rootstrap </li></ul></ul><ul><li>Advantages: </li></ul><ul><ul><li>direct copy of the target system </li></ul></ul><ul><ul><li>no more Cross Compiling </li></ul></ul><ul><li>Problems: </li></ul><ul><ul><li>no support of special Build Tools (z.B. javac, javah, ..) </li></ul></ul><ul><ul><li>Java binaries (e.g. jamvm or cacao) are not working in scratchbox </li></ul></ul>
  14. 14. Build Strategies - maven2 <ul><ul><li>established Java Build environment </li></ul></ul><ul><li>Advantages: </li></ul><ul><ul><li>Management of dependencies </li></ul></ul><ul><ul><li>Standardized Build Process </li></ul></ul><ul><ul><li>Plugin Architekture </li></ul></ul><ul><li>Disadvantages: </li></ul><ul><ul><li>highly Java centred </li></ul></ul><ul><ul><li>bad support for JNI and Cross Compiling </li></ul></ul><ul><ul><li>no packaging conzept </li></ul></ul>
  15. 15. maven packaging plugin <ul><li>Packaging </li></ul><ul><ul><li>IzPack installer (for desktop) </li></ul></ul><ul><ul><li>.deb (for desktop and embedded) </li></ul></ul><ul><ul><li>.ipkg (planned) </li></ul></ul><ul><li>generation of startscripts </li></ul><ul><li>orientation towards debian guidelines </li></ul><ul><li>conversion of the maven dependencies to debian dependencies </li></ul><ul><ul><li>A maven plugin, developed by the tarent (Robert Schuster) to pack projects – released under (GPL). </li></ul></ul>
  16. 16. maven packaging plugin <ul><li>Java package for maemo in 5 minutes! </li></ul><ul><li>.. writing of code and adaptation of pom.xml .. </li></ul><ul><li>.. and the .deb archive is complete! </li></ul>mvn archetype:create -DarchetypeGroupId=org.jalimo.archetype -DarchetypeArtifactId=gtkapp -DarchetypeVersion=0.1.0-SNAPSHOT -DremoteRepositories=http://www.jalimo.org/maven -DgroupId=<your project group id> -DartifactId=<your artifact id> mvn -Dmaven.test.skip=true pkg:deb
  17. 17. maven with JNI code <ul><li>normal maven packaging project + makefile </li></ul><ul><li>Process: mvn pkg:deb </li></ul><ul><ul><li>compiling of the Java classes </li></ul></ul><ul><ul><li>generation of the header files with javah </li></ul></ul><ul><ul><li>compiling of the C-code in scratchbox through /scratchbox/login <scriptfile> </li></ul></ul><ul><ul><li>collection of the binaries </li></ul></ul><ul><ul><li>generation of the .deb archives </li></ul></ul><ul><ul><li>Many projects are composed of java and C code </li></ul></ul>} } } <ul><li>Host </li></ul><ul><li>Host </li></ul><ul><li>Emulator </li></ul>example: java-gnome
  18. 18. Java-gnome <ul><li>Java-gnome a project, that already exists for 9 years </li></ul><ul><li>the 2 nd version has a quite high API-cover, but too many problems </li></ul><ul><li>since the last 1,5 years: rewrite java-gnome4 </li></ul><ul><ul><li>clean Design </li></ul></ul><ul><ul><li>lightweight </li></ul></ul><ul><ul><li>small API-cover </li></ul></ul><ul><ul><li>unfortunately just makes slow progress </li></ul></ul><ul><li>But: a good concept </li></ul>
  19. 19. Java-gnome - concept <ul><li>Code Generation of the JNI layer </li></ul><ul><ul><li>Object definitions are built from the GTK header files. </li></ul></ul><ul><ul><li>For each Gtk 'class' a C and Java file is generated that contains the whole JNI-code. </li></ul></ul><ul><ul><li>Java scopes of this layer are restricted to 'package'. </li></ul></ul><ul><ul><li>In a clean API layer the realization of the procedural code happens in a object-oriented API. </li></ul></ul><ul><li>The GTK's pseudo-class structure is properly mapped in Java. </li></ul><ul><li>This way and the code generator are possibly suitable for other libraries: e. g. hildon or libopenmoko. </li></ul>
  20. 20. Java-gnome <ul><li>Why Java-gnome </li></ul><ul><ul><li>high-performance, small </li></ul></ul><ul><ul><li>Possibility of smooth integration </li></ul></ul><ul><ul><li>support by Glade2 GUI Builder </li></ul></ul><ul><ul><li>simple, lovely API </li></ul></ul>
  21. 21. Java-gnome - coverage <ul><li>very low in the upstream: </li></ul><ul><ul><li>Window, Widget, Button, Label, Hbox, VBox </li></ul></ul><ul><li>prototypical enhancements on two evenings: </li></ul><ul><ul><li>Entry </li></ul></ul><ul><ul><li>TextView, TextBuffer </li></ul></ul><ul><ul><li>ToggleButton </li></ul></ul><ul><ul><li>CheckButton </li></ul></ul><ul><ul><li>ComboBox </li></ul></ul><ul><ul><li>MenuBar, Menu, MenuItem </li></ul></ul><ul><ul><ul><li>ScrolledWindow </li></ul></ul></ul><ul><ul><ul><li>Frame </li></ul></ul></ul><ul><ul><ul><li>Notebook </li></ul></ul></ul><ul><ul><ul><li>HSeparator, VSeparator </li></ul></ul></ul><ul><ul><ul><li>Image </li></ul></ul></ul>Obviously: good concept!
  22. 22. libmaemo <ul><li>Enhancements of the java-gnome components with bindings to the Hildon framework. Necessary steps: </li></ul><ul><ul><li>Wrapper for HildonWindow and HildonProgram (already existing) </li></ul></ul><ul><ul><li>Enhanced Widgets of the Hildon Frameworks </li></ul></ul><ul><ul><li>Bindings for Status Bar Plugins </li></ul></ul><ul><li>Wrapper for the libosso </li></ul><ul><ul><li>communication between applications </li></ul></ul><ul><ul><li>maybe possible with the existing project java-dbus </li></ul></ul>
  23. 23. MIDPath <ul><li>MIDPath is a MIDP2 implementation based on MIDP </li></ul><ul><li>code of Sun's PhoneME. </li></ul><ul><li>On the opposite to PhoneME, MIDPath runs on Java SE as well as Java ME CLDC. </li></ul><ul><li>By that it can be used out of the box with Kaffe, Cacao, JamVM or other JVMs. </li></ul><ul><li>Guillaume Legris has written a GTK Backend for JaLiMo, that we were able to fit to the Maemo Input Framework. </li></ul>
  24. 24. MIDPath - architekture <ul><li>By different Backends, the MIDPath is quite portable. </li></ul><ul><li>For the use on small devices, there is an alternative using the Cacao CLDC Version. </li></ul>MIDPATH Java ME CLDC AWT SWT JavaSound SDL X11 ALSA Cacao JamVM Kaffe Cacao CLDC GNU Classpath JVMs Standard Libraries Backends Core GTK
  25. 25. MIDPath - Status <ul><li>Status: </li></ul><ul><ul><li>quite stable </li></ul></ul><ul><ul><li>APIs: JSR-118 + FileConnection (JSR-75) </li></ul></ul><ul><ul><li>Missing: SSL, UDP, tone playing </li></ul></ul><ul><ul><li>OGG/MP3 support </li></ul></ul><ul><li>Soon: </li></ul><ul><ul><li>Audio streaming support </li></ul></ul><ul><ul><li>Midlet managment for Maemo </li></ul></ul><ul><li>Future: </li></ul><ul><ul><li>adding further Java ME JSRs </li></ul></ul>
  26. 26. Swing/Escher <ul><li>Swing/AWT Support of GNU Classpath in maemo would require a higher gtk version. </li></ul><ul><li>Alternative </li></ul><ul><ul><li>Pure Java X library: Escher </li></ul></ul><ul><ul><li>Classpath has different peers for AWT and Swing </li></ul></ul><ul><li>Swing/Escher runs on maemo, but is still in progress: </li></ul><ul><ul><li>problems with the handlig of windows </li></ul></ul><ul><ul><li>repainting </li></ul></ul><ul><ul><li>soft keyboard input </li></ul></ul><ul><ul><li>look and feel customizing </li></ul></ul>
  27. 27. Swing/Escher – Difficulty of Maemo Input <ul><li>Soft Keyboard doesn't activate any X Key-Events </li></ul><ul><ul><li>text oriented </li></ul></ul><ul><ul><li>undocumented Xmessages, that are realized over the Hildon/GTK Input Framework in GTK. </li></ul></ul><ul><li>TODO: </li></ul><ul><ul><li>Generation of XMessages on Softkeyboard (raise/lower) </li></ul></ul><ul><ul><li>Receiving of Messages, conversion in AWT Key Events </li></ul></ul>
  28. 28. lib-JaLiMo <ul><li>the JaLiMo project ist still getting off the ground </li></ul><ul><li>completeness of a 1.0 is planned for the end of 2008 </li></ul><ul><li>so far: focus on the basis platform </li></ul><ul><li>the main focus is on applikation framework </li></ul>Creation of mobile applications for the realization of end-to-end business processes.
  29. 29. lib-JaLiMo concepts <ul><li>Messaging </li></ul><ul><ul><li>Asynchrone messaging as the application's basis </li></ul></ul><ul><ul><li>connection of different sources with connectors, e.g. SOAP/HTTP, XMPP, RMI, dbus </li></ul></ul>application MessageBroker
  30. 30. lib-JaLiMo concepts <ul><li>Data-Binding </li></ul><ul><ul><li>Bindung of data and view through messages to each other </li></ul></ul><ul><ul><li>declarative connection, without two-way referencing of the specific objects </li></ul></ul><ul><ul><li>offers stronger decoupling than MVC-paradigm </li></ul></ul><ul><li>Action Framework </li></ul><ul><ul><li>consequent use of the Command Pattern in GUI applications </li></ul></ul><ul><ul><li>All actions are definded as Action and can be used in different cases. </li></ul></ul>
  31. 31. lib-JaLiMo Konzepte <ul><li>GUI Templating </li></ul><ul><ul><li>Creation of parts of the GUI by using description languages, e.g. </li></ul></ul><ul><ul><ul><li>HTML embedded in Swing </li></ul></ul></ul><ul><ul><ul><li>Glade für Java-Gnome </li></ul></ul></ul><ul><ul><ul><li>JSP oder Velocity für Web </li></ul></ul></ul><ul><ul><li>Combination of GUI and application with actions and bindings </li></ul></ul><ul><ul><li>Aim: </li></ul></ul><ul><ul><ul><li>easier re-use of applications in different contexts </li></ul></ul></ul><ul><ul><ul><li>rapid prototyping </li></ul></ul></ul><ul><ul><ul><li>division of designing and development </li></ul></ul></ul>
  32. 32. JaLiMo - Robots <ul><li>Why? To clarify how easy open standard components are for comlpex architectures. </li></ul><ul><li>autonomous Java controller </li></ul><ul><li>Java-gnome GUI </li></ul><ul><li>Asynchronous communication over XMPP </li></ul><ul><li>effort of the development </li></ul><ul><li>~ 1 week </li></ul>
  33. 33. Jazelle DBX (Direct Bytecode eXecution) <ul><li>The N770 and the N800 have the proprietary Jazelle enhancement in their processor. </li></ul><ul><li>DBX is an additional instruction modus of the arm processor. </li></ul><ul><li>after a so called branch to java, the bytecode can be executed local. </li></ul><ul><li>123 bytecodes are supported, directly. A software interrupt is activated for the rest. </li></ul><ul><li>Unfortunately Arm holds back the specification!!! </li></ul>Is it possible to use it, anyway?
  34. 35. Jazelle DBX (Direct Bytecode eXecution) <ul><li>To change to the DBX-Modus seems to be no problem </li></ul><ul><li>Debugging with gdb shows, that the program always crashes after the last correct bytecode. All the earlier ones seem to be proceeded. </li></ul><ul><li>After one of the untreated bytecodes, the program counter is 0x11000. This seems to be the state after an interrupt. </li></ul><ul><li>Open questions: </li></ul><ul><ul><li>Who has an interupt handler to look like? </li></ul></ul><ul><ul><li>How may parameters beeing passed and returned? </li></ul></ul>
  35. 36. JaLiMo Resources <ul><li>www.jalimo.org </li></ul><ul><li>Soon in addition: www.elvolvis.org </li></ul><ul><ul><li>Gforge infrastructure </li></ul></ul><ul><ul><li>open svn </li></ul></ul><ul><ul><li>Mailinglists </li></ul></ul><ul><ul><li>better management of individual projects </li></ul></ul><ul><li>in other respects: [email_address] </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×