pimp my editor "taking eclipse to the film industry" #ece2011
DESCRIPTION
This talk will present the story of Story Touch (http://storytouch.com), a novel script writing software developed for brazilian based O2 Filmes, South America's largest movie producer. The development process took over 3 years using agile methodologies. The first version was released after just 2 weeks of the beginning of the project evolving to a full featured solution ready to compete with the Industry's standard solution. We will show how we helped our client shape his ideas into an unprecedented tool that gives the power of dramaturgy analysis to script writers. We will share our difficulties and show how we used RCP technologies like StyledText, dynamic ContributionItems and P2 to build a complete desktop solution with an awesome WYSIWYG text editor, with features like pages, zoom, printing, line counting (with soft-wrap), variable margins and all the standard stuff you expect. We will also release this text editor as an open source plugin to give back to this wonderful community. The attendants will better understand how to use the full potential of RCP to explore new industries and provide them with professional solutions. You will learn from our mistakes and understand how to best use features like auto-updates and bug reporting to keep your customers satisfied. We will share our knowledge of applying agile practices like TDD, automated functional tests, continuous integration and continuous deployment. Story Touch is an RCP application which is updated to the customer base nightly, it has had over a thousand versions built in its lifetime. One month after it's recent launch it reached a thousand customers.TRANSCRIPT
PimpMy EditorTaking Eclipse to the Film industry
@freire_da_silva [email protected]
Alexandre Freire@freire_da_silva
!"#$"%#&'%())***+ ,-./-++***01+2*34
Script Writing - Overview
!"#$%&#'%()*!)+,-#''.../ /01/1//...2340.56
Tone and Rhythm
!"#$%&'()**+++, -./0.,,+++12,3+45
Tracks and Scenes Table
It’s a big RCP application
•45 plugins•22 test plugins
•5 fragments •9 features•7 products
•66k lines of code•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
1st Iteration: June 08
Software for controlled use
Agile: Continuous Integration
4th 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
6th 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•3 iterations•Phased integration
•Merge pain•Took longer than expected•Performance issues
Lessons: extend Eclipse’s components
Fragment
The result
ExtendedStyledText: APIExtend SourceViewer:
•Use a custom DocumentAdapter
•Create ExtendedStyledText
ExtendedStyledText: API
Your DocumentAdaptor needs to implement:
ExtendedStyledText: APIFor 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 storywe 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