Stephen C. Mackay, 2004 Michael Meeks  <michael.meeks@novell.com> “ Stand at the crossroads and look; ask for the ancient paths, ask where the good way is, and walk in it, and you will find rest for your souls...” - Jeremiah 6:16 Hacking OO.o 2.0
Overview OO.o why it rocks the competition the team ooo-build rational Getting hacking OO.o 2.0 – new feature walk-through more fun work in progress Conclusions / Questions. To try and demonstrate I planned this talk, and it has some vague structure
Some background ... Some interesting free software out there GNU/Linux, GNOME, Mozilla OpenOffice .org  (OO.o) - '.dot' bubble. OO.o (Win32 / Unix  / Mac  ) Large cost savings, hefty deployments, case-studies exist Great interoperability Mozilla vs. IE vs. OO.o vs. MS Office Freedom vs. costly strictures Free software Yes cheap, yes source is 'Open' but ... don't miss the point: Freedom. 80+% of Novell's 6000+:  “as their main office suite” Eating our own dog food: Driving our own Ferrari Notice the pot-holes in the road; lots of useful fixes. In case you've been hiding in a hole – the broad overview:
OpenOffice.org rocks !
Applications: Forms US business: $15bn/year processing, Gartner: $6bn printing, $360bn paper -> data capture. CAP ventures: Americans fill out 100bn forms/yr www.struktur.de Forms solutions eg. -> 2D bar-code Powerful built-in forms support Database backed scriptable: Java, Basic, Python etc. WYSIWYG -> PDF/Paper for traditional form-fillers new 2.0 XForms support – standard/interop Deutsche Post – frank-as-you-print ...
Other Free suites ...  (no doubt Gnome Office: a lovely spreadsheet etc. close to my heart. KOffice: no export -> no interoperability Various commercial pieces: Tell me again why I want to get locked into your XYZ proprietary file-format, and pay huge sums for you to duplicate work that I already own. But XYZ feature is better in ABC !?!!? doubtless, any 1 feature may be better a <-> b not a reasonable comparison Where is Freedom better served ? Still interesting research test-beds though. Do real work, for real users, now: really.
StarOffice/OpenOffice.org Sun is (currently) doing it right wrt. licensing: OO.o CVS is the authoritative base source A few other packages plugged in externally for SO. fonts / icons / clipart / Adabas / Migration tools etc. Sun is now offering support for OO.o Legal bits JCA – shared copyright, minimal asymmetry Source under LGPL / SISSL SISSL: X11 +  ~LGPL for ABI / file-format changes too liberal. Other (broken) licensing models (GPL) MySQL/Qt  –  monetizing  developer APIs &  formats How the two relate to each other a small and shrinking difference
Development / Community Approximate developer breakdown Others working on OO.o IBM – they work openly on the Linux kernel. Scheduling problems doing great work, but not releasing it for ~18months willingness to move to 6month releases Schedule: OO.o 2.0.0 Prolongued slippage – roll a dice for release date Tons of process, no release  process.  Please test it ... Who is out there doing what and why ...
Some heroic guys involved There was time to shoe-horn several other easter eggs into OO.o too ... Source code also shows signs of a StarWars game: LXR: ScGame The OO.o hackers are a bright, and fun bunch
ooo-build - http://go-oo.org/ Building made easy Wraps the existing OO.o build system configure ./download make make install Accurate / useful Hackers guide: http://go-oo.org/wiki/   A place for crazy hacks / controversial bits eg. turning off aliased fonts, turning on pair kerning feature work without that  specific  pain smaller / leaner source packaging Prerequisites: ~2.5Gb+ disk ~512Mb RAM ~Ghz processor
Hacking ... Demo: my first hack ... Install / link / etc. poke at  http://go-oo.org/lxr Fix the things Sun does not: ergonomics ? The customer is [almost] always right eg. CSV file field separators eg. Style apply ergonomics eg. Icons / artwork / GUI re-works Bite sized tasks – don't re-write everything eg. formulae beginning with '+' persisting common settings emacs key-bindings How to grapple with the beast, and find what you're looking for
OO.o 2.0 new feature sample ... 'Base' Ergonomics copy brush much improved Impress shell ... Desktop integration Native widgets Win32/GNOME/KDE Evolution integration, GNOME-VFS integration Performance -  -Bsymbolic/link-maps +  visibility attribute resource shrinkage
OO.o 2.0 new feature sample (2)... Code cleanups sweeter, eg. far fewer warnings binfilter split XML-based UI Interoperability scattered fixes, new filters calc improvements: 65k rows, forms work Native installers XForms Digital signatures / signing OASIS file format new standard
OO.o 2.0.x – work in progress: Cairo integration: So far only for 'slide-show' antialised rendering hardware acceleration stroking and filling paths line polygons Bézier cubic splines compositing RGBA images affine transformations clipping filling with patterns textures, surfaces, gradients AA
OO.o 2.0.x – in progress Performance improvements: Startup speed don't stat every font on the system don't load/init chunks of database on writer start don't link/init Gnome-VFS unnecessarily Relocation processing no. #1 evil of startup - ~1sec CPU time a 'feature' of C++ ? - g++ work needed. Memory reduction myspell memory reduction: (moving to mmap + sparse hash)  [ thin clients ] SHR: +500Kb RSS-SHR 3.5Mb -> 600Kb images.zip [500kb directory] halved ... Lots more fat here to identify & kill ...
OO.o 2.0.x – in progress Mono integration ... Remote control only so far ... UNO/Mono bridge
OO.o 2.0.x – clipart https://www.openclipart.org Tools to more easily build existing clipart into OO.o galleries.
OO.o 2.x – MS Interop ... (Excel) VBA compatibility [immature – can buy Sun's macro-foo tool ] simple macros work already a great place to get started Sub CellsProperty sheet = ActiveWorkbook.ActiveSheet sheet.Range(&quot;I5:K10&quot;).Cells.Select  Selection.FormulaArray = &quot;=RAND()+1&quot; sheet.Range(&quot;C30:D35&quot;).Cells(0,0).Value = 12 sheet.Range(&quot;C30:D35&quot;).Cells(5,1).Formula = &quot;=SUM(I5:K10)&quot; End Sub Access ( http://mdbtools.sf.net/ ) So far data import is ~working in due course forms / macros / reports ? Lots of ergonomic & cleanup work needed in 'base'
Conclusions / Thanks OpenOffice.org a powerful & compelling product cross-platform: feature equivalence: Win32/Unix Ready to deploy now 2.0 with major improvements ~now. A large project that's easy to get involved with lots of small / simple projects... Sign the JCA today ... What I spent the last minutes saying – nudge your neighbour it's nearly over Oh, that my words were recorded, that they were written on a scroll, that they were inscribed with an iron tool on lead, or engraved in rock for ever! I know that my Redeemer lives, and that in the end he will stand upon the earth. And though this body has been destroyed yet in my flesh I will see God, I myself will see him, with my own eyes - I and not another. How my heart yearns within me. - Job 19: 23-27

Hacking OOo 2.0

  • 1.
    Stephen C. Mackay,2004 Michael Meeks <michael.meeks@novell.com> “ Stand at the crossroads and look; ask for the ancient paths, ask where the good way is, and walk in it, and you will find rest for your souls...” - Jeremiah 6:16 Hacking OO.o 2.0
  • 2.
    Overview OO.o whyit rocks the competition the team ooo-build rational Getting hacking OO.o 2.0 – new feature walk-through more fun work in progress Conclusions / Questions. To try and demonstrate I planned this talk, and it has some vague structure
  • 3.
    Some background ...Some interesting free software out there GNU/Linux, GNOME, Mozilla OpenOffice .org (OO.o) - '.dot' bubble. OO.o (Win32 / Unix / Mac ) Large cost savings, hefty deployments, case-studies exist Great interoperability Mozilla vs. IE vs. OO.o vs. MS Office Freedom vs. costly strictures Free software Yes cheap, yes source is 'Open' but ... don't miss the point: Freedom. 80+% of Novell's 6000+: “as their main office suite” Eating our own dog food: Driving our own Ferrari Notice the pot-holes in the road; lots of useful fixes. In case you've been hiding in a hole – the broad overview:
  • 4.
  • 5.
    Applications: Forms USbusiness: $15bn/year processing, Gartner: $6bn printing, $360bn paper -> data capture. CAP ventures: Americans fill out 100bn forms/yr www.struktur.de Forms solutions eg. -> 2D bar-code Powerful built-in forms support Database backed scriptable: Java, Basic, Python etc. WYSIWYG -> PDF/Paper for traditional form-fillers new 2.0 XForms support – standard/interop Deutsche Post – frank-as-you-print ...
  • 6.
    Other Free suites... (no doubt Gnome Office: a lovely spreadsheet etc. close to my heart. KOffice: no export -> no interoperability Various commercial pieces: Tell me again why I want to get locked into your XYZ proprietary file-format, and pay huge sums for you to duplicate work that I already own. But XYZ feature is better in ABC !?!!? doubtless, any 1 feature may be better a <-> b not a reasonable comparison Where is Freedom better served ? Still interesting research test-beds though. Do real work, for real users, now: really.
  • 7.
    StarOffice/OpenOffice.org Sun is(currently) doing it right wrt. licensing: OO.o CVS is the authoritative base source A few other packages plugged in externally for SO. fonts / icons / clipart / Adabas / Migration tools etc. Sun is now offering support for OO.o Legal bits JCA – shared copyright, minimal asymmetry Source under LGPL / SISSL SISSL: X11 + ~LGPL for ABI / file-format changes too liberal. Other (broken) licensing models (GPL) MySQL/Qt – monetizing developer APIs & formats How the two relate to each other a small and shrinking difference
  • 8.
    Development / CommunityApproximate developer breakdown Others working on OO.o IBM – they work openly on the Linux kernel. Scheduling problems doing great work, but not releasing it for ~18months willingness to move to 6month releases Schedule: OO.o 2.0.0 Prolongued slippage – roll a dice for release date Tons of process, no release process. Please test it ... Who is out there doing what and why ...
  • 9.
    Some heroic guysinvolved There was time to shoe-horn several other easter eggs into OO.o too ... Source code also shows signs of a StarWars game: LXR: ScGame The OO.o hackers are a bright, and fun bunch
  • 10.
    ooo-build - http://go-oo.org/Building made easy Wraps the existing OO.o build system configure ./download make make install Accurate / useful Hackers guide: http://go-oo.org/wiki/ A place for crazy hacks / controversial bits eg. turning off aliased fonts, turning on pair kerning feature work without that specific pain smaller / leaner source packaging Prerequisites: ~2.5Gb+ disk ~512Mb RAM ~Ghz processor
  • 11.
    Hacking ... Demo:my first hack ... Install / link / etc. poke at http://go-oo.org/lxr Fix the things Sun does not: ergonomics ? The customer is [almost] always right eg. CSV file field separators eg. Style apply ergonomics eg. Icons / artwork / GUI re-works Bite sized tasks – don't re-write everything eg. formulae beginning with '+' persisting common settings emacs key-bindings How to grapple with the beast, and find what you're looking for
  • 12.
    OO.o 2.0 newfeature sample ... 'Base' Ergonomics copy brush much improved Impress shell ... Desktop integration Native widgets Win32/GNOME/KDE Evolution integration, GNOME-VFS integration Performance - -Bsymbolic/link-maps + visibility attribute resource shrinkage
  • 13.
    OO.o 2.0 newfeature sample (2)... Code cleanups sweeter, eg. far fewer warnings binfilter split XML-based UI Interoperability scattered fixes, new filters calc improvements: 65k rows, forms work Native installers XForms Digital signatures / signing OASIS file format new standard
  • 14.
    OO.o 2.0.x –work in progress: Cairo integration: So far only for 'slide-show' antialised rendering hardware acceleration stroking and filling paths line polygons Bézier cubic splines compositing RGBA images affine transformations clipping filling with patterns textures, surfaces, gradients AA
  • 15.
    OO.o 2.0.x –in progress Performance improvements: Startup speed don't stat every font on the system don't load/init chunks of database on writer start don't link/init Gnome-VFS unnecessarily Relocation processing no. #1 evil of startup - ~1sec CPU time a 'feature' of C++ ? - g++ work needed. Memory reduction myspell memory reduction: (moving to mmap + sparse hash) [ thin clients ] SHR: +500Kb RSS-SHR 3.5Mb -> 600Kb images.zip [500kb directory] halved ... Lots more fat here to identify & kill ...
  • 16.
    OO.o 2.0.x –in progress Mono integration ... Remote control only so far ... UNO/Mono bridge
  • 17.
    OO.o 2.0.x –clipart https://www.openclipart.org Tools to more easily build existing clipart into OO.o galleries.
  • 18.
    OO.o 2.x –MS Interop ... (Excel) VBA compatibility [immature – can buy Sun's macro-foo tool ] simple macros work already a great place to get started Sub CellsProperty sheet = ActiveWorkbook.ActiveSheet sheet.Range(&quot;I5:K10&quot;).Cells.Select Selection.FormulaArray = &quot;=RAND()+1&quot; sheet.Range(&quot;C30:D35&quot;).Cells(0,0).Value = 12 sheet.Range(&quot;C30:D35&quot;).Cells(5,1).Formula = &quot;=SUM(I5:K10)&quot; End Sub Access ( http://mdbtools.sf.net/ ) So far data import is ~working in due course forms / macros / reports ? Lots of ergonomic & cleanup work needed in 'base'
  • 19.
    Conclusions / ThanksOpenOffice.org a powerful & compelling product cross-platform: feature equivalence: Win32/Unix Ready to deploy now 2.0 with major improvements ~now. A large project that's easy to get involved with lots of small / simple projects... Sign the JCA today ... What I spent the last minutes saying – nudge your neighbour it's nearly over Oh, that my words were recorded, that they were written on a scroll, that they were inscribed with an iron tool on lead, or engraved in rock for ever! I know that my Redeemer lives, and that in the end he will stand upon the earth. And though this body has been destroyed yet in my flesh I will see God, I myself will see him, with my own eyes - I and not another. How my heart yearns within me. - Job 19: 23-27