Stephen C. Mackay, 2004 Michael Meeks  <michael.meeks@novell.com> “ Stand at the crossroads and look; ask for the ancient ...
Overview <ul><li>OO.o </li></ul><ul><ul><li>why it rocks </li></ul></ul><ul><ul><li>the competition </li></ul></ul><ul><ul...
Some background ... <ul><li>Some interesting free software out there </li></ul><ul><ul><li>GNU/Linux, GNOME, Mozilla </li>...
OpenOffice.org rocks !
Applications: Forms <ul><li>US business: $15bn/year processing, Gartner: $6bn printing, $360bn paper -> data capture. </li...
Other Free suites ...  (no doubt <ul><li>Gnome Office: a lovely spreadsheet etc. </li></ul><ul><ul><li>close to my heart. ...
StarOffice/OpenOffice.org <ul><li>Sun is (currently) doing it right wrt. licensing: </li></ul><ul><ul><li>OO.o CVS is the ...
Development / Community <ul><li>Approximate developer breakdown </li></ul><ul><ul><li>Others working on OO.o </li></ul></u...
Some heroic guys involved There was time to shoe-horn several other easter eggs into OO.o too ... <ul><li>Source code also...
ooo-build - http://go-oo.org/ <ul><li>Building made easy </li></ul><ul><li>Wraps the existing OO.o build system </li></ul>...
Hacking ... <ul><li>Demo: my first hack ... </li></ul><ul><ul><li>Install / link / etc. </li></ul></ul><ul><li>poke at  ht...
OO.o 2.0 new feature sample ... <ul><li>'Base' </li></ul><ul><li>Ergonomics </li></ul><ul><ul><li>copy brush </li></ul></u...
OO.o 2.0 new feature sample (2)... <ul><li>Code cleanups </li></ul><ul><ul><li>sweeter, eg. far fewer warnings </li></ul><...
OO.o 2.0.x – work in progress: <ul><li>Cairo integration: </li></ul><ul><ul><li>So far only for 'slide-show' </li></ul></u...
OO.o 2.0.x – in progress <ul><li>Performance improvements: </li></ul><ul><ul><li>Startup speed </li></ul></ul><ul><ul><ul>...
OO.o 2.0.x – in progress <ul><li>Mono integration ... </li></ul><ul><ul><li>Remote control only </li></ul></ul><ul><ul><ul...
OO.o 2.0.x – clipart <ul><li>https://www.openclipart.org </li></ul>Tools to more easily build existing clipart into OO.o g...
OO.o 2.x – MS Interop ... <ul><li>(Excel) VBA compatibility </li></ul><ul><ul><li>[immature – can buy Sun's macro-foo tool...
Conclusions / Thanks <ul><li>OpenOffice.org </li></ul><ul><ul><li>a powerful & compelling product </li></ul></ul><ul><ul><...
Upcoming SlideShare
Loading in...5
×

Hacking OOo 2.0

2,156

Published on

Michael Meeks gave a presentation at OOoCon2005 where he talked about the community, contributors and OOo challenges.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,156
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Hacking OOo 2.0"

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

×