SlideShare a Scribd company logo
1 of 71
Download to read offline
Pimp
MyEditor
Taking Eclipse to the Film industry


 @freire_da_silva   ffreire@thoughtworks.com
Alexandre Freire
        @freire_da_silva
  alex@indutriallogic.com
Fernando Freire
ffreire@thoughtworks.com
Script Writing - Overview
Tone and Rhythm
Tracks and Scenes Table
It’s a big RCP application




•45 plugins      •5 fragments   •66k lines of code
                 •9 features
•22 test plugins •7 products    •62k lines of test code
Latin America’s biggest production
            company
Our client: Paulo Morelli
What’s wrong with Final Draft?
What’s wrong with Final Draft?




Nothing! After all everybody uses it...
Project Inception



      X
Project Inception



        X
XUL                   RCP
Project Inception



        X
XUL                   RCP
Project Inception



                X
XUL                    RCP
Fast delivery          Customized
Project Inception



                X
XUL                    RCP
Fast delivery          Customized
Project Inception



                X
XUL                    RCP
Fast delivery          Customized
MPL                    EPL
Project Inception



                X
XUL                    RCP
Fast delivery          Customized
MPL                    EPL
Development: 3 month Prototype
1 st   Iteration: June 08
Software for controlled use
Agile: Continuous Integration
4 th   Iteration: October 08
Does the client want to Demo?
•Not yet...
•Only imports from
 Final Draft

•Can’t change text
•We need an editor
•New deadline
6 th   Iteration: December 08
Demo?
New rules

•It’s my product now!
•Pay the technical debt
•Less presure
•No deadline
Difficulties
Eclipse Goodies: StyledText
But it doesn’t do everything
•Header
•Footer
•Pages
•Print
•Export to PDF
•Zoom
•Count lines
•Variable margins
•Paragraph spacing
•Soft-wrap
•WYSIWYG
Agile but small
Agile: Collaboration




•Closed scope contract   •Merge pain
•3 iterations            •Took longer than expected
•Phased integration      •Performance issues
Lessons: extend Eclipse’s components




Fragment
The result
ExtendedStyledText: API
Extend SourceViewer:

 •Create ExtendedStyledText



 •Use a custom DocumentAdapter
ExtendedStyledText: API

Your DocumentAdaptor needs to implement:
ExtendedStyledText: API
For Headers and Footers:




You can also decorate lines
ExtendedStyledText: Architecture
Agile: Premature Optimization
Open Source: we love it!
https://github.com/thoughtworks/eclipse_editor_widget
Eclipse Goodies: Dynamic
    Contribution Items
Eclipse Goodies: P2
Eclipse Goodies: PDE
Eclipse Goodies: Perspectives
Eclipse Goodies: Perspectives
Eclipse Goodies: Perspectives
Eclipse Goodies: i18n
Eclipse Goodies: Auto Complete
Eclipse Goodies: Themes
Eclipse Goodies: Themes
the emo story
we had to override
some stuff, art
director, looking
forward to eclipse 4 -
CSS!
Eclipse Goodies: Feature based
           Product
Eclipse Goodies: Undo and Redo
Eclipse Goodies: Community
Agile: TDD
Agile: Tracking Technical Debt
Agile: Refactoring
Agile: Pair Programming
Agile: Functional Tests
Agile: Prioritizing
Agile: Close interaction with end users
Present State
Collaborate!
 https://github.com/thoughtworks/eclipse_editor_widget


•USE IT!
•6 FIXMEs
•5 TODOs
•Testing
•More Testing
•Support for RTF Cut & Paste
•More Page Sizes
•Images
•Eclipse 4 version
Thank You
                   Questions ???
                   We are hiring!


@freire_da_silva    ffreire@thoughtworks.com

More Related Content

More from alexandre freire

Technical Product Management at Nubank
Technical Product Management at NubankTechnical Product Management at Nubank
Technical Product Management at Nubankalexandre freire
 
Making People Awesome TDC POA 2018 - Alexandre Freire
Making People Awesome   TDC POA 2018 - Alexandre FreireMaking People Awesome   TDC POA 2018 - Alexandre Freire
Making People Awesome TDC POA 2018 - Alexandre Freirealexandre freire
 
Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018alexandre freire
 
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?alexandre freire
 
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...alexandre freire
 
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015alexandre freire
 
Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014alexandre freire
 
Tech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelênciaTech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelênciaalexandre freire
 
Como não testar seu projeto de software
Como não testar seu projeto de softwareComo não testar seu projeto de software
Como não testar seu projeto de softwarealexandre freire
 
Ágil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira ÁgilÁgil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira Ágilalexandre freire
 
Progamacao para não programadores
Progamacao para não programadoresProgamacao para não programadores
Progamacao para não programadoresalexandre freire
 
surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle alexandre freire
 
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...alexandre freire
 
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011alexandre freire
 

More from alexandre freire (16)

Technical Product Management at Nubank
Technical Product Management at NubankTechnical Product Management at Nubank
Technical Product Management at Nubank
 
Making People Awesome TDC POA 2018 - Alexandre Freire
Making People Awesome   TDC POA 2018 - Alexandre FreireMaking People Awesome   TDC POA 2018 - Alexandre Freire
Making People Awesome TDC POA 2018 - Alexandre Freire
 
Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018
 
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
 
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
 
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
 
Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014
 
Agile #FAIL QCon 2013
Agile #FAIL QCon 2013Agile #FAIL QCon 2013
Agile #FAIL QCon 2013
 
Tech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelênciaTech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelência
 
Como não testar seu projeto de software
Como não testar seu projeto de softwareComo não testar seu projeto de software
Como não testar seu projeto de software
 
Divida tecnica
Divida tecnicaDivida tecnica
Divida tecnica
 
Ágil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira ÁgilÁgil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira Ágil
 
Progamacao para não programadores
Progamacao para não programadoresProgamacao para não programadores
Progamacao para não programadores
 
surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle
 
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
Dívida tecnica: precisando de crédito? Quão fundo entrar e como evitar que o ...
 
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
 

Recently uploaded

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Recently uploaded (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

Pimp My Editor "Taking Eclipse to the film Industry" #ece2011