Can you believe it? Rapid Application Development in GNOME... using Java! eclipse, glade, java-gnome, and gcj Andrew Frederick Cowie Ben Konrath GNOME Users And Developers European Conference 30 May 2004, Stuttgart Consulting Pty Ltd 1
Open Source This is a tutorial about how you can use 4 projects eclipse gcj java-gnome glade, part of GNOME to rapidly design, prototype and build GNOME applications in Java 2
Open Source Eclipse Integrated Development Envioronment 3
Open Source GCJ Java support in the GNU Compiler Collection 4
Open Source java-gnome language bindings from Java to GTK / GNOME 5
Open Source glade & libglade the GNOME interface builder 6
Over to BEN! 7
Chosing a Development Platform Figuring out what technology to use in a project called xseq 8
What I do for a living plan, manage and execute massive changes and upgrades to mission critical systems complex numerous interdependent systems include people internal and external impact critical services organization depends on 9
Automate this! II.Begin: Site Down 5. Down Services Richard a. Stop all VMs less IVRs, using svc -d wish-* b. Stop Veritas on oracle2, then oracle1 c. Ensure RAID filesystems still mounted on oracle1 Sarah a. Stop Apache on web1, web2 6. Verification Garrett a. Verify VMs down (less IVR VMs) with svstat wish-* b.... 10
xseq Merge Structure and Sequence Structure: Hierarchical information about relationships between steps (think XML) Sequence: The specific order in which steps occur (think a RDBMS table) See Welcome to my Nightmare on my site 11
Development technology Which Platform? Linux/Unix servers will be present in any environment I'm likely to get business. But many Windows desktops. I have no ability to develop & test for that platform. Linux among techies (especially laptops) not uncommon, though. And its mostly sysadmins, developers, and operations managers who will be using this thing! 12
Development technology Which Platform? It would be nice if it ran on Windows someday, but whatever. (that's what Open Source is for) And one can always make a custom bootable Linux LiveCD... so why not? Choice: Linux Ok, so that's not a big surprise 13
Development Technology Which language? C APIs really horrible (too low level). Don't speak C++ (not much better in any case). Considered Mono, but DE and debugger keep crashing. It'll be a good option in a few years. I'm a Java guy. Been using it (and have done client and server side work) for 7+ years. Choice: Java 14
Development Technology Which widget set? Java AWT is terrible. Java Swing is even worse. The usual reason to use them is cross platform not an issue here. SWT (the widget infrastructure under Eclipse) is tempting, but ditto. And, no rapid interface designer. 15
Development Technology Which widget set? Frankly, I like GTK... I use GNOME I really just want to write a native GNOME app. And glade is so cool. Choice: java-gnome bindings 16
Running client apps in Java VMs a pain in any OS. Even getting Java installed can be tricky. Debian Java unfriendly. But: The gcc people have been working on a Java compiler, gcj. It can create class files, but more interestingly, it can instead create object code, and link it with a small run time GC, to create native Linux executables! So far so good: programs written using java-gnome build and run under gcj no problem. Run fast, too! 17
Show and Tell I'm going to attempt to demo a few things...wish me luck 18
Summary Project URLs eclipse http://download.eclipse.org gcj http://gcc.gnu.org/java java-gnome http://java-gnome.sourceforge.net glade, part of GNOME http://www.gnome.org 19
source code available! $ darcs get http://research.operationaldynamics.com/darcs/xseq $./configure $ make run Summary Use subclipse to checkout http://svn.bagu.org/jgp and then Run As... Eclipse Application 20
Questions? Andrew Frederick Cowie Managing Director andrew@operationaldynamics.com Ben Konrath Free Spirit ben@bagu.org Sydney, Toronto, New York, London 21
Prepared on a Gentoo Linux system running GNOME 2.10 using OpenOffice-ximian 1.3.8 Sydney, Toronto, New York, London 22
These slides available at operationaldynamics.com/talks Andrew Frederick Cowie Managing Director andrew@operationaldynamics.com Ben Konrath Free Spirit ben@bagu.org Sydney, Toronto, New York, London 23