blueMarine a desktop app for the open source photographic workflow

Post on 26-Jun-2015

1.391 views 1 download

Tags:

Transcript of blueMarine a desktop app for the open source photographic workflow

blueMarinea desktop app for the open source photographic workflow

Fabrizio GiudiciTidalwave s.a.s.

Emmanuele SordiniBloomingStars.com

1820

2

Why should you attend this demo?> Part I: Java at the Desktop– What NetBeans RCP can do– Java and Photo Imaging

> Part II: some cool technologies– Geotagging, NASAWorld Wind– “Local mini grids“ with Jini, Rio– Massive grid computing (Sun Grid)

> http://bluemarine.tidalwave.it, http://pleiades.bloomingstars.com

> (*) these slides will be available at our blogs:– http://weblogs.java.net/blog/fabriziogiudici– http://www.bloomingstars.com

3

Take two engineers...

4

Take two engineers...... who like photography ...

5

Take two engineers...... who like photography ...... and want to have fun.

6

Take two engineers...... who like photography ...... and want to have fun.

How could I write some Java code to process my photos?(isn't it a “digital darkroom„ after all?)

7

Introducing blueMarine> Photographic workflow management– Pluggable single platform for everything– Community-specific plug-ins– Early access, RC1 is coming

> Troubled history– 2003-2005: Swing was not ready, didn't like Eclipse RCP– 2006-2007: SwingLabs, NetBeans RCP (complete re-design)

Read ”From Pain to Gain“, NetBeans Magazine, Issue 3 BTW, Fabrizio is an Ex-clipse user...

> Open Source– Apache License, business friendly– Encouraging use as a base for other (even commercial) applications

8

Platforms> blueMarine Core– Foundation APIs– Could be used as a base for other products (NetBeans ready)

> blueMarine– The application out-of-the-box

> blueBill– plug-in for birdwatchers

> blueMoon– plug-in for astrophotographers

> blueMarine Incubator– Where new stuff is born and tried

9

DEMO (splash)

10

Why NetBeans RCP?> “Cool stuff„ today means to implement complex things– Toproof an idea you need to do fast prototyping– And quickly integrate third parties' components– With NIH you don't get a killer-idea, but an idea-killer

> NetBeans RCP is a rich and robust set of features for a „serious“ application– Don't write (and maintain) your own, soon-to-be-messy framework– It's Swing, lots of third parties' stuff can be integrated– And you have control on the l&f (à la Romain Guy)

11

Why NetBeans RCP?> “Cool stuff„ today means to implement complex things– Toproof an idea you need to do fast prototyping– And quickly integrate third parties' components– With NIH you don't get a killer-idea, but an idea-killer

> NetBeans RCP is a rich and robust set of features for a „serious“ application– Don't write (and maintain) your own, soon-to-be-messy framework– It's Swing, lots of third parties' stuff can be integrated– And you have control on the l&f (à la Romain Guy)

Java (+ Swing + NetBeans RCP) are NOT “balls and chain„...... as somebody recently said

12

Some very basic NetBeans RCP concepts

> It's basically (rich) MVC> Furthermore, with a Lookup API youcan publish objects in various contexts

> With a global Lookup context and a bitof more work you get “Publish andSubscribe„

13

DEMO

14

NASAWorld Wind for Java> Java version of the popular NASAWorld Wind platform– 3D-rendering software that lets you zoom in from satellite altitude into any

place on earth– Delivers NASA terrain imagery, other data sets can be plugged in– (if legal stuff is ok)– Based on JOGL (OpenGL bindings for Java)– http://worldwind.arc.nasa.gov/java

> Hmm... sounds good for photo geo-tagging...

15

DEMO(thanks to Patrick Murris from the WWJ forum)

16

blueMarine and Parallel Computing> In Summer 2006, a sub-project was spinned off blueMarine> Mistral, the imaging component– Abstract wrappers upon Java2D, JAI, and others– Many features

> Support for parallel computing– Multi-core– Local mini-grids– Real grid computing

> To learn more about Mistral and our view on Parallel Computing:– 880 - “Parallel Computing Scenarios and the new challenges for the Software

Architect“– Thursday, 11:50-12:30, Arena 8

17

Introducing Jini, Rio> Jini– SOA for building federations of Java services (adaptable, scalable, flexible)– Auto-discovery of services– Kindly donated by Sun to Apache Software Foundation (Apache River)– http://www.jini.org, http://incubator.apache.org/river

> Rio– Jini-based technology– Provides containers, beans-oriented programming, QoS, dynamic

deployment, monitoring and management, and more– http://rio.dev.java.net

> Hmm... sounds good for creating “local mini-grids”...

18

blueMarine “local mini-grid„ support

19

DEMO

20

Introducing Sun Grid> Grid computing as a service (utility computing)– Massive grid facility (1000 CPUs)– Made available to users on an as-needed basis ($1 per CPU-hour)– Not only Java, but with Java is much easier (e.g. NetBeans plugin)– http://www.network.com– Free trial: 200 hours, register before June 30

> For researchers, scientists, business (e.g. financial simulations), manufacturingindustry (e.g. simulations, modeling)

21

Sun Grid on the Desktop?> Our point: what about desktop, end-users?– Billing granularity is $100, ok for groups of users or service resellers– Some technical issues to address

Parallelizing algorithms The bandwidth is a bottleneck for image processing

> Our pragmatic approach: try it!– It's fun– Then you figure out a solution

> Mistral is able to work on the Sun Grid– Some successful run in Fall 2006, optimizations needed– Slowed down by US access rules (“deployed by manual proxy“ ;-)– With relaxed access rules development is faster

> Sun Grid support integrated with blueMarine

22

DEMO

23

DEMOsorry, no demo from Switzerland :-(

(legal issues)

24

DEMOsorry, no demo from Switzerland :-(

(legal issues)Coming soon to a webcast, code published later

25

What's next> Bug fixing (lots of), performance tuning> Documentation> UI improvement– Better design (including clip art)– Strive for Apple Human Interface Guidelines compliance

and other o.s.'s too Prove Java can do it

> Basic editing features> Smoother integration with the Sun Grid

> Of course this can't be done by two persons– We hope others will join, also contributing with new stuff– A contest for the better plug-in will be announced soon

26

Roadmap (tentative)> 0.9.RC1 (Jun 30, 2007) - “Gorgona“– Browsing, Catalog, Gallery, Geotagging– Base for beta testers– Grid computing as incubator plugin (demonstrative)

> 0.9.RC2 (Jul 31, 2007) - “Capraia“– Web publishing (Flickr, Panoramio)– Intermediate testing milestone

> 0.9.GA (Sep 16, 2007) - “Pianosa“– Grid computing available out of the box– Catalog reimplemented on Jena

> 1.0.RC1 (Nov 30, 2007) - “Montecristo“– Non-destructive editing (white balance, tone, sharpness, curves, etc...)

> 1.0.GA (Dec 31, 2007) - “Elba“

Fabrizio Giudici www.tidalwave.itTidalwave s.a.s fabrizio.giudici@tidalwave.it

Emmanuele Sordini www.bloomingstars.comemmanuele@sordini.com