SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
blueMarine
Sailing with NetBeans
       Platform
    Fabrizio Giudici (JUG-MI)
  Emmanuele Sordini (JUG-GE)
Goals
●Introduce NetBeans RCP
●Introduce blueMarine
●Demonstrate NB RCP by examples
●Show some cool integrations
  ● SwingLabs, TimingFramework
  ● Visual Library
  ● NASA World Wind
  ● Jini, Rio, Sun Grid
                     2
Developing for
 the Desktop



      3
What's NB RCP?


NetBeans   {   NetBeans IDE
               NetBeans RCP




                 4
What's NB RCP?


NetBeans   {   NetBeans IDE
               NetBeans RCP




                 5
What's NB RCP?


NetBeans   {   NetBeans IDE
               NetBeans RCP
Your Desktop Application!



                 6
blueMarine
● Photo workflow management
 ● Pluggable single platform for everything
 ● Community-specific plug-ins
 ● 0.9.RC2b
● Open Source
 ● Apache License, business friendly




                  7
Demo (splash)




      8
Troubled history
● 2003-2005
 ● Swing not ready
 ● Didn't like Eclipse RCP
    ● BTW, Fabrizio is an Ex-clipse user...
● 2006-2007
 ● NetBeans RCP (complete re-design)
 ● SwingLabs, TimingFramework


                  9
Swing limits
● Is Swing a true framework?
● It isn't, for some respects
  ● You build everything manually
  ● Only at “basic-block level”
    ● Listeners, Actions
● Missing sophisticated components
  ● Date Picker, TreeTables, etc...


                   10
What do you need?
● “Cool stuff„ means complexity
  ● Go quickly from idea to prototype
  ● Integrate quickly others' stuff
  ● NIH isn't a killer-idea, but an idea-killer
  ● Don't write (and maintain) your own,
    soon-to-be-messy framework




                    11
NB RCP: a framework
● You start with an “empty” app
  ● (or you can just extend NetBeans IDE)
● You populate it
  ● views
  ● actions
  ● menus
  ● toolbars


                  12
NB RCP: a framework
● You start with an “empty” app
  ● (or you can just extend NetBeans IDE)
● You populate it
  ● views
  ● actions
  ● menus
  ● toolbars
               }    often declaratively



                   13
Enhancing, not replacing
● NetBeans RCP is Swing
 ● Lots of third parties' stuff (e.g.
   SwingLabs) can be integrated
 ● You have full control on the l&f (à la
   Romain Guy)
 ● Can use it incrementally




                   14
From pain to gain




        15
Some NB RCP APIs
● Actions            ● Modules
● DataObjects        ● Nodes
● Dialogs            ● Options
● Explorer           ● Progress
● FileSystem         ● Visual Library
● Lookup             ● Window Sys.


                16
MVC on steroids




       17
DataObjects and Nodes
● Get a DataObject Node delegate
● Clone it as many times you want
  ● Nodes stay in sync automatically
● Bind an ExplorerManager to a View
● Put the Node(s) into the
 ExplorerManager
● Publish and Subscribe

                  18
Actions
● Various extensions of
 javax.swing.Action
● Some can be auto-enabled
  ● on selection of DataObjects
  ● on selection of Nodes with certain
    capabilities



                   19
Demo:
Explorers,
 Viewers,
 Actions

    20
SwingLabs,T.Framework
● SwingLabs
 ● Swing enhancements and extensions
● TimingFramework
 ● The easy way to add animations,
   smooth transitions, etc...




                  21
Demo




 22
Visual Library
● Support for graph-oriented
 modeling
  ● Nodes
  ● Arcs
  ● Routing
● Really cool stuff
● Can be used with plain Swing apps


                23
Demo:
Light Table,
Geo Viewer
(thanks to David Kaspar)




           24
NASA WWJ
● Java version of NASA World Wind
 ● 3D software that renders the Earth
 ● NASA terrain imagery, other data sets
   can be plugged in (if legal stuff is ok)
 ● Based on JOGL




                   25
Demo:
Geo Viewer 3D
(thanks to Patrick Murris)




            26
Update centers
● NetBeans components
  ● can be added / removed on the fly
  ● can be versioned
  ● can add actions, menus, toolbars
● Pretty good for plugins
● Pretty good for blueMarine's
 concept of “communities”

                  27
blueMoon
● A plugin for amateur astro-
 photographers
● Developed by Emmanuele Sordini
  ● www.bloomingstars.com
● Initial feature: “image stacking”




                28
Image stacking
● For decades only with pro
 equipment
  ● Since 90s within the reach of amateurs
● Hires imaging of solar system
 bodies
  ● take multiple exposures
  ● stack and align them
  ● improve S/N ratio by averaging

                  29
Image stacking




       30
Demo:
blueMoon



   31
Parallel Computing
● Parallel Computing is a must
  ● Multi Core Computers
  ● Small, local mini-grids
  ● Massive Grid Computing
● Mistral
  ● blueMarine's graphic library
  ● supports various kinds of PC


                   32
Jini, Rio
● Jini
  ● SOA building federations of services
  ● Auto-discovery
  ● Now Apache River
● Rio
  ● Jini-based technology
  ● Provides containers, beans, QoS,
    dynamic deployment, monitoring and
    management and more
                  33
Local mini-grids




        34
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)



                  35
Current work
● L10N
● RDF and XMP support
● Editor
● Movies
● Spinning off ForceTen




               36
We want you
● Testing
● Developing new stuff
  ● Scripting support (JavaScript? Ruby?)
  ● Import from Scanner and Camera
  ● CD/DVD Burning
  ● The Plugin Contest




                  37
Conclusion

Medium-large desktop apps?

Get NetBeans RCP - make it
better, make it quicker




             38
Resources
● fabrizio.giudici@tidalwave.it
● weblogs.java.net/blog/fabriziogiudici
● emmanuele@sordini.com
● www.bloomingstars.com
● {bluemarine,mistral}.tidalwave.it
● www.swinglabs.org
● graph.netbeans.org
                   39
Resources
● worldwind.arc.nasa.gov/java
● www.jini.org
● rio.dev.java.net
● www.netbeans.org/
 community/magazine/
● www.network.com



                 40

Más contenido relacionado

La actualidad más candente

Introduction to QtWebKit
Introduction to QtWebKitIntroduction to QtWebKit
Introduction to QtWebKit
Ariya Hidayat
 

La actualidad más candente (19)

OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of ContainerOSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
 
Testing Java Microservices: From Development to Production
Testing Java Microservices: From Development to ProductionTesting Java Microservices: From Development to Production
Testing Java Microservices: From Development to Production
 
Alternative approach to native Kotlin
Alternative approach to native KotlinAlternative approach to native Kotlin
Alternative approach to native Kotlin
 
Code:Nation Tech Stack
Code:Nation Tech StackCode:Nation Tech Stack
Code:Nation Tech Stack
 
Effective memory management
Effective memory managementEffective memory management
Effective memory management
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperations
 
gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Native
 
Manila project onboarding - OpenStack Summit/Forum Sydney 2017
Manila project onboarding - OpenStack Summit/Forum Sydney 2017Manila project onboarding - OpenStack Summit/Forum Sydney 2017
Manila project onboarding - OpenStack Summit/Forum Sydney 2017
 
State of the Art OpenGL and Qt
State of the Art OpenGL and QtState of the Art OpenGL and Qt
State of the Art OpenGL and Qt
 
OpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoDataOpenStreetMap : Open Licensed GeoData
OpenStreetMap : Open Licensed GeoData
 
Fixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingFixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blocking
 
Knowit study group örnsköldsvik - introduction to qt & qt creator
Knowit   study group örnsköldsvik - introduction to qt & qt creatorKnowit   study group örnsköldsvik - introduction to qt & qt creator
Knowit study group örnsköldsvik - introduction to qt & qt creator
 
了解 Qt
了解 Qt了解 Qt
了解 Qt
 
Introduction to QtWebKit
Introduction to QtWebKitIntroduction to QtWebKit
Introduction to QtWebKit
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
Vagrantfordevops
VagrantfordevopsVagrantfordevops
Vagrantfordevops
 
Building Blueprint With Gwt
Building Blueprint With GwtBuilding Blueprint With Gwt
Building Blueprint With Gwt
 
Node.js Presentation
Node.js PresentationNode.js Presentation
Node.js Presentation
 

Destacado

blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications
Fabrizio Giudici
 
Designing a JavaFX Mobile application
Designing a JavaFX Mobile applicationDesigning a JavaFX Mobile application
Designing a JavaFX Mobile application
Fabrizio Giudici
 
Tools for an effective software factory
Tools for an effective software factoryTools for an effective software factory
Tools for an effective software factory
Fabrizio Giudici
 
blueMarine photographic workflow with Java
blueMarine photographic workflow with JavablueMarine photographic workflow with Java
blueMarine photographic workflow with Java
Fabrizio Giudici
 
Parallel Computing Scenarios and the new challenges for the Software Architect
Parallel Computing Scenarios  and the new challenges for the Software ArchitectParallel Computing Scenarios  and the new challenges for the Software Architect
Parallel Computing Scenarios and the new challenges for the Software Architect
Fabrizio Giudici
 
NOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyNOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case study
Fabrizio Giudici
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
Fabrizio Giudici
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2
Fabrizio Giudici
 
NASA World Wind for Java API Overview
NASA World Wind for Java  API OverviewNASA World Wind for Java  API Overview
NASA World Wind for Java API Overview
Fabrizio Giudici
 
blueMarine a desktop app for the open source photographic workflow
blueMarine  a desktop app for the open source photographic workflowblueMarine  a desktop app for the open source photographic workflow
blueMarine a desktop app for the open source photographic workflow
Fabrizio Giudici
 

Destacado (18)

blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications
 
Designing a JavaFX Mobile application
Designing a JavaFX Mobile applicationDesigning a JavaFX Mobile application
Designing a JavaFX Mobile application
 
Bretagne France
Bretagne FranceBretagne France
Bretagne France
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-lugano
 
About Michael Ellowitz
About Michael EllowitzAbout Michael Ellowitz
About Michael Ellowitz
 
Tools for an effective software factory
Tools for an effective software factoryTools for an effective software factory
Tools for an effective software factory
 
Netbeans+platform+maven
Netbeans+platform+mavenNetbeans+platform+maven
Netbeans+platform+maven
 
blueMarine photographic workflow with Java
blueMarine photographic workflow with JavablueMarine photographic workflow with Java
blueMarine photographic workflow with Java
 
Parallel Computing Scenarios and the new challenges for the Software Architect
Parallel Computing Scenarios  and the new challenges for the Software ArchitectParallel Computing Scenarios  and the new challenges for the Software Architect
Parallel Computing Scenarios and the new challenges for the Software Architect
 
NOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyNOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case study
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
 
Phd Thesis Project
Phd Thesis ProjectPhd Thesis Project
Phd Thesis Project
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2
 
NASA World Wind for Java API Overview
NASA World Wind for Java  API OverviewNASA World Wind for Java  API Overview
NASA World Wind for Java API Overview
 
DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011
 
Mercurial
MercurialMercurial
Mercurial
 
DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011 DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011
 
blueMarine a desktop app for the open source photographic workflow
blueMarine  a desktop app for the open source photographic workflowblueMarine  a desktop app for the open source photographic workflow
blueMarine a desktop app for the open source photographic workflow
 

Similar a blueMarine Sailing with NetBeans Platform

Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegas
Peter Mounce
 
Getting Started with the NetBeans Platform
Getting Started with the NetBeans PlatformGetting Started with the NetBeans Platform
Getting Started with the NetBeans Platform
Geertjan Wielenga
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
Matthias Luebken
 

Similar a blueMarine Sailing with NetBeans Platform (20)

Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
Are app servers still fascinating
Are app servers still fascinatingAre app servers still fascinating
Are app servers still fascinating
 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegas
 
Getting Started with the NetBeans Platform
Getting Started with the NetBeans PlatformGetting Started with the NetBeans Platform
Getting Started with the NetBeans Platform
 
Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux Heritage
 
Future of Microservices - Jakub Hadvig
Future of Microservices - Jakub HadvigFuture of Microservices - Jakub Hadvig
Future of Microservices - Jakub Hadvig
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 
Cloud Native Practice
Cloud Native PracticeCloud Native Practice
Cloud Native Practice
 
Post mortem talk - Node Interactive EU
Post mortem talk - Node Interactive EUPost mortem talk - Node Interactive EU
Post mortem talk - Node Interactive EU
 
Akademy 2010 presentation
Akademy 2010 presentationAkademy 2010 presentation
Akademy 2010 presentation
 
Java Image Processing for Geospatial Community
Java Image Processing for Geospatial CommunityJava Image Processing for Geospatial Community
Java Image Processing for Geospatial Community
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
OSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris Buytaert
OSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris BuytaertOSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris Buytaert
OSMC 2014: From monitoringsucks to monitoringlove (and back) | Kris Buytaert
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 

Último

Último (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

blueMarine Sailing with NetBeans Platform

  • 1. blueMarine Sailing with NetBeans Platform Fabrizio Giudici (JUG-MI) Emmanuele Sordini (JUG-GE)
  • 2. Goals ●Introduce NetBeans RCP ●Introduce blueMarine ●Demonstrate NB RCP by examples ●Show some cool integrations ● SwingLabs, TimingFramework ● Visual Library ● NASA World Wind ● Jini, Rio, Sun Grid 2
  • 3. Developing for the Desktop 3
  • 4. What's NB RCP? NetBeans { NetBeans IDE NetBeans RCP 4
  • 5. What's NB RCP? NetBeans { NetBeans IDE NetBeans RCP 5
  • 6. What's NB RCP? NetBeans { NetBeans IDE NetBeans RCP Your Desktop Application! 6
  • 7. blueMarine ● Photo workflow management ● Pluggable single platform for everything ● Community-specific plug-ins ● 0.9.RC2b ● Open Source ● Apache License, business friendly 7
  • 9. Troubled history ● 2003-2005 ● Swing not ready ● Didn't like Eclipse RCP ● BTW, Fabrizio is an Ex-clipse user... ● 2006-2007 ● NetBeans RCP (complete re-design) ● SwingLabs, TimingFramework 9
  • 10. Swing limits ● Is Swing a true framework? ● It isn't, for some respects ● You build everything manually ● Only at “basic-block level” ● Listeners, Actions ● Missing sophisticated components ● Date Picker, TreeTables, etc... 10
  • 11. What do you need? ● “Cool stuff„ means complexity ● Go quickly from idea to prototype ● Integrate quickly others' stuff ● NIH isn't a killer-idea, but an idea-killer ● Don't write (and maintain) your own, soon-to-be-messy framework 11
  • 12. NB RCP: a framework ● You start with an “empty” app ● (or you can just extend NetBeans IDE) ● You populate it ● views ● actions ● menus ● toolbars 12
  • 13. NB RCP: a framework ● You start with an “empty” app ● (or you can just extend NetBeans IDE) ● You populate it ● views ● actions ● menus ● toolbars } often declaratively 13
  • 14. Enhancing, not replacing ● NetBeans RCP is Swing ● Lots of third parties' stuff (e.g. SwingLabs) can be integrated ● You have full control on the l&f (à la Romain Guy) ● Can use it incrementally 14
  • 15. From pain to gain 15
  • 16. Some NB RCP APIs ● Actions ● Modules ● DataObjects ● Nodes ● Dialogs ● Options ● Explorer ● Progress ● FileSystem ● Visual Library ● Lookup ● Window Sys. 16
  • 18. DataObjects and Nodes ● Get a DataObject Node delegate ● Clone it as many times you want ● Nodes stay in sync automatically ● Bind an ExplorerManager to a View ● Put the Node(s) into the ExplorerManager ● Publish and Subscribe 18
  • 19. Actions ● Various extensions of javax.swing.Action ● Some can be auto-enabled ● on selection of DataObjects ● on selection of Nodes with certain capabilities 19
  • 21. SwingLabs,T.Framework ● SwingLabs ● Swing enhancements and extensions ● TimingFramework ● The easy way to add animations, smooth transitions, etc... 21
  • 23. Visual Library ● Support for graph-oriented modeling ● Nodes ● Arcs ● Routing ● Really cool stuff ● Can be used with plain Swing apps 23
  • 25. NASA WWJ ● Java version of NASA World Wind ● 3D software that renders the Earth ● NASA terrain imagery, other data sets can be plugged in (if legal stuff is ok) ● Based on JOGL 25
  • 26. Demo: Geo Viewer 3D (thanks to Patrick Murris) 26
  • 27. Update centers ● NetBeans components ● can be added / removed on the fly ● can be versioned ● can add actions, menus, toolbars ● Pretty good for plugins ● Pretty good for blueMarine's concept of “communities” 27
  • 28. blueMoon ● A plugin for amateur astro- photographers ● Developed by Emmanuele Sordini ● www.bloomingstars.com ● Initial feature: “image stacking” 28
  • 29. Image stacking ● For decades only with pro equipment ● Since 90s within the reach of amateurs ● Hires imaging of solar system bodies ● take multiple exposures ● stack and align them ● improve S/N ratio by averaging 29
  • 32. Parallel Computing ● Parallel Computing is a must ● Multi Core Computers ● Small, local mini-grids ● Massive Grid Computing ● Mistral ● blueMarine's graphic library ● supports various kinds of PC 32
  • 33. Jini, Rio ● Jini ● SOA building federations of services ● Auto-discovery ● Now Apache River ● Rio ● Jini-based technology ● Provides containers, beans, QoS, dynamic deployment, monitoring and management and more 33
  • 35. 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) 35
  • 36. Current work ● L10N ● RDF and XMP support ● Editor ● Movies ● Spinning off ForceTen 36
  • 37. We want you ● Testing ● Developing new stuff ● Scripting support (JavaScript? Ruby?) ● Import from Scanner and Camera ● CD/DVD Burning ● The Plugin Contest 37
  • 38. Conclusion Medium-large desktop apps? Get NetBeans RCP - make it better, make it quicker 38
  • 39. Resources ● fabrizio.giudici@tidalwave.it ● weblogs.java.net/blog/fabriziogiudici ● emmanuele@sordini.com ● www.bloomingstars.com ● {bluemarine,mistral}.tidalwave.it ● www.swinglabs.org ● graph.netbeans.org 39
  • 40. Resources ● worldwind.arc.nasa.gov/java ● www.jini.org ● rio.dev.java.net ● www.netbeans.org/ community/magazine/ ● www.network.com 40